Este documento explica como configurar a sua conta de serviço do Cloud Build para roubar a identidade de contas de serviço para o Runtime, o Compute Engine ou o App Engine, para que possa implementar imagens em serviços geridos.
Vista geral
Quando uma imagem é implementada em serviços geridos específicos, a imagem é executada com a identidade da conta de serviço desse serviço gerido. Uma vez que o Cloud Build pode implementar novas instâncias ou versões automaticamente, a conta de serviço do Cloud Build especificada ou a conta de serviço do Cloud Build predefinida tem de poder roubar a identidade da conta de serviço do seu serviço gerido. Este requisito aplica-se quando a implementação é feita nos seguintes serviços geridos:
Serviço gerido | Conta de serviço |
---|---|
App Engine | Conta de serviço do App Engine |
Funções do Cloud Run | Conta de serviço de tempo de execução |
Cloud Run | Identidade do serviço |
Compute Engine | Conta de serviço do Compute Engine |
Configure a utilização da identidade de contas de serviço
Para configurar a sua conta de serviço do Cloud Build para se fazer passar por outra conta de serviço, faça o seguinte:
consola
Aceda à página settings Cloud Build Autorizações.
Selecione a sua conta de serviço do Cloud Build.
Ative a função do IAM necessária para o seu serviço gerido:
Serviço gerido Função necessária App Engine Administrador do App Engine ( roles/appengine.appAdmin
)Funções do Cloud Run Programador do Cloud Functions ( roles/cloudfunctions.developer
)Cloud Run Administrador do Cloud Run ( roles/run.admin
)Compute Engine Administrador de instâncias do Compute v1 ( roles/compute.instanceAdmin.v1
)O Cloud Build mostra o painel Atribuir função de utilizador da conta de serviço.
Escolha uma conta de serviço para usar a identidade. Por exemplo, se planear implementar no Compute Engine e tiver ativado a função Compute Instance Admin v1, escolheria a conta de serviço do Compute Engine que quer que a conta de serviço do Cloud Build represente.
Clique em Conceder autorização.
CLI gcloud
Na CLI do Google Cloud, introduza o seguinte:
gcloud iam service-accounts add-iam-policy-binding \
SERVICE_ACCOUNT_TO_IMPERSONATE \
--member="CLOUD_BUILD_SERVICE_ACCOUNT" \
--role="roles/iam.serviceAccountUser"
Onde:
- SERVICE_ACCOUNT_TO_IMPERSONATE é a conta de serviço que quer roubar.
- CLOUD_BUILD_SERVICE_ACCOUNT é a sua conta de serviço do Cloud Build.
O Cloud Build atribui à sua conta de serviço do Cloud Build a função de utilizador da conta de serviço (roles/iam.serviceAccountUser
) para a conta de serviço que quer roubar a identidade.
A função de utilizador da conta de serviço permite que um principal anexe uma conta de serviço a um recurso, o que permite que a sua conta de serviço do Cloud Build se faça passar pela conta de serviço gerida escolhida. Para mais informações, consulte o papel de utilizador da conta de serviço e anexe contas de serviço a recursos na documentação do IAM.