Implementa solo imágenes compiladas por Cloud Build

En esta página, se describe cómo proteger tu cadena de suministro de software configurando la autorización binaria para permitir que solo se implementen imágenes de contenedor compiladas por Cloud Build.

Para configurar este control de implementación, se requiere el certificador built-by-cloud-build en la política de autorización binaria. Cloud Build crea de forma automática el certificador built-by-cloud-build en el proyecto cuando ejecutas una compilación que genera imágenes. Una vez que las imágenes se compilan con éxito, Cloud Build firma y crea certificaciones de forma automática para ellas. En el momento de la implementación, la autorización binaria verifica las certificaciones con el certificador built-by-cloud-build. Se pueden implementar las imágenes verificadas. Las imágenes que fallan en la verificación no se pueden implementar y el error se registra en los Registros de auditoría de Cloud.

Para obtener una guía completa que describe cómo usar los metadatos registrados en Cloud Build y la autorización binaria, consulta Usa la procedencia firmada y la autorización binaria.

Antes de comenzar

Para usar esta función, primero debes hacer lo siguiente:

Configura la política

En esta sección, debes configurar la política de la autorización binaria para solicitar el certificador built-by-cloud-build.

Para permitir que solo se implementen imágenes compiladas por Cloud Build, sigue estos pasos:

Console

  1. Ve a la página Autorización Binaria en la consola de Google Cloud.

    Ve a Autorización binaria

  2. En la pestaña Política, haz clic en Editar política.

  3. En el cuadro de diálogo Editar política, selecciona Permitir solo las imágenes aprobadas por todos los certificadores que se indican a continuación.

  4. Haz clic en Agregar certificadores.

  5. En el cuadro de diálogo Agregar certificadores, haz lo siguiente:

    1. Selecciona Agregar por proyecto y nombre del certificador y realiza los siguientes pasos:
      1. En el campo Nombre del proyecto, ingresa el proyecto en el que ejecutas Cloud Build.
      2. Haz clic en el campo Nombre del certificador y verifica que el certificador built-by-cloud-build esté disponible.
      3. Haz clic en built-by-cloud-build.
    2. Como alternativa, selecciona Agregar por ID de recurso del certificador. En ID del recurso del certificador, ingresa

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

      Reemplaza PROJECT_ID por el proyecto en el que ejecutas Cloud Build.

  6. Haz clic en Agregar 1 certificador.

  7. Haga clic en Save Policy.

gcloud

  1. Exporta tu política existente a un archivo con el siguiente comando:

    gcloud container binauthz policy export > /tmp/policy.yaml
    
  2. Edita el archivo de política.

  3. Edita una de las siguientes reglas:

    • defaultAdmissionRule
    • clusterAdmissionRules
    • istioServiceIdentityAdmissionRules
    • kubernetesServiceAccountAdmissionRules
  4. Agrega un bloque requireAttestationsBy a la regla si aún no hay uno.

  5. En el bloque requireAttestationsBy, agrega lo siguiente:

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

    Reemplaza PROJECT_ID por el proyecto en el que ejecutas Cloud Build.

  6. Guarda el archivo de políticas.

  7. Importa el archivo de políticas.

    gcloud container binauthz policy import /tmp/policy.yaml
    

    El siguiente es un archivo de política de ejemplo que contiene la referencia 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
    

    Reemplaza PROJECT_ID por el ID del proyecto en el que ejecutas Cloud Build.

¿Qué sigue?