Esta página descreve como proteger a sua cadeia de fornecimento de software configurando a autorização binária para permitir a implementação apenas de imagens de contentores criadas pelo Cloud Build.
Configura este controlo de implementação exigindo o built-by-cloud-build
atestador na sua política de autorização binária. O Cloud Build cria automaticamente o atestador no seu projeto quando executa uma compilação que gera imagens.built-by-cloud-build
Depois de as imagens serem criadas com êxito, o Cloud Build assina-as e cria atestações automaticamente. No momento da implementação, a Binary Authorization valida as atestações com o atestador built-by-cloud-build
. As imagens validadas podem ser implementadas.
Não é permitida a implementação de imagens que falhem a validação, e a falha é registada nos registos de auditoria do Cloud.
Para um guia completo que descreve como usar os metadados registados do Cloud Build e a autorização binária, consulte o artigo Usar a proveniência assinada e a autorização binária.
Antes de começar
Para usar esta funcionalidade, tem de fazer o seguinte:
- Configure a autorização binária para a sua plataforma.
Configure o Cloud Build e crie uma imagem.
Configure a política
Nesta secção, configura a política de autorização binária para exigir o atestador built-by-cloud-build
.
Para permitir a implementação apenas de imagens criadas pelo Cloud Build, siga os passos seguintes:
Consola
Aceda à página Autorização binária na Google Cloud consola:
No separador Política, clique em Editar política.
Na caixa de diálogo Editar política, selecione Permitir apenas imagens que tenham sido aprovadas por todos os seguintes atestadores.
Clique em Adicionar atestantes.
Na caixa de diálogo Adicionar atestadores, faça o seguinte:
- Selecione Adicionar por projeto e nome do atestador e siga os
passos seguintes:
- No campo Nome do projeto, introduza o projeto onde executa o Cloud Build.
- Clique no campo Nome do atestador e repare que o atestador
built-by-cloud-build
está disponível. - Clique em
built-by-cloud-build
.
Em alternativa, selecione Adicionar por ID do recurso do atestador. Em ID do recurso do atestador, introduza
projects/PROJECT_ID/attestors/built-by-cloud-build
Substituir
PROJECT_ID
pelo projeto onde executa o Cloud Build.
- Selecione Adicionar por projeto e nome do atestador e siga os
passos seguintes:
Clique em Adicionar 1 atestante.
Clique em Guardar política.
gcloud
Exporte a política existente para um ficheiro através do seguinte comando:
gcloud container binauthz policy export > /tmp/policy.yaml
Edite o ficheiro de políticas.
Edite uma das seguintes regras:
defaultAdmissionRule
clusterAdmissionRules
istioServiceIdentityAdmissionRules
kubernetesServiceAccountAdmissionRules
Adicione um bloco
requireAttestationsBy
à regra se ainda não existir.No bloco
requireAttestationsBy
, adicioneprojects/PROJECT_ID/attestors/built-by-cloud-build
Substituir
PROJECT_ID
pelo projeto onde executa o Cloud Build.Guarde o ficheiro de política.
Importe o ficheiro de políticas.
gcloud container binauthz policy import /tmp/policy.yaml
Segue-se um exemplo de um ficheiro de política que contém a referência a
built-by-cloud-build-attestor
:defaultAdmissionRule: evaluationMode: REQUIRE_ATTESTATION enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG requireAttestationsBy: - projects/PROJECT_ID/attestors/built-by-cloud-build name: projects/PROJECT_ID/policy
Substitua
PROJECT_ID
pelo ID do projeto onde executa o Cloud Build.
O que se segue?
- Em vez de impedir a implementação de imagens, pode usar o modo de teste para registar violações de políticas.
- Veja eventos do registo de auditoria para imagens não permitidas no Google Kubernetes Engine (GKE) ou no Cloud Run.