開發人員預覽及部署應用程式時,可以使用現有的服務帳戶,也可以讓 App Design Center 自動建立新的服務帳戶。如要讓開發人員使用您的服務帳戶,請務必完成下列步驟:
- 將 IAM 政策繫結新增至服務帳戶和使用者帳戶。
- 授予服務帳戶部署各項資源所需的角色。
- 為服務帳戶新增權限,以便在服務帳戶建立位置以外的專案中部署。
- 更新機構政策,允許服務帳戶跨專案使用。
如要設定服務帳戶,請按照下列步驟操作:
為服務代理的
roles/iam.serviceAccountUser角色新增身分與存取權管理政策繫結至服務帳戶:gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --member="serviceAccount:service-SERVICE_ACCOUNT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountUser"更改下列內容:
SERVICE_ACCOUNT_EMAIL:服務帳戶電子郵件地址。例如:my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com。SERVICE_ACCOUNT_PROJECT_ID:包含服務帳戶的專案 ID。SERVICE_ACCOUNT_PROJECT_NUMBER:含有服務帳戶的專案編號。
為服務帳戶中的使用者新增
roles/iam.serviceAccountUser角色的 IAM 政策繫結:gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"更改下列內容:
SERVICE_ACCOUNT_EMAIL:服務帳戶電子郵件地址。例如:my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com。USER_EMAIL:執行部署作業的使用者電子郵件地址。
在含有服務帳戶的專案中,為含有空間的管理專案新增必要服務代理角色的 IAM 政策繫結:
gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:service-MANAGEMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \ --role="roles/apphub.editor"gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:service-MANAGEMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \ --role="roles/config.agent"gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:service-MANAGEMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \ --role="roles/serviceusage.serviceUsageAdmin"更改下列內容:
SERVICE_ACCOUNT_PROJECT_ID:包含服務帳戶的專案 ID。MANAGEMENT_PROJECT_NUMBER:包含您空間的管理專案專案編號。
在擁有服務帳戶的專案中,請確保系統不會強制執行
iam.disableCrossProjectServiceAccountUsage機構政策限制。這項限制預設為強制執行。如要停用組織政策限制的強制執行功能,請執行下列指令:
gcloud resource-manager org-policies disable-enforce \ iam.disableCrossProjectServiceAccountUsage \ --project=SERVICE_ACCOUNT_PROJECT_ID更改下列內容:
SERVICE_ACCOUNT_PROJECT_ID:包含服務帳戶的專案 ID。
將在專案中部署資源所需的角色授予服務帳戶。開發人員部署應用程式時,系統會顯示必要角色。
舉例來說,如要授予
roles/run.admin角色,請新增下列政策繫結:gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:service-DEPLOYMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \ --role="roles/run.admin"更改下列內容:
SERVICE_ACCOUNT_PROJECT_ID:包含服務帳戶的專案 ID。DEPLOYMENT_PROJECT_NUMBER:您要部署資源的專案專案編號。
App Design Center 會使用 Infrastructure Manager 在控制台中部署應用程式。如要使用自己的服務帳戶透過 Infrastructure Manager 部署,請完成「授予專案存取權」一文中的步驟。
如果您部署的應用程式包含透過 Developer Connect 連線匯入的私人元件,請按照下列步驟操作:
在您建立服務帳戶的專案中,將
roles/iam.serviceAccountTokenCreator角色授予服務帳戶。gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/iam.serviceAccountTokenCreator"更改下列內容:
SERVICE_ACCOUNT_PROJECT_ID:服務帳戶所在專案的專案 ID。SERVICE_ACCOUNT_EMAIL:服務帳戶電子郵件地址。例如:my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com。
後續步驟
- 瞭解「管理應用程式」中的應用程式生命週期。
- 從控制台部署應用程式。