Quando os programadores pré-visualizam e implementam aplicações, podem usar uma conta de serviço existente ou o App Design Center pode criar automaticamente uma nova conta de serviço. Se quiser que os programadores usem a sua conta de serviço, tem de fazer o seguinte:
- Adicione associações de políticas IAM à conta de serviço e à conta de utilizador.
- Conceda à conta de serviço as funções necessárias para implementar cada recurso.
- Adicione autorizações à conta de serviço para implementar fora do projeto onde a conta de serviço foi criada.
- Atualize as políticas da sua organização para permitir a utilização de contas de serviço em vários projetos.
Para configurar as suas contas de serviço, faça o seguinte:
Adicione uma associação de política IAM para a função de
roles/iam.serviceAccountUserpara o agente de serviço à sua conta de serviço: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"Substitua o seguinte:
SERVICE_ACCOUNT_EMAIL: o email da sua conta de serviço. Por exemplo,my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.SERVICE_ACCOUNT_PROJECT_ID: o ID do projeto do projeto que contém a sua conta de serviço.SERVICE_ACCOUNT_PROJECT_NUMBER: o número do projeto que contém a sua conta de serviço.
Adicione uma associação de política de IAM para a função de
roles/iam.serviceAccountUserpara um utilizador à sua conta de serviço:gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"Substitua o seguinte:
SERVICE_ACCOUNT_EMAIL: o email da sua conta de serviço. Por exemplo,my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.USER_EMAIL: o email do utilizador que faz a implementação.
No projeto que tem a sua conta de serviço, adicione associações de políticas de IAM para as funções de agente de serviço necessárias no projeto de gestão que contém o seu espaço:
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"Substitua o seguinte:
SERVICE_ACCOUNT_PROJECT_ID: o ID do projeto do projeto que contém a sua conta de serviço.MANAGEMENT_PROJECT_NUMBER: O número do projeto de gestão que contém o seu espaço.
No projeto que tem a sua conta de serviço, certifique-se de que a
iam.disableCrossProjectServiceAccountUsagerestrição da política da organização não é aplicada. Esta restrição é aplicada por predefinição.Para desativar a aplicação da restrição da política da organização, execute o seguinte comando:
gcloud resource-manager org-policies disable-enforce \ iam.disableCrossProjectServiceAccountUsage \ --project=SERVICE_ACCOUNT_PROJECT_IDSubstitua o seguinte:
SERVICE_ACCOUNT_PROJECT_ID: o ID do projeto do projeto que contém a sua conta de serviço.
Conceda à sua conta de serviço as funções necessárias para implementar recursos em projetos. As funções necessárias são apresentadas quando os programadores implementam aplicações.
Por exemplo, para conceder a função
roles/run.admin, adicione a seguinte associação de políticas: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"Substitua o seguinte:
SERVICE_ACCOUNT_PROJECT_ID: o ID do projeto do projeto que contém a sua conta de serviço.DEPLOYMENT_PROJECT_NUMBER: o número do projeto onde está a implementar recursos.
O App Design Center usa o Infrastructure Manager para implementar aplicações na consola. Para usar a sua própria conta de serviço para implementação com o Infrastructure Manager, conclua os passos em Conceda acesso a projetos.
Se a aplicação que está a implementar contiver componentes privados que importou através de uma ligação do Developer Connect, faça o seguinte:
Conceda à sua conta de serviço a função
roles/iam.serviceAccountTokenCreatorno projeto onde criou a conta de serviço.gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/iam.serviceAccountTokenCreator"Substitua o seguinte:
SERVICE_ACCOUNT_PROJECT_ID: o ID do projeto do projeto que contém a sua conta de serviço.SERVICE_ACCOUNT_EMAIL: o email da sua conta de serviço. Por exemplo,my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.
O que se segue?
- Compreenda o ciclo de vida das aplicações em Façam a gestão de aplicações.
- Implementar uma aplicação a partir da consola.