開發人員預覽及部署應用程式時,可以使用現有的服務帳戶,也可以讓 App Design Center 自動建立新的服務帳戶。
如要使用自己的服務帳戶部署,您必須授予必要的 Identity and Access Management 角色和權限。本文說明如何授予角色及設定服務帳戶,包括:
- 將 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。
後續步驟
- 瞭解「管理應用程式」中的應用程式生命週期。
- 從控制台部署應用程式。