Políticas de ejemplo

En esta página se incluyen políticas de ejemplo para la autorización binaria especificadas en formato YAML. Para obtener instrucciones sobre cómo configurar políticas en Autorización binaria, consulta Configurar una política con la CLI de Google Cloud o Configurar una política con la consola de Google Cloud .

Permitir todos los despliegues

En el siguiente ejemplo se muestra cómo permitir que se desplieguen todas las imágenes de contenedor sin restricciones.

name: projects/example-project/policy
defaultAdmissionRule:
  evaluationMode: ALWAYS_ALLOW
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

En este caso, la regla predeterminada tiene un evaluationMode de ALWAYS_ALLOW, lo que provoca que la autorización binaria permita el despliegue de todas las imágenes de contenedor. El valor predeterminado de enforcementMode es ENFORCED_BLOCK_AND_AUDIT_LOG, pero, como se permiten todas las implementaciones, esta acción nunca se lleva a cabo.

Bloquear (casi) todos los despliegues

En el siguiente ejemplo se muestra cómo bloquear la implementación de todas las imágenes de contenedor y permitir las imágenes del sistema mantenidas por Google. Estas imágenes de contenedor son necesarias para que la mayoría de los clústeres de Google Kubernetes Engine (GKE) se inicien correctamente.

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

Aquí, globalPolicyEvaluationMode está habilitado para que las imágenes que requiere GKE no se bloqueen por la aplicación de la política. La regla predeterminada tiene un evaluationMode de ALWAYS_DENY, lo que provoca que la autorización binaria deniegue el despliegue de todas las imágenes de contenedor. El valor de enforcementMode es ENFORCED_BLOCK_AND_AUDIT_LOG, lo que provoca que la autorización binaria bloquee el despliegue y escriba en el registro de auditoría.

Requerir que los certificadores firmen antes de la implementación

En el siguiente ejemplo se muestra cómo requerir que los certificadores autoricen una versión antes de que se pueda implementar una imagen de contenedor. La implementación se bloquea si no han firmado todos los verificadores.

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: REQUIRE_ATTESTATION
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
  requireAttestationsBy:
  - projects/example-project/attestors/secure-build

En este caso, la regla predeterminada tiene un evaluationMode de REQUIRE_ATTESTATION, lo que provoca que la autorización binaria solo permita el despliegue de las imágenes que hayan sido autorizadas por los certificadores necesarios en requireAttestationsBy.

Permitir implementaciones en modo de prueba

El modo de prueba es un modo de cumplimiento de una política que permite desplegar imágenes no conformes, pero escribe detalles sobre la infracción de la política y el despliegue en el registro de auditoría. El modo de prueba te permite probar una política en tu entorno de producción antes de que entre en vigor.

En el siguiente ejemplo se muestra cómo permitir que se desplieguen todas las imágenes no conformes en el modo de prueba.

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: REQUIRE_ATTESTATION
  enforcementMode: DRYRUN_AUDIT_LOG_ONLY
  requireAttestationsBy:
  - projects/example-project/attestors/secure-build

En este caso, la regla predeterminada tiene un enforcementMode de DRYRUN_AUDIT_LOG_ONLY, lo que permite implementar imágenes que no han sido autorizadas por el attestor especificado, pero escribe información sobre la implementación no conforme en el registro de auditoría.

Usar una regla específica del clúster

En el siguiente ejemplo se muestra una regla específica del clúster que solo permite desplegar las imágenes de contenedor que hayan autorizado los certificadores especificados:

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
clusterAdmissionRules:
  us-east1-a.prod-cluster:
    evaluationMode: REQUIRE_ATTESTATION
    enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
    requireAttestationsBy:
    - projects/example-project/attestors/secure-build
    - projects/example-project/attestors/prod-qualified

En este caso, la regla específica del clúster solo se aplica a las imágenes de contenedor desplegadas en us-east1-a.prod-cluster. La regla requiere la atestación de dos attestors antes de que se pueda desplegar una imagen.

Añadir imágenes exentas

En el siguiente ejemplo se muestra cómo añadir rutas adicionales en Container Registry u otro registro a la lista de imágenes exentas de la política:

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
admissionWhitelistPatterns:
- namePattern: gcr.io/example-project-1/*
- namePattern: gcr.io/example-project-2/my-app
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

En este caso, los patrones de coincidencia de las imágenes exentas adicionales son gcr.io/example-project-1/* y gcr.io/example-project-2/my-app.