O Cloud Build permite-lhe definir uma política da organização (constraints/cloudbuild.allowedIntegrations
) para controlar que serviços externos podem invocar acionadores de compilação. Por exemplo, se o seu acionador estiver a ouvir alterações a um repositório do GitHub e o GitHub for recusado na política da organização, o acionador não é executado. Pode especificar qualquer número de valores permitidos ou recusados para a sua organização ou projeto.
Esta página explica como pode configurar a política da organização (constraints/cloudbuild.allowedIntegrations
)
para integrações através da Google Cloud consola
e da ferramenta de linha de comandos gcloud
.
Antes de começar
-
Enable the Cloud Build and Organization Policy APIs.
Para usar os exemplos de linha de comandos neste guia, instale e configure o SDK do Google Cloud.
Para definir, alterar ou eliminar uma política de organização, tem de ter a função de administrador da política de organização (
roles/orgpolicy.policyAdmin
). Para saber como adicionar a função à sua conta, consulte o artigo Adicione um administrador da política da organização.
Configurar a política da organização para integrações permitidas
Esta secção explica como pode configurar a política da organização (constraints/cloudbuild.allowedIntegrations
) para definir compilações para integrações permitidas.
Consola
Abra a página Políticas de organização na Google Cloud consola.
Clique na linha que contém a política Integrações permitidas (Cloud Build).
É apresentada a página Detalhes da política.
Para editar a política, clique em Editar.
É apresentada a página Editar política.
Na secção Aplica-se a, selecione Personalizar para definir a definição da sua política.
Na secção Aplicação de políticas, selecione Substituir para definir as suas próprias regras para a política. Caso contrário, selecione Unir com o recurso principal para garantir que as regras do recurso principal são aplicadas às suas definições. Para saber mais, consulte o artigo Compreender a avaliação da hierarquia.
Na secção Regras, clique em Adicionar regra para adicionar uma nova regra à sua política.
Em Valores da política, selecione Permitir tudo para permitir compilações de todos os serviços, selecione Recusar tudo para recusar compilações de todos os serviços ou selecione Personalizado para permitir ou recusar compilações de serviços específicos.
Se selecionar Personalizado como valor, conclua os passos seguintes:
Na secção Tipo de política, selecione Permitir ou Recusar.
Na secção Valores personalizados, introduza o URL do anfitrião da instância ou do repositório a partir do qual quer permitir ou recusar compilações. Por exemplo, para permitir ou negar compilações do GitHub, introduza o seu URL como
github.com
ouwww.github.com
.Também pode introduzir vários URLs separados por um espaço. Por exemplo,
github.com ghe.staging-test.com
.Com base no evento, o URL do anfitrião que especificar é um dos seguintes:
- Evento RepoSync: o anfitrião é
source.developers.google.com
. - Evento da app GitHub: o anfitrião é derivado do campo
repository.html_url
no seu payload JSON, que é sempregithub.com
. - Evento do GitHub Enterprise: o anfitrião é derivado do campo
repository.html_url
no seu payload JSON. Por exemplo,ghe.staging-test.com
. - Evento Pub/Sub: o anfitrião é derivado da origem especificada no seu acionador. Se não for especificada nenhuma origem no acionador, não é feita nenhuma verificação da política da organização.
- Evento de webhook: o anfitrião é derivado da origem especificada no seu acionador. Se não for especificada nenhuma origem no acionador, é feita uma verificação da política da organização.
- Evento RepoSync: o anfitrião é
Para guardar a regra, clique em Concluído.
Para adicionar outra regra, clique em Adicionar regra. Caso contrário, para guardar a política, clique em Guardar.
gcloud
Abra uma janela de terminal.
Se quiser permitir ou recusar compilações de todos os serviços, crie um ficheiro YAML com o seguinte conteúdo:
name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - ALLOW_OR_DENY: true
Onde:
PROJECT_NUMBER
é o número do seu projeto.INHERIT
étrue
se quiser que as regras da política sejam herdadas do recurso principal. Caso contrário,false
.ALLOW_OR_DENY
éallowAll
se quiser permitir compilações de todos os URLs de anfitriões. Caso contrário,denyAll
.HOST_URL
é o URL do anfitrião. Por exemplo,github.com
. Também pode especificar URLs adicionais nas linhas seguintes.
Se quiser permitir ou recusar compilações de serviços selecionados, crie um ficheiro YAML com o seguinte conteúdo:
name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - values: ALLOW_OR_DENY: HOST_URL ...
Onde:
PROJECT_NUMBER
é o número do seu projeto.INHERIT
étrue
se quiser que as regras da política sejam herdadas do recurso principal. Caso contrário,false
.ALLOW_OR_DENY
éallowedValues
se quiser especificar URLs de anfitriões para permitir compilações. Caso contrário,deniedValues
.HOST_URL
é o URL do anfitrião. Por exemplo,github.com
. Também pode especificar URLs adicionais nas linhas seguintes.
Defina a política da organização executando o seguinte comando, onde FILE_NAME é o nome do seu ficheiro YAML:
gcloud org-policies set-policy FILE_NAME
Para confirmar que a política foi definida, execute o seguinte comando, onde PROJECT_ID é o ID do seu projeto:
gcloud org-policies describe cloudbuild.allowedIntegrations --effective --project PROJECT_ID
Testar a política da organização para integrações permitidas
Esta secção explica como pode testar a sua política organizacional
(constraints/cloudbuild.allowedIntegrations
) através de acionadores de compilação.
Se ainda não o fez, crie um acionador de compilação.
Envie uma alteração para a sua origem.
Se a sua política estiver configurada para permitir compilações a partir da sua origem, pode ver as execuções de compilações a partir do seu acionador na página Histórico de compilações. Caso contrário, a compilação não é executada. Para ver o histórico de compilações restritas pela definição da sua política, consulte a página Explorador de registos para ver o motivo da carga útil JSON e o motivo da recusa.
O que se segue?
- Saiba como criar e gerir acionadores de compilação.
- Saiba como restringir compilações com base na aprovação.
- Saiba mais sobre as autorizações necessárias para ver os registos de compilação.
- Saiba mais sobre os registos de auditoria criados pelo Cloud Build.