Neste documento, explicamos como configurar sua conta de serviço do Cloud Build para fazer a representação de contas de serviço do Runtime, Compute Engine ou App Engine para que você possa implantar imagens em serviços gerenciados.
Visão geral
Quando uma imagem é implantada em serviços gerenciados específicos, ela é executada usando a identidade da conta de serviço desse serviço gerenciado. Como o Cloud Build pode implantar novas instâncias ou versões automaticamente, a conta de serviço especificada do Cloud Build ou a conta de serviço padrão do Cloud Build precisa ser capaz de representar a conta de serviço do seu serviço gerenciado. Esse requisito se aplica ao fazer a implantação nos seguintes serviços gerenciados:
Serviço gerenciado | Conta de serviço |
---|---|
App Engine | Conta de serviço do App Engine |
Funções do Cloud Run | Conta de serviço do ambiente de execução |
Cloud Run | Identidade do serviço |
Compute Engine | Conta de serviço do Compute Engine |
Configurar a representação da conta de serviço
Para configurar sua conta de serviço do Cloud Build para representar outra conta de serviço, faça o seguinte:
Console
Acesse a página Permissões do settings Cloud Build.
Selecione sua conta de serviço do Cloud Build.
Ative o papel do IAM necessário para seu serviço gerenciado:
Serviço gerenciado Papel necessário App Engine Administrador do App Engine ( roles/appengine.appAdmin
)Funções do Cloud Run Desenvolvedor do Cloud Functions ( roles/cloudfunctions.developer
)Cloud Run Administrador do Cloud Run ( roles/run.admin
)Compute Engine Administrador da instância do Compute v1 ( roles/compute.instanceAdmin.v1
)O Cloud Build mostra o painel Atribuir papel de usuário da conta de serviço.
Escolha uma conta de serviço para representar. Por exemplo, se você planeja implantar no Compute Engine e ativou o papel de Administrador da instância do Compute v1, escolha a conta de serviço do Compute Engine que você quer que sua conta de serviço do Cloud Build represente.
Clique em Conceder permissão.
CLI da gcloud
Na Google Cloud CLI, insira o seguinte:
gcloud iam service-accounts add-iam-policy-binding \
SERVICE_ACCOUNT_TO_IMPERSONATE \
--member="CLOUD_BUILD_SERVICE_ACCOUNT" \
--role="roles/iam.serviceAccountUser"
Em que:
- SERVICE_ACCOUNT_TO_IMPERSONATE é a conta de serviço que você quer representar.
- CLOUD_BUILD_SERVICE_ACCOUNT é sua conta de serviço do Cloud Build.
O Cloud Build atribui à sua conta de serviço do Cloud Build
o papel de usuário da conta de serviço (roles/iam.serviceAccountUser
) para
a conta de serviço que você quer personificar.
Com o papel Usuário da conta de serviço, um principal pode anexar uma conta de serviço a um recurso, permitindo que a conta de serviço do Cloud Build represente a conta de serviço gerenciado escolhida. Para mais informações, consulte Papel de usuário da conta de serviço e Anexar contas de serviço a recursos na documentação do IAM.