Descripción general

En esta página, se incluye una descripción general de la autorización binaria.

Introducción

La autorización binaria es un servicio en Google Cloud Platform (GCP) que proporciona seguridad en la cadena de suministro de software cuando se implementan aplicaciones basadas en contenedores. La autorización binaria extiende Google Kubernetes Engine (GKE) y aplica políticas de seguridad en el momento de la implementación. La autorización binaria funciona con imágenes de contenedor de Container Registry o algún otro registro de imágenes de contenedor.

Con la autorización binaria, puedes comprobar de forma automática y digital cada componente de la cadena de suministro de software, lo que garantiza la integridad y la calidad del software antes de que se implemente una aplicación en tu entorno de producción.

La autorización binaria forma parte de una arquitectura de implementación que incluye lo siguiente:

  • Container Registry o algún otro registro que almacene las imágenes de contenedor que deseas implementar
  • GKE, que ejecuta las imágenes en un clúster
  • Container Analysis, que almacena los metadatos de confianza que se usan en el proceso de autorización
  • La autorización binaria, que permite o bloquea la implementación de imágenes en GKE según la política que configures

La autorización binaria se basa en la especificación de Kritis, que forma parte del proyecto de código abierto Grafeas.

Información general

GKE permite a los equipos desarrollar sistemas altamente separados (por ejemplo, aquellos compilados en arquitecturas de microservicios) y fomenta el uso de procesos de ciclos de vida cortos en la integración continua (CI) y la implementación continua (IC). A menudo, en esos entornos, el software se traslada de un clúster de implementación a otro durante la etapa de pruebas, lo que dificulta garantizar que todo el software se compila, prueba, implementa y actualiza de acuerdo con las prácticas recomendadas y los estándares internos.

El objetivo de la autorización binaria es reducir el riesgo de implementar software incorrecto, defectuoso o no autorizado en este tipo de entorno. Mediante este servicio, puedes especificar de forma explícita qué procesos internos deben completarse antes de que una imagen de contenedor ingrese en cada etapa de implementación y, luego, asegurarte de que las partes autorizadas hayan verificado la finalización del proceso.

La autorización binaria no prescribe procesos internos ni prácticas recomendadas sobre la integridad y la calidad de tu software. En cambio, te ayuda a aplicar tus propias prácticas mediante la restricción de la implementación de imágenes de contenedor que no aprobaron las verificaciones requeridas.

Casos prácticos típicos

Los casos de uso de autorización binaria más comunes incluyen certificaciones. En estos casos, cuando se compila la imagen de contenedor, un firmante firma de manera digital el resumen único para crear una certificación.

En el momento de la implementación, el ejecutor de la autorización binaria usa un certificador para verificar la certificación. De esta forma, solo se permite implementar imágenes de contenedor con certificaciones verificadas.

Los casos de uso que involucran certificaciones incluyen los siguientes:

  • Verificación de compilación, en la que la autorización binaria verifica que la imagen de contenedor se compiló mediante un sistema de compilación específico o una canalización de integración continua (CI)
  • Análisis de vulnerabilidades, en el que Container Analysis también analizó la imagen de contenedor compilada por IC y las vulnerabilidades identificadas se resolvieron antes de que la canalización de CI o una persona creara la certificación
  • Verificación manual, en la que un representante (por ejemplo, un QA) crea de forma manual el certificado

Consulta Comienza a usar Console para obtener un instructivo de certificación de extremo a extremo.

Ciclo de vida

Un ciclo de vida de implementación para imágenes de contenedor puede constar de las siguientes etapas, en las que la finalización de una etapa es un requisito para avanzar a la siguiente:

  • Compilación y prueba de unidades
  • Implementación en un entorno de desarrollo en el que los usuarios no se ven afectados
  • Implementación en un entorno de QA, en el que solo los usuarios internos se ven afectados
  • Implementación en un entorno de versión canary, en el que solo se ve afectada una fracción de los usuarios externos
  • Implementación en la producción

Después de la compilación y la prueba, cada etapa tiene su propio entorno de implementación; en este caso, es un clúster de GKE y sus propios criterios que deben cumplirse antes de que una imagen pueda pasar a la siguiente etapa. La autorización binaria te permite definir los criterios a fin de que una imagen pase de una etapa a otra y proporciona los medios para aplicarlos.

Características

La autorización binaria proporciona las siguientes características:

  • Un modelo de políticas que te permite describir las restricciones bajo las que se pueden implementar las imágenes de contenedor
  • Un modelo de certificación que te permite definir autoridades de confianza que pueden certificar o verificar que se completaron los procesos necesarios en tu entorno antes de la implementación
  • Funcionalidad de aplicación que impide que las imágenes incorrectas, defectuosas o no autorizadas ingresen a los entornos de implementación

Modelo de políticas

La autorización binaria implementa un modelo de políticas, en el que una política es un conjunto de reglas que rige la implementación de imágenes de contenedor en un clúster de GKE. Las reglas en una política especifican los criterios que una imagen debe pasar para que se pueda implementar. Una política típica requiere que una imagen de contenedor tenga una firma digital verificada antes de implementarse.

En este tipo de política, una regla especifica qué autoridades de confianza, llamadas firmantes, deben afirmar que los procesos necesarios se completaron y que una imagen está lista para avanzar a la siguiente etapa de implementación. Un firmante puede ser un usuario humano o, más a menudo, un proceso de máquina, como un sistema de compilación y prueba, o una parte de la canalización de implementación continua.

Durante el ciclo de vida del desarrollo, los firmantes firman de forma digital descriptores de imagen de contenedor únicos a nivel mundial, lo que crea declaraciones certificadas llamadas certificaciones. Más adelante, durante la fase de implementación, la autorización binaria usa certificadores para verificar la certificación, lo que indica que se completaron los procesos necesarios en la canalización.

Para obtener más información sobre el modelo de políticas de la autorización binaria y otros conceptos, consulta Conceptos clave.

Configuración

A fin de configurar la autorización binaria, primero debes habilitar el servicio para los proyectos que participan en tu canalización de implementación y autorización. Luego, crea clústeres de GKE, según sea necesario, con el servicio habilitado.

Luego, debes definir la política que especifique las restricciones bajo las que se pueden implementar las imágenes de contenedor. Si tu política requiere certificaciones antes de la implementación, también debes configurar certificadores que puedan verificar las certificaciones antes de permitir que se implementen imágenes de contenedor asociadas.

Para obtener más información sobre los pasos de configuración, consulta Descripción general de la configuración.

Autorización

Antes de que se pueda implementar una imagen de contenedor, cualquier firmante obligatorio debe crear una certificación que verifique que la imagen esté lista para avanzar a la siguiente etapa de implementación. La certificación es un registro que contiene la ruta de registro y el resumen de la imagen de contenedor y que se firmó de forma digital con la clave criptográfica privada del firmante.

Para obtener más información sobre la autorización, consulta Crea certificaciones.

Aplicación

Cuando implementas una imagen de contenedor en GKE, la autorización binaria verifica la política y aplica cualquier regla que encuentre que administre su implementación. Si la regla requiere certificadores, la autorización binaria realiza una verificación para asegurarse de que todos los certificadores verificaron la imagen de forma segura.

Si la imagen pasa las restricciones definidas en la política, la autorización binaria permite que se implemente en el clúster. De lo contrario, el servicio bloquea la implementación y escribe un mensaje en el registro de auditoría en el que se describe por qué la imagen no cumple con las políticas.

Para obtener más información sobre la implementación, consulta Implementa contenedores.

Protege la autorización binaria con los Controles del servicio de VPC

Los Controles del servicio de VPC mejoran tu capacidad de mitigar el riesgo de copias o transferencias de datos no autorizadas de los servicios y recursos administrados por Google.

Para obtener más información sobre cómo proteger los recursos relacionados con la autorización binaria, consulta Protege con Controles del servicio de VPC.