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-build
encargado 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:
- Configura Autorización binaria para tu plataforma.
Configura Cloud Build y crea una imagen.
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
Ve a la página Autorización binaria de la Google Cloud consola:
En la pestaña Política, haga clic en Editar política.
En el cuadro de diálogo Editar política, seleccione Permitir solo las imágenes que hayan sido aprobadas por todos los siguientes certificadores.
Haz clic en Añadir verificadores.
En el cuadro de diálogo Añadir certificadores, haz lo siguiente:
- Selecciona Añadir por proyecto y nombre de encargado de la atestación y sigue estos pasos:
- En el campo Nombre del proyecto, introduce el proyecto en el que ejecutas Cloud Build.
- Haz clic en el campo Nombre del attestor y observa que el attestor
built-by-cloud-build
está disponible. - Haz clic en
built-by-cloud-build
.
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.
- Selecciona Añadir por proyecto y nombre de encargado de la atestación y sigue estos pasos:
Haz clic en Añadir 1 attestor (Añadir 1 attestor).
Haz clic en Save Policy.
gcloud
Exporta tu política actual a un archivo con el siguiente comando:
gcloud container binauthz policy export > /tmp/policy.yaml
Edita el archivo de política.
Edita una de las siguientes reglas:
defaultAdmissionRule
clusterAdmissionRules
istioServiceIdentityAdmissionRules
kubernetesServiceAccountAdmissionRules
Añade un bloque
requireAttestationsBy
a la regla si aún no lo tiene.En el bloque
requireAttestationsBy
, añadeprojects/PROJECT_ID/attestors/built-by-cloud-build
Sustituye
PROJECT_ID
por el proyecto en el que ejecutas Cloud Build.Guarda el archivo de política.
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
- En lugar de impedir que se implementen imágenes, puedes usar el modo de prueba para registrar las infracciones de las políticas.
- Consulta los eventos de registro de auditoría de las imágenes no permitidas en Google Kubernetes Engine (GKE) o Cloud Run.