以非超級使用者身分建立及執行工作

本文說明如何以非超級使用者身分建立及執行批次工作。

根據預設,Batch 會以超級使用者身分執行可執行檔。 如要讓 Batch 以非超級使用者身分執行執行檔 (例如執行不允許超級使用者的應用程式,或符合安全性需求),請建立使用 OS 登入的批次工作。在 Batch 工作中啟用 OS 登入功能後,系統會在工作執行的 VM 上為您設定使用者帳戶。作業中的所有可執行檔隨後都會由 VM 上的使用者帳戶執行,而非由超級使用者執行。

事前準備

  1. 如果您從未使用過 Batch,請參閱「開始使用 Batch」,並完成專案和使用者的必要條件,啟用 Batch。
  2. 如果尚未啟用,請執行下列指令來啟用 OS 登入 API

    gcloud services enable oslogin.googleapis.com
    
  3. 如要取得以非根使用者身分建立及執行作業所需的權限,請要求系統管理員授予您下列 IAM 角色:

    如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

    您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

建立以非超級使用者身分執行的工作

如要建立批次工作,透過自己的使用者帳戶執行執行檔,請按照下列步驟操作:

使用 Google Cloud CLI 或 REST API 建立工作,並在 JSON 檔案的主體中,將 runAsNonRoot 欄位設為 true

"runAsNonRoot": true

舉例來說,如果工作以非根使用者身分執行可執行檔,JSON 設定檔會類似於下列內容:

{
    "taskGroups": [
      {
        "taskSpec": {
          "runnables": [
            {
              "script": {
                "text": "echo Hello World! This is task $BATCH_TASK_INDEX executed by $(whoami)."
              }
            }
          ]
        },
        "taskCount": 3,
        "runAsNonRoot": true
      }
    ],
    "logsPolicy": {
        "destination": "CLOUD_LOGGING"
    }
}

後續步驟