本文說明如何設定 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 服務帳戶設定為模擬其他服務帳戶,請按照下列步驟操作:
主控台
前往 settings Cloud Build Permissions 頁面。
選取 Cloud Build 服務帳戶。
為受管理服務啟用必要的 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 會顯示「指派服務帳戶使用者角色」面板。
選擇要模擬的服務帳戶。舉例來說,如果您打算部署至 Compute Engine,並啟用 Compute Instance Admin v1 角色,請選擇要讓 Cloud Build 服務帳戶模擬的 Compute Engine 服務帳戶。
按一下「授予權限」。
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 說明文件中的「服務帳戶使用者角色」和「將服務帳戶附加至資源」。