Proteger las implementaciones

En este documento se describen las prácticas recomendadas para proteger tus implementaciones.

Crear y aplicar políticas de implementación

Para proteger tus entornos de tiempo de ejecución, define políticas con criterios de implementación y valida el cumplimiento de las políticas antes y después de la implementación. Definir una política que solo permita el código firmado por certificadores predefinidos ayuda a controlar las implementaciones y a implementar solo el código de orígenes de confianza.

Estos son algunos ejemplos de criterios de implementación:

  • No se han detectado vulnerabilidades con una gravedad superior a media
  • El código fuente procede de un repositorio de código fuente de confianza
  • Un servicio de compilación de confianza ha ejecutado la compilación
  • Los artefactos de compilación que vas a implementar proceden de un repositorio de artefactos de confianza

Generar metadatos

Para validar estos requisitos, debe proporcionar metadatos sobre los artefactos de compilación.

Compilar orígenes

La procedencia de la compilación es un conjunto de datos verificables sobre una compilación, como los resúmenes de las imágenes compiladas, las ubicaciones de la fuente de entrada, la cadena de herramientas de compilación y la duración de la compilación. SLSA, un framework para evaluar la postura de seguridad, proporciona un modelo de procedencia y requisitos de procedencia. La procedencia es una categoría de requisitos del framework, y cada requisito está asociado a niveles de SLSA para que puedas implementar mitigaciones de forma incremental.

  • Para obtener el nivel de certeza 1 de SLSA, la procedencia debe estar disponible.
  • Para obtener el nivel de garantía 2 de SLSA, se debe generar la procedencia y los consumidores deben poder verificar su autenticidad e integridad.
  • Los niveles 3 y 4 de SLSA tienen requisitos más estrictos en cuanto a la firma de procedencia y la profundidad de los detalles de los datos de procedencia.

Algunos servicios de compilación generan metadatos de procedencia de la compilación.

Vulnerabilidades

El software de análisis de vulnerabilidades comprueba el código fuente y los artefactos de compilación para detectar vulnerabilidades conocidas. Artifact Analysis puede analizar automáticamente las imágenes de contenedor que se envían a Artifact Registry para detectar vulnerabilidades. Para comprobar si los artefactos tienen vulnerabilidades antes de almacenarlos, puedes usar la API On-Demand Scanning en un entorno de desarrollo local o en un flujo de procesamiento de CI/CD, como un paso de compilación de Cloud Build.

Configurar la aplicación obligatoria de las políticas

Una vez que tenga los metadatos de sus artefactos desplegables, necesitará herramientas para aplicar sus políticas.

En Google Cloud, puedes configurar una política en Autorización binaria para tus implementaciones. La autorización binaria aplica políticas a los intentos de despliegue en plataformas basadas en contenedores compatibles. También puede realizar una validación continua de las políticas de las cargas de trabajo que se ejecutan en GKE, Cloud Run y GKE Enterprise.

Las comprobaciones previas al despliegue pueden bloquear todas las imágenes que no estén en la lista de imágenes exentas, de forma que solo se desplieguen imágenes de confianza procedentes de registros de confianza. Tu política también puede requerir atestaciones, documentos digitales que indiquen que la imagen se ha creado correctamente con un proceso específico y obligatorio. Por ejemplo, una certificación puede indicar que una imagen es:

La validación continua amplía la validación de políticas al entorno posterior al despliegue. Cuando está habilitada, la autorización binaria proporciona validación durante todo el ciclo de vida del pod registrando periódicamente la conformidad de la política en Cloud Logging. Esto resulta útil en diversas situaciones. Por ejemplo, si cambias tu política después de implementar un contenedor, la validación continua registra los pods que infringen la política actualizada. También registra las infracciones de las políticas de los pods implementados con pruebas sin cambios o breakglass.

Usar servicios de implementación controlada

El control de despliegue te permite aprobar o rechazar despliegues en puntos específicos del proceso de despliegue mediante un servicio de CI/CD independiente o un servicio de CI/CD integrado con un sistema de automatización de procesos. Las implementaciones controladas impiden que los usuarios no autorizados hagan cambios en los entornos de las aplicaciones. Proporcionan una supervisión adicional del proceso de implementación y una mayor visibilidad de las aprobaciones.

En Google Cloud, Cloud Deploy ofrece un servicio totalmente gestionado para desplegar cargas de trabajo en Google Kubernetes Engine. La función de implementación controlada permite a los usuarios especificar si se necesita una aprobación para promocionar un elemento a un destino.

Monitorizar cargas de trabajo

Las cargas de trabajo son aplicaciones que se ejecutan en plataformas basadas en contenedores, como GKE y Cloud Run. Lo ideal es que las cargas de trabajo que implementes tengan una configuración reforzada que limite su superficie de ataque.

Comprobar si hay problemas de configuración en las cargas de trabajo de los clústeres puede ser difícil de hacer manualmente a gran escala. Google Cloud proporciona paneles de control en Cloud Run y GKE para ver estadísticas de seguridad de las cargas de trabajo.

El panel de control de la posición de seguridad de GKE te ofrece indicaciones para reforzar la posición de seguridad de tus clústeres según las recomendaciones de Google. Incluye el análisis automático de la configuración de las cargas de trabajo, que comprueba si hay problemas de configuración conocidos en todas las cargas de trabajo. GKE comprueba cada carga de trabajo implementada con las prácticas recomendadas del sector pertinentes, como las políticas de los estándares de seguridad de pods. GKE califica la gravedad de los problemas detectados y devuelve recomendaciones y registros útiles. Puedes usar Cloud Logging para obtener un registro de auditoría de las incidencias y mejorar los informes y la observabilidad. Para obtener instrucciones sobre cómo ver información valiosa sobre seguridad en el panel de control de postura de seguridad de GKE, consulta Desplegar en GKE y consultar información valiosa sobre seguridad.

Cloud Run incluye un panel de seguridad que muestra estadísticas sobre la seguridad de la cadena de suministro de software, como información sobre el cumplimiento del nivel de compilación de SLSA, la procedencia de la compilación y las vulnerabilidades encontradas en los servicios en ejecución. Para obtener instrucciones sobre cómo ver estadísticas de seguridad en el panel de estadísticas de seguridad de Cloud Run, consulta el artículo Desplegar en Cloud Run y consultar estadísticas de seguridad.

Google Cloud también ofrece otros servicios y funciones para mejorar tu postura de seguridad durante todo el ciclo de vida del desarrollo de software. Para obtener más información, consulta el resumen de la cadena de suministro de software.

Siguientes pasos