O Cloud Build usa uma conta de serviço especial para executar versões em seu nome. O e-mail da conta de serviço do Cloud Build é [PROJECT_NUMBER]@cloudbuild.gserviceaccount.com
. Por padrão, a conta de serviço do Cloud Build tem permissões para executar várias tarefas, como buscar um código do Cloud Source Repositories do seu projeto ou gravar objetos em qualquer bucket do Cloud Storage do seu projeto.
Nesta página, explicamos todas as permissões que a conta de serviço do Cloud Build tem por padrão. Para saber como conceder ou revogar permissões à conta de serviço do Cloud Build, consulte Como configurar o acesso à conta de serviço do Cloud Build.
Permissões padrão da conta de serviço do Cloud Build
Quando você ativa a API Cloud Build em um projeto do Cloud, a conta de serviço do Cloud Build é criada automaticamente no projeto e recebe o papel da conta de serviço do Cloud Build para os recursos no projeto. Esse papel contém várias permissões, como a capacidade de atualizar versões ou gravar registros. A conta de serviço usa essas permissões somente conforme necessário para executar ações durante a execução da versão. Por exemplo, a conta de serviço usará a permissão source.repos.get
para buscar o código no Cloud Source Repositories se o código-fonte do build estiver no Cloud Source Repositories. Se você não pretende executar uma ação como parte do processo de compilação, recomendamos que revogue a permissão correspondente da conta de serviço do Cloud Build para obedecer ao princípio de segurança do privilégio mínimo.
A tabela a seguir lista as permissões que o papel da conta de serviço do Cloud Build contém e a finalidade dessas permissões para a conta.
Permissão | Descrição | Finalidade da permissão |
---|---|---|
cloudbuild.builds.create |
Pode criar builds e gatilhos | Obrigatório para:
|
cloudbuild.builds.update |
Pode atualizar builds e gatilhos | |
cloudbuild.builds.list |
Pode listar builds e gatilhos | |
cloudbuild.builds.get |
Pode receber um build e um gatilho | |
storage.buckets.create |
Pode criar buckets do Cloud Storage | Obrigatório para:
|
storage.buckets.get |
Pode receber buckets do Cloud Storage | |
storage.buckets.list |
Pode listar buckets do Cloud Storage | |
storage.objects.list |
Pode listar objetos do Cloud Storage | |
storage.objects.update |
Pode atualizar objetos do Cloud Storage | |
storage.objects.create |
Pode gravar objetos do Cloud Storage | |
storage.objects.delete |
Pode excluir objetos do Cloud Storage | |
storage.objects.get |
Pode ler objetos do Cloud Storage | |
artifactregistry.repositories.list |
Pode listar repositórios no Artifact Registry | Necessário para armazenar e receber artefatos no Artifact Registry. |
artifactregistry.repositories.get |
Pode receber um repositório do Artifact Registry | |
artifactregistry.repositories.downloadArtifacts |
Pode fazer o download de artefatos de um repositório no Artifact Registry | |
artifactregistry.files.list |
Pode listar arquivos no Artifact Registry | |
artifactregistry.files.get |
Pode receber arquivos do Artifact Registry | |
artifactregistry.packages.list |
Pode listar pacotes no Artifact Registry | |
artifactregistry.packages.get |
Pode receber pacotes do Artifact Registry | |
artifactregistry.tags.list |
Pode listar tags no Artifact Registry | |
artifactregistry.tags.get |
Pode receber tags do Artifact Registry | |
artifactregistry.versions.list |
Pode listar versões no Artifact Registry | |
artifactregistry.versions.get |
Pode receber versões no Artifact Registry | |
logging.logEntries.create |
Pode gravar registros | Necessário para criar registros do build no Cloud Logging. |
pubsub.topics.create |
Pode criar tópicos do Pub/Sub | Necessário para enviar atualizações do build ao Pub/Sub. |
pubsub.topics.publish |
Pode publicar no Pub/Sub | |
resourcemanager.projects.get |
Pode receber informações do projeto | Obrigatório para receber informações e listar projetos. |
resourcemanager.projects.list |
Pode listar projetos | |
source.repos.get |
Pode ler o código-fonte dos repositórios no Cloud Source Repositories. | Obrigatório para:
|
source.repos.list |
Pode listar repositórios no Cloud Source Repositories |
Gatilho de compilação e conta de serviço do Cloud Build
Os gatilhos de compilação usam a conta de serviço do Cloud Build para executar builds. Eles podem oferecer permissões elevadas de tempo de compilação aos usuários que usam gatilhos para iniciar um build. Tenha em mente as seguintes implicações de segurança ao usar gatilho de compilação:
- Um usuário sem acesso ao projeto do Cloud, mas com acesso de gravação ao repositório associado aos gatilhos de compilação no projeto, terá permissões para alterar o código que está sendo criado.
- Além disso, se você estiver usando os gatilhos de solicitação de pull do GitHub, qualquer usuário com acesso de leitura ao repositório poderá enviar uma solicitação de pull, que pode acionar um build que inclua alterações no código na solicitação de envio. Você pode desativar esse comportamento escolhendo a opção Controle de comentários ao criar um gatilho de solicitação pull do GitHub. A seleção dessa opção garante que o build seja iniciado somente se um proprietário do repositório ou um colaborador fizerem comentários
/gcbrun
. Para informações sobre como usar o controle de comentários com gatilhos de aplicativos do GitHub, consulte Como criar gatilhos de aplicativos do GitHub.
A seguir
- Saiba mais sobre configurar o acesso para a conta de serviço do Cloud Build.
- Saiba mais sobre como configurar o acesso para membros do projeto.
- Saiba mais sobre papéis e permissões do Cloud Build.
- Saiba mais sobre as permissões necessárias para visualizar os registros de versão.