Ajude a moldar o futuro da entrega de software e manifeste-se respondendo à pesquisa sobre o estado de DevOps 2202.

Como configurar contas de serviço especificadas pelo usuário

Nesta página, explicamos como configurar contas de serviço especificadas pelo usuário para versões.

Por padrão, o Cloud Build usa uma conta de serviço especial para executar versões em seu nome. Essa conta de serviço é chamada de conta de serviço do Cloud Build e é criada automaticamente quando você ativa a API Cloud Build em um projeto do Google Cloud. Essa conta de serviço tem várias permissões por padrão, como a capacidade de atualizar versões ou gravar registros.

Em vez de usar a conta de serviço padrão do Cloud Build, especifique sua própria conta de serviço para executar versões em seu nome. É possível especificar qualquer número de contas de serviço por projeto. A manutenção de várias contas de serviço permite conceder permissões diferentes a essas contas de serviço, dependendo das tarefas que elas executam. Por exemplo, é possível usar uma conta de serviço para criar e enviar imagens para o Container Registry e uma conta de serviço diferente para criar e enviar imagens para o Artifact Registry.

Limitações

  • As contas de serviço especificadas pelo usuário só funcionam com versões manuais. Elas não funcionam com acionadores de versão.
  • Você precisa criar a conta de serviço especificada pelo usuário no mesmo projeto do Cloud em que você está executando versões.

Antes de começar

  • Ative as APIs Cloud Build and IAM.

    Ative as APIs

  • Para usar os exemplos de linha de comando deste guia, instale e configure o SDK do Cloud.

  • Verifique se você criou a conta de serviço que quer usar.

Como configurar registros da build

Para especificar sua própria conta de serviço para versões, configure o armazenamento de registros de versão no Cloud Logging ou no seu próprio bucket do Cloud Storage:

Permissões do IAM obrigatórias

Para instruções sobre como conceder papéis do IAM a uma conta de serviço, consulte Como configurar o acesso para membros do projeto.

Como executar versões

  1. No diretório raiz do projeto, crie o arquivo de configuração da versão do Cloud Build chamado cloudbuild.yaml ou cloudbuild.json.

  2. No arquivo de configuração de build:

    • Adicione um campo serviceAccount especificando o endereço de e-mail da sua conta de serviço.
    • Se estiver armazenando os registros da criação no seu bucket do Cloud Storage, adicione um campo logsBucket apontando para o bucket do Cloud Storage.

    YAML

    steps:
    - name: 'bash'
      args: ['echo', 'Hello world!']
    logsBucket: 'LOGS_BUCKET_LOCATION'
    serviceAccount: 'projects/PROJECT_NAME/serviceAccounts/SERVICE_ACCOUNT'
    

    JSON

    {
      "steps": [
      {
        "name": "bash",
        "args": [
          "echo",
          "Hello world!"
        ]
      }
      ],
      "logsBucket": "LOGS_BUCKET_LOCATION",
      "serviceAccount": "projects/PROJECT_NAME/serviceAccounts/SERVICE_ACCOUNT"
    }
    

    Substitua os valores de marcador no seu arquivo de configuração da criação pelo seguinte:

    • LOGS_BUCKET_LOCATION: o bucket do Cloud Storage para armazenar registros de criação. Por exemplo, gs://mylogsbucket.
    • PROJECT_NAME: o nome do projeto do Cloud em que você está executando a versão.
    • SERVICE_ACCOUNT: endereço de e-mail ou ID exclusivo da conta de serviço que você quer especificar para versões.
  3. Inicie a compilação usando o arquivo de configuração da compilação:

     gcloud builds submit --config CONFIG_FILE_PATH SOURCE_DIRECTORY
    

Substitua os valores dos marcadores nos comandos acima pelo seguinte:

  • CONFIG_FILE_PATH: caminho para o arquivo de configuração de build.
  • SOURCE_DIRECTORY: caminho ou URL para o código-fonte.

Se você não especificar CONFIG_FILE_PATH e SOURCE_DIRECTORY no comando gcloud builds submit, o Cloud Build presumirá que o arquivo de configuração da criação e o código-fonte estão no diretório de trabalho atual.

A seguir