Ao visualizar e implantar aplicativos, os desenvolvedores podem usar uma conta de serviço existente ou o App Design Center pode criar uma automaticamente. Se você quiser que os desenvolvedores usem sua conta de serviço, faça o seguinte:
- Adicione vinculações de política do IAM à conta de serviço e à conta de usuário.
- Conceda à conta de serviço as funções necessárias para implantar cada recurso.
- Adicione permissões à conta de serviço para fazer implantações fora do projeto em que ela foi criada.
- Atualize as políticas da organização para permitir que as contas de serviço sejam usadas em projetos.
Para configurar as contas de serviço, faça o seguinte:
Adicione uma vinculação de política do IAM para o papel de
roles/iam.serviceAccountUserdo 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:
SERVICE_ACCOUNT_EMAIL: o e-mail 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 que contém sua conta de serviço.SERVICE_ACCOUNT_PROJECT_NUMBER: o número do projeto que contém sua conta de serviço.
Adicione uma vinculação de política do IAM para a função de
roles/iam.serviceAccountUserde um usuário à 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:
SERVICE_ACCOUNT_EMAIL: o e-mail da sua conta de serviço. Por exemplo,my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.USER_EMAIL: o e-mail do usuário que realiza a implantação.
No projeto que tem sua conta de serviço, adicione vinculações de política do IAM para os papéis de agente de serviço necessários no projeto de gerenciamento que contém 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:
SERVICE_ACCOUNT_PROJECT_ID: o ID do projeto que contém sua conta de serviço.MANAGEMENT_PROJECT_NUMBER: o número do projeto de gerenciamento que contém seu espaço.
No projeto que tem sua conta de serviço, verifique se a restrição de política da organização
iam.disableCrossProjectServiceAccountUsagenão foi aplicada. Essa restrição é aplicada por padrão.Para desativar a aplicação da restrição de política da organização, execute o comando a seguir:
gcloud resource-manager org-policies disable-enforce \ iam.disableCrossProjectServiceAccountUsage \ --project=SERVICE_ACCOUNT_PROJECT_IDSubstitua:
SERVICE_ACCOUNT_PROJECT_ID: o ID do projeto que contém sua conta de serviço.
Conceda à sua conta de serviço os papéis necessários para implantar recursos em projetos. Os papéis necessários são mostrados quando os desenvolvedores implantam aplicativos.
Por exemplo, para conceder o papel
roles/run.admin, adicione a seguinte vinculação de política: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:
SERVICE_ACCOUNT_PROJECT_ID: o ID do projeto que contém sua conta de serviço.DEPLOYMENT_PROJECT_NUMBER: o número do projeto em que você está implantando recursos.
O App Design Center usa o Infrastructure Manager para implantar aplicativos no console. Para usar sua própria conta de serviço para implantação com o Infrastructure Manager, siga as etapas em Conceder acesso a projetos.
Se o aplicativo que você está implantando tiver componentes particulares importados por uma conexão do Developer Connect, faça o seguinte:
Conceda à conta de serviço o papel
roles/iam.serviceAccountTokenCreatorno projeto em que ela foi criada.gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/iam.serviceAccountTokenCreator"Substitua:
SERVICE_ACCOUNT_PROJECT_ID: o ID do projeto que contém sua conta de serviço.SERVICE_ACCOUNT_EMAIL: o e-mail da sua conta de serviço. Por exemplo,my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.
A seguir
- Entenda o ciclo de vida dos aplicativos em Gerenciar aplicativos.
- Implante um aplicativo do console.