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 autorización binaria para tu plataforma.
Configura Cloud Build y compila una imagen.
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
Ve a la página Autorización Binaria en la consola de Google Cloud.
En la pestaña Política, haz clic en Editar política.
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.
Haz clic en Agregar certificadores.
En el cuadro de diálogo Agregar certificadores, haz lo siguiente:
- Selecciona Agregar por proyecto y nombre del certificador y realiza los siguientes pasos:
- En el campo Nombre del proyecto, ingresa el proyecto en el que ejecutas Cloud Build.
- Haz clic en el campo Nombre del certificador y verifica que el certificador
built-by-cloud-build
esté disponible. - Haz clic en
built-by-cloud-build
.
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.
- Selecciona Agregar por proyecto y nombre del certificador y realiza los siguientes pasos:
Haz clic en Agregar 1 certificador.
Haga clic en Save Policy.
gcloud
Exporta tu política existente 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
Agrega un bloque
requireAttestationsBy
a la regla si aún no hay uno.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.Guarda el archivo de políticas.
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?
- En lugar de inhabilitar la implementación de imágenes, puedes usar el modo de ejecución de prueba para registrar incumplimientos de políticas.
- Visualiza los eventos de registros de auditoría de las imágenes inhabilitadas en Google Kubernetes Engine (GKE) o Cloud Run.