部署來源時,Cloud Run 會運用 Cloud Build 建構及部署 Cloud Run 服務。
本頁面說明如何設定使用者指定的服務帳戶,供 Cloud Build 代表您執行服務建構作業。如果您是平台開發人員,使用 Google Cloud CLI 部署 Cloud Run 服務或函式,且需要自訂 Cloud Build 使用的建構服務帳戶,這份指南就適合您。建構服務帳戶 gcloud CLI 旗標支援來源部署作業 (--source),但不支援容器映像檔部署作業 (--image)。
事前準備
啟用 Cloud Build API
gcloud services enable cloudbuild.googleapis.com
建立服務帳戶,或使用現有服務帳戶做為 Cloud Build 服務帳戶。
必要的角色
您或管理員必須將下列 IAM 角色授予部署者帳戶和 Cloud Build 服務帳戶。
按一下即可查看部署者帳戶的必要角色
如要取得從來源建構及部署所需的權限,請要求管理員授予您下列 IAM 角色:
- 專案的 Cloud Run 原始碼開發者 (
roles/run.sourceDeveloper) - 專案的服務使用情形消費者 (
roles/serviceusage.serviceUsageConsumer) - Cloud Run 服務身分上的服務帳戶使用者 (
roles/iam.serviceAccountUser)
按一下即可查看 Cloud Build 服務帳戶的必要角色
如要允許 Cloud Build 服務帳戶在部署函式時執行建構作業,請管理員將專案的 Cloud Run Builder (roles/run.builder) 角色授予 Cloud Build 服務帳戶。
如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run 服務與Google Cloud API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。 如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。
指定 Cloud Build 服務帳戶
根據預設,從來源部署服務或函式時,如果未指定 Cloud Build 服務帳戶,Cloud Build 會使用預設的 Cloud Build 服務帳戶。
為遵循最低權限原則,並提升服務的安全防護機制,建議您從來源部署服務時,指定自己的服務帳戶來執行建構作業。
gcloud
如要從原始碼部署服務時指定 Cloud Build 服務帳戶,請使用 --build-service-account 標記:
gcloud run deploy SERVICE \ --source . \ --build-service-account projects/PROJECT_ID/serviceAccounts/BUILD_SERVICE_ACCOUNT
更改項目:
- SERVICE 改為您的 Cloud Run 服務名稱。
- PROJECT_ID 建立 Build 服務帳戶的專案 ID。
- BUILD_SERVICE_ACCOUNT,並使用使用者指定的服務帳戶。
如果您要部署函式,請新增 --function 旗標,並提供原始碼中的函式進入點。