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

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

根據預設,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"
    }
}

後續步驟