Configurar a representação da conta de serviço do Cloud Build para serviços gerenciados

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

  1. Acesse a página Permissões do Cloud Build.

  2. Selecione sua conta de serviço do Cloud Build.

  3. 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.

  4. 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.

  5. 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.