Conceptos de Autorización Binaria

En esta página, se incluye información sobre conceptos relacionados con la autorización binaria.

Políticas

Una política de Autorización Binaria, también conocida como política singleton de proyecto, es un conjunto de reglas que rigen la implementación de imágenes de contenedor.

La validación continua (CV) usa un tipo diferente de política, llamada política de plataforma.

Una política está compuesta por las siguientes partes:

Puedes configurar una política mediante una de las siguientes opciones:

  • Consola deGoogle Cloud
  • Comandos gcloud

Cuando usas comandos de gcloud, exportas y modificas una definición de la política en formato YAML antes de volver a importarla a tu proyecto. El formato YAML refleja la estructura interna de una política en el almacenamiento de la autorización binaria. Para obtener más información sobre este formato, consulta la Referencia sobre las políticas en formato YAML.

Cada proyecto Google Cloud puede tener exactamente una política. Debes configurar la política en el proyecto en el que ejecutas la plataforma de implementación. En una configuración de un solo proyecto, la política y todos los recursos subordinados (certificadores y certificaciones) residen en el mismo proyecto. Para establecer la separación de obligaciones, puedes usar una configuración de varios proyectos. En esta configuración, la plataforma de implementación puede ejecutarse en un proyecto, los certificadores pueden residir en otro proyecto y las certificaciones pueden estar en otro proyecto.

Para configurar y usar la autorización binaria en plataformas compatibles, consulta Configura por plataforma.

Consulta un ejemplo de una configuración de varios proyectos para GKE.

Reglas

Cuando configuras una política, debes definir sus reglas. Las reglas definen restricciones que las imágenes deben satisfacer antes de que se puedan implementar. Una política tiene una regla predeterminada y puede tener reglas específicas, según la plataforma. Para obtener más información, consulta los Tipos de reglas compatibles por plataforma.

Cada regla se puede configurar con un modo de evaluación y un modo de aplicación, por ejemplo, una regla puede requerir que una imagen tenga una certificación firmada antes de que se pueda implementar.

Regla predeterminada

Cada política tiene una regla predeterminada. Esta regla se aplica a cualquier solicitud de implementación que no coincida con una regla específica. En un archivo YAML de política, la regla predeterminada se especifica en el nodo defaultAdmissionRule.

Para obtener más información sobre la configuración de la regla predeterminada, consulta Configura una política.

Reglas específicas

Se pueden agregar una o más reglas específicas a una política. Este tipo de regla se aplica a las imágenes que se implementan en clústeres, cuentas de servicio o identidades específicos. La compatibilidad con reglas específicas varía según la plataforma. Para obtener más información, consulta los Tipos de reglas compatibles por plataforma.

En un archivo YAML de política, cada regla específica del clúster se especifica en un nodo clusterAdmissionRule.

Tipos de reglas compatibles por plataforma

En la siguiente tabla, se muestran los tipos de reglas que se admiten para cada plataforma de implementación.

Plataforma Regla predeterminada Regla específica
GKE Admitido Clústeres
Espacios de nombres de Kubernetes
Cuentas de servicio de Kubernetes
Cloud Run Admitido No compatible
Clústeres conectados de GKE Admitido Clústeres
Espacios de nombres de Kubernetes
Cuentas de servicio de Kubernetes
GKE en AWS Admitido Clústeres
Espacios de nombres de Kubernetes
Cuentas de servicio de Kubernetes
Google Distributed Cloud Admitido Clústeres
Espacios de nombres de Kubernetes
Cuentas de servicio de Kubernetes
Google Distributed Cloud Admitido Clústeres
Espacios de nombres de Kubernetes
Cuentas de servicio de Kubernetes
Cloud Service Mesh Admitido Identidades del servicio de Cloud Service Mesh

Modos de evaluación

Cada regla tiene un modo de evaluación que especifica el tipo de restricción que la autorización binaria aplica a la regla. El modo de evaluación de una regla se especifica mediante la propiedad evaluationMode en el archivo YAML de política.

Existen tres modos de evaluación:

  • Permitir todas las imágenes: Permite que se implementen todas las imágenes.
  • Inhabilitar todas las imágenes: No permite que se implementen todas las imágenes.
  • Solicitar certificaciones: Requiere que un firmante firme de forma digital el resumen de la imagen y cree una certificación antes de la implementación. En el momento de la implementación, el ejecutor de la autorización binaria usa un certificador para verificar la firma en la certificación antes de implementar la imagen asociada.

Modos de aplicación

Cada regla también tiene un modo de aplicación, que especifica la acción que realiza GKE cuando una imagen no cumple con la regla. Una regla puede tener los siguientes modos de aplicación:

  • Bloqueo y registro de auditoría: Se bloquea la implementación de imágenes que no cumplen con la regla y se escribe un mensaje en el registro de auditoría para indicar por qué no se implementó la imagen.

  • Ejecución de prueba: Solo para el registro de auditoría: El modo de ejecución de prueba es un modo de aplicación en una política que permite que se implementen imágenes que no cumplen con las especificaciones, pero se escriben detalles sobre la implementación en los Registros de auditoría de Cloud. El modo de ejecución de prueba te permite probar una política, por ejemplo, en tu entorno de producción, antes de que la aplicación entre en vigencia.

La mayoría de las reglas de producción usan el modo de aplicación Bloqueo y registro de auditoría. Por lo general, la Ejecución de prueba: Solo para el registro de auditoría se usa a fin de probar una política en tu entorno antes de que entre en vigor.

El modo de aplicación de una regla se especifica mediante la propiedad enforcementMode en el archivo YAML de la política.

Para obtener más información sobre los mensajes escritos en los Registros de auditoría de Cloud, consulta Visualiza los registros de auditoría (GKE, Google Distributed Cloud, Cloud Service Mesh) o Visualiza los registros de auditoría (Cloud Run).

Validación continua

La validación continua (CV) es una función de la autorización binaria que verifica de forma periódica las imágenes asociadas con los Pods en ejecución para garantizar el cumplimiento continuo de las políticas.

Obtén más información sobre la CV.

Imágenes exentas

Una imagen exenta es una imagen que está exenta de las reglas de política. La autorización binaria siempre permite que se implementen imágenes exentas Cada proyecto tiene una lista de imágenes exentas admitidas que la ruta de registro específica. De forma predeterminada, las imágenes en la ruta gcr.io/google_containers/*, k8s.gcr.io/** y las rutas adicionales están exentas, ya que contienen los recursos necesarios para que GKE pueda iniciar un clúster de manera correcta con la política predeterminada activa.

Para agregar una imagen exenta a la lista de entidades permitidas, agrega lo siguiente al archivo de políticas:

admissionWhitelistPatterns:
  - namePattern: EXEMPT_IMAGE_PATH

Reemplaza EXEMPT_IMAGE_PATH por la ruta de acceso a la imagen que se exime. Para eximir imágenes adicionales, agrega entradas - namePattern adicionales. Obtén más información sobre admissionWhitelistPatterns.

Patrones de la lista de entidades permitidas

  1. Para incluir en la lista de entidades permitidas todas las imágenes cuya ubicación de registro coincida con la ruta especificada, sigue estos pasos:

    gcr.io/example-project/*
    
  2. Para incluir en la lista de entidades permitidas todas las imágenes cuya ubicación de registro es cualquier subdirectorio de la ruta de acceso especificada (p. ej., gcr.io/example-project/my-directory/helloworld), haz lo siguiente:

    gcr.io/example-project/**
    
  3. Para incluir una imagen específica en la lista de entidades permitidas, haz lo siguiente:

    gcr.io/example-project/helloworld
    
  4. Para incluir en la lista de entidades permitidas una versión específica de una imagen por etiqueta, sigue estos pasos:

    gcr.io/example-project/helloworld:latest
    gcr.io/example-project/helloworld:my-tag
    
  5. Para incluir en la lista de entidades permitidas todas las versiones y etiquetas de una imagen, haz lo siguiente:

    gcr.io/example-project/helloworld@*
    
  6. Para incluir en la lista de entidades permitidas una versión específica de una imagen según su resumen, sigue estos pasos:

    gcr.io/example-project/helloworld@sha256:77b0b75136b9bd0fd36fb50f4c92ae0dbdbbe164ab67885e736fa4374e0cbb8c
    

Obtén más información sobre cómo usar resúmenes de imágenes de contenedores.

Obtén información para administrar imágenes exentas en la consola deGoogle Cloud , con la herramienta de línea de comandos o con la API de REST.

Imágenes del sistema mantenidas por Google

Confiar en todas las imágenes del sistema mantenidas por Google provoca que la autorización binaria exima una lista de imágenes del sistema mantenidas por Google de una evaluación de políticas más detallada. Cuando tienes esta configuración habilitada, la aplicación de las políticas no bloquea las imágenes que requiere GKE. La política del sistema se evalúa antes de la evaluación de la política del usuario y además de ella.

Puedes habilitar o inhabilitar esta configuración mediante la propiedad globalPolicyEvaluationMode en el archivo YAML de la política. Puedes ver el contenido de la política del sistema mediante el siguiente comando:

gcloud alpha container binauthz policy export-system-policy

Certificaciones

Una certificación es un documento digital que certifica una imagen. Durante la implementación, la autorización binaria verifica la certificación antes de que se implemente la imagen.

A veces, el proceso para crear una certificación se denomina firmar una imagen. Una certificación se crea después de que se compila una imagen. Cada imagen tiene un resumen único a nivel global. Un firmante firma el resumen de la imagen mediante una clave privada a partir de un par de claves, y usa la firma para crear la certificación. En el momento de la implementación, el ejecutor de Autorización Binaria usa la clave pública del certificador para verificar la firma de la certificación. Por lo general, un certificador corresponde a un solo firmante.

Una certificación indica que la imagen asociada se compiló mediante la ejecución correcta de un proceso obligatorio específico. Por ejemplo, si el firmante es un representante de la función de control de calidad (QA), la certificación puede indicar que la imagen aprobó todas las pruebas funcionales de extremo a extremo en un entorno de etapa de pruebas.

Para habilitar las certificaciones en la autorización binaria, el evaluationMode de tu política se establece como REQUIRE_ATTESTATION.

Obtén más información sobre cómo crear y usar certificadores y certificaciones.

Firmantes

Un