為代管服務設定 Cloud Build 服務帳戶模擬功能

本文說明如何設定 Cloud Build 服務帳戶,以便模擬服務帳戶,用於 Runtime、Compute Engine 或 App Engine,將映像檔部署至受管理服務。

總覽

將映像檔部署至特定代管服務時,映像檔會使用該代管服務的服務帳戶身分執行。由於 Cloud Build 可以自動部署新的執行個體或版本,因此指定的 Cloud Build 服務帳戶預設 Cloud Build 服務帳戶必須能夠模擬代管服務的服務帳戶。部署至下列代管服務時,必須符合這項規定:

代管服務 服務帳戶
App Engine App Engine 服務帳戶
Cloud Run 函式 執行階段服務帳戶
Cloud Run 服務身分
Compute Engine Compute Engine 服務帳戶

設定服務帳戶模擬

如要將 Cloud Build 服務帳戶設定為模擬其他服務帳戶,請按照下列步驟操作:

主控台

  1. 前往 Cloud Build Permissions 頁面。

  2. 選取 Cloud Build 服務帳戶。

  3. 為受管理服務啟用必要的 IAM 角色:

    代管服務 必要角色
    App Engine App Engine 管理員 ( roles/appengine.appAdmin )
    Cloud Run 函式 Cloud Functions 開發人員 ( roles/cloudfunctions.developer )
    Cloud Run Cloud Run 管理員 ( roles/run.admin )
    Compute Engine Compute 執行個體管理員 v1 ( roles/compute.instanceAdmin.v1 )

    Cloud Build 會顯示「指派服務帳戶使用者角色」面板。

  4. 選擇要模擬的服務帳戶。舉例來說,如果您打算部署至 Compute Engine,並啟用 Compute Instance Admin v1 角色,請選擇要讓 Cloud Build 服務帳戶模擬的 Compute Engine 服務帳戶。

  5. 按一下「授予權限」

gcloud CLI

在 Google Cloud CLI 中輸入下列指令:

  gcloud iam service-accounts add-iam-policy-binding \
        SERVICE_ACCOUNT_TO_IMPERSONATE \
        --member="CLOUD_BUILD_SERVICE_ACCOUNT" \
        --role="roles/iam.serviceAccountUser"

其中:

  • SERVICE_ACCOUNT_TO_IMPERSONATE 是您要模擬的服務帳戶。
  • CLOUD_BUILD_SERVICE_ACCOUNT 是您的 Cloud Build 服務帳戶。

Cloud Build 會為您要模擬的服務帳戶,指派 Cloud Build 服務帳戶「服務帳戶使用者」角色 (roles/iam.serviceAccountUser)。

主體可透過「服務帳戶使用者」角色將服務帳戶附加至資源,讓 Cloud Build 服務帳戶模擬所選的代管服務帳戶。詳情請參閱 IAM 說明文件中的「服務帳戶使用者角色」和「將服務帳戶附加至資源」。