Protege las implementaciones

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

Crea y aplica políticas de implementación

A fin de proteger los entornos de ejecución, define políticas con criterios para la 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 restringir las implementaciones y a implementar solo el código de orígenes confiables.

Estos son algunos ejemplos de criterios de implementación:

  • No hay vulnerabilidades conocidas con una gravedad superior a Media
  • El código fuente proviene de un repositorio de código fuente confiable
  • Un servicio de compilación de confianza ejecutó la compilación
  • Los artefactos de compilación que estás implementando provienen de un repositorio de artefactos de confianza

Genera metadatos

Para validar estos requisitos, debes proporcionar metadatos sobre tus artefactos de compilación.

Orígenes de la compilación

La procedencia de la compilación es una colección de datos verificables sobre una compilación, como los resúmenes de 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 en el framework, y cada requisito está asociado con los niveles SLSA para que puedas implementar las mitigaciones de forma incremental.

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

Algunos servicios de compilación generan metadatos de origen de compilación.

Vulnerabilidades

El software de análisis de vulnerabilidades verifica el código fuente y los artefactos de compilación en busca de vulnerabilidades conocidas. Artifact Analysis puede analizar automáticamente las imágenes de contenedores enviadas a Artifact Registry para detectar vulnerabilidades. Para verificar los artefactos en busca de vulnerabilidades antes de almacenarlos, puedes usar la API de On-Demand Scanning en un entorno de desarrollo local o en una canalización de CI/CD, como un paso de compilación de Cloud Build.

Configura la aplicación de políticas

Una vez que tengas metadatos sobre tus artefactos implementables, necesitarás herramientas para aplicar tus políticas.

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

Las verificaciones previas a la implementación pueden bloquear todas las imágenes que no están en la lista de imágenes exentas, de modo que solo se implementen imágenes de confianza de los registros de confianza. Tu política también puede requerir attestations, que son documentos digitales que indican que la imagen se compiló de forma correcta con un proceso requerido específico. Por ejemplo, una certificación puede indicar que una imagen tiene las siguientes características:

La validación continua extiende la validación de la política al entorno posterior a la implementación. Cuando está habilitada, la autorización binaria proporciona validación en todo el ciclo de vida del Pod mediante el registro frecuente del cumplimiento de las políticas en Cloud Logging. Esto es útil en diferentes situaciones. Por ejemplo, si cambias la política después de implementar un contenedor, la validación continua registra los Pods que infringen la política actualizada. También registra los incumplimientos de políticas para los Pods implementados con ejecución de prueba o flujo de trabajo de emergencia.

Usar servicios de implementación con acceso restringido

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

En Google Cloud, Cloud Deploy ofrece un servicio completamente administrado para implementar cargas de trabajo en Google Kubernetes Engine. La función de implementación con acceso restringido permite a los usuarios especificar si se necesita una aprobación para ascender a un destino.

Supervisa tus 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 endurecida que limite su superficie de ataque.

Verificar las cargas de trabajo en los clústeres en busca de problemas de configuración puede ser difícil de realizar de forma manual a gran escala. Software Delivery Shield es una solución de seguridad de la cadena de suministro de software completamente administrada en Google Cloud que proporciona paneles en la IU de Cloud Run y GKE en la consola de Google Cloud para ver las estadísticas de seguridad de las cargas de trabajo.

El panel de postura de seguridad de GKE te proporciona orientación para fortalecer la postura de seguridad de tus clústeres según las recomendaciones de Google. Incluye el análisis de configuración de cargas de trabajo automático, que verifica si hay problemas de configuración conocidos en todas las cargas de trabajo. GKE verifica cada carga de trabajo implementada en función de las prácticas recomendadas relevantes de la industria, como las políticas de los Estándares de seguridad de pods. GKE califica la gravedad de los problemas descubiertos y muestra recomendaciones prácticas y registros. Puedes usar Cloud Logging para obtener un registro auditable de problemas y mejorar los informes y la observabilidad. Si quieres obtener instrucciones para ver las estadísticas de seguridad en el panel de postura de seguridad de GKE, consulta Implementa en GKE y visualiza las estadísticas de seguridad.

Cloud Run contiene un panel de seguridad que muestra estadísticas de seguridad de la cadena de suministro de software, como la información de cumplimiento a nivel de compilación de SLSA, la procedencia de la compilación y las vulnerabilidades encontradas en los servicios en ejecución. Si quieres obtener instrucciones para ver las estadísticas de seguridad en el panel de estadísticas de seguridad de Cloud Run, consulta Implementa en Cloud Run y visualiza las estadísticas de seguridad.

Software Delivery Shield también proporciona 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 la Descripción general del Software Delivery Shield.

¿Qué sigue?