Nesta página, descrevemos como proteger a cadeia de suprimentos de software configurando a autorização binária para permitir que apenas imagens de contêiner criadas pelo Cloud Build sejam implantadas.
Esse controle de implantação é configurado exigindo o atestador
built-by-cloud-build
na política de autorização binária. O Cloud Build
cria automaticamente o atestador built-by-cloud-build
no seu projeto quando
você executa uma versão que gera imagens. Depois que as imagens são criadas,
o Cloud Build assina e cria atestados automaticamente. No
momento da implantação, a autorização binária verifica os atestados com o
atestador built-by-cloud-build
. As imagens verificadas podem ser implantadas.
As imagens que não passam na verificação não podem ser implantadas e a
falha é registrada nos registros de auditoria do Cloud.
Para ver um guia completo que descreve como usar metadados gravados e autorização binária do Cloud Build, consulte Como usar a procedência e a autorização binária assinada.
Antes de começar
Para usar esse recurso, primeiro você precisará:
- Configurar a autorização binária para sua plataforma.
Configurar o Cloud Build e criar uma imagem.
Configurar a política
Nesta seção, você irá configurar a política de autorização binária para exigir o
atestador built-by-cloud-build
.
Para permitir que apenas as imagens criadas pelo Cloud Build sejam implantadas, execute estas etapas:
Console
Acesse a página Autorização binária no Console do Google Cloud:
Na guia Política, clique em Editar política.
Na caixa de diálogo Editar política, selecione Permitir apenas imagens que foram aprovadas por todos os seguintes atestadores.
Clique em Adicionar atestadores.
Na caixa de diálogo Adicionar atestadores:
- Selecione Adicionar por projeto e nome do atestador e execute estas etapas:
- No campo Nome do projeto, insira o projeto em que você executa o Cloud Build.
- Clique no campo Nome do atestador e veja se o
atestador
built-by-cloud-build
está disponível. - Clique em
built-by-cloud-build
.
Como alternativa, selecione Adicionar por ID do recurso de atestador. Em ID de recurso do atestador, digite:
projects/PROJECT_ID/attestors/built-by-cloud-build
Substitua
PROJECT_ID
pelo projeto em que você executa o Cloud Build.
- Selecione Adicionar por projeto e nome do atestador e execute estas etapas:
Clique em Adicionar um atestador.
Clique em Save Policy.
gcloud
Exporte a política atual para um arquivo usando este comando:
gcloud container binauthz policy export > /tmp/policy.yaml
Edite o arquivo da política.
Edite uma destas regras:
defaultAdmissionRule
clusterAdmissionRules
istioServiceIdentityAdmissionRules
kubernetesServiceAccountAdmissionRules
Adicione um bloco
requireAttestationsBy
à regra, se ainda não houver um.No bloco
requireAttestationsBy
, adicione:projects/PROJECT_ID/attestors/built-by-cloud-build
Substitua
PROJECT_ID
pelo projeto em que você executa o Cloud Build.Salve o arquivo de política.
Importe o arquivo de política.
gcloud container binauthz policy import /tmp/policy.yaml
Veja a seguir um exemplo de arquivo de política que contém a referência ao
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 em que você executa o Cloud Build.
A seguir
- Em vez de proibir a implantação de imagens, use o modo de teste para registrar violações de política.
- Veja os eventos de registro de auditoria de imagens não permitidas no Google Kubernetes Engine (GKE) ou no Cloud Run.