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

本文說明如何以非根使用者身分建立及執行 Batch 工作。

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

事前準備

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

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

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

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

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

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

使用 Google Cloud CLI 或 REST API 建立工作,其中包含在 JSON 檔案主體中設為 truerunAsNonRoot 欄位

"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"
    }
}

後續步驟