Imagen de contenedor (creada 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 desplieguen las imágenes de contenedor creadas con Cloud Build.

Para configurar este control de implementación, debes requerir el encargado de la atestación built-by-cloud-build en tu política de autorización binaria. Cloud Build crea automáticamente el built-by-cloud-build attestor en tu proyecto cuando ejecutas una compilación que genera imágenes. Una vez que se han compilado las imágenes correctamente, Cloud Build las firma automáticamente y crea certificaciones para ellas. En el momento del despliegue, la autorización binaria verifica las atestaciones con el built-by-cloud-buildencargado de la atestación. Se permite publicar imágenes verificadas. Las imágenes que no superen la verificación no se podrán implementar y el error se registrará en los registros de auditoría de Cloud.

Para obtener una guía completa sobre cómo usar los metadatos registrados de Cloud Build y la autorización binaria, consulta Usar procedencia firmada y autorización binaria.

Antes de empezar

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

Configurar la política

En esta sección, configurarás la política de autorización binaria para que requiera el attestor built-by-cloud-build.

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

Consola

  1. Ve a la página Autorización binaria de la Google Cloud consola:

    Ir a Autorización binaria

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

  3. En el cuadro de diálogo Editar política, seleccione Permitir solo las imágenes que hayan sido aprobadas por todos los siguientes certificadores.

  4. Haz clic en Añadir verificadores.

  5. En el cuadro de diálogo Añadir certificadores, haz lo siguiente:

    1. Selecciona Añadir por proyecto y nombre de encargado de la atestación y sigue estos pasos:
      1. En el campo Nombre del proyecto, introduce el proyecto en el que ejecutas Cloud Build.
      2. Haz clic en el campo Nombre del attestor y observa que el attestor built-by-cloud-build está disponible.
      3. Haz clic en built-by-cloud-build.
    2. También puede seleccionar Añadir por ID de recurso de encargado de la atestación. En ID de recurso de encargado de la atestación, introduce

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

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

  6. Haz clic en Añadir 1 attestor (Añadir 1 attestor).

  7. Haz clic en Save Policy.

gcloud

  1. Exporta tu política actual 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. Añade un bloque requireAttestationsBy a la regla si aún no lo tiene.

  5. En el bloque requireAttestationsBy, añade

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

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

  6. Guarda el archivo de política.

  7. Importa el archivo de políticas.

    gcloud container binauthz policy import /tmp/policy.yaml
    

    A continuación, se muestra un ejemplo de archivo de política que contiene la referencia al 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
    

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

Siguientes pasos