Implemente apenas imagens criadas pelo Cloud Build

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 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

  1. Aceda à página Autorização binária na Google Cloud consola:

    Aceda à Autorização binária

  2. No separador Política, clique em Editar política.

  3. Na caixa de diálogo Editar política, selecione Permitir apenas imagens que tenham sido aprovadas por todos os seguintes atestadores.

  4. Clique em Adicionar atestantes.

  5. Na caixa de diálogo Adicionar atestadores, faça o seguinte:

    1. Selecione Adicionar por projeto e nome do atestador e siga os passos seguintes:
      1. No campo Nome do projeto, introduza o projeto onde executa o Cloud Build.
      2. Clique no campo Nome do atestador e repare que o atestador built-by-cloud-build está disponível.
      3. Clique em built-by-cloud-build.
    2. 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.

  6. Clique em Adicionar 1 atestante.

  7. Clique em Guardar política.

gcloud

  1. Exporte a política existente para um ficheiro através do seguinte comando:

    gcloud container binauthz policy export > /tmp/policy.yaml
    
  2. Edite o ficheiro de políticas.

  3. Edite uma das seguintes regras:

    • defaultAdmissionRule
    • clusterAdmissionRules
    • istioServiceIdentityAdmissionRules
    • kubernetesServiceAccountAdmissionRules
  4. Adicione um bloco requireAttestationsBy à regra se ainda não existir.

  5. No bloco requireAttestationsBy, adicione

    projects/PROJECT_ID/attestors/built-by-cloud-build
    

    Substituir PROJECT_ID pelo projeto onde executa o Cloud Build.

  6. Guarde o ficheiro de política.

  7. 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?