Seguridad en contenedores

Protege tu entorno de contenedores en Google Cloud Platform (GCP), GKE o Anthos

Información general

Gracias a la creación en contenedores, los equipos de desarrollo pueden actuar con rapidez, desplegar software de forma eficaz y trabajar a una escala sin precedentes. Las empresas crean cada vez más cargas de trabajo en contenedores, por lo que es imprescindible integrar un sistema de seguridad en cada etapa del ciclo de vida de desarrollo y despliegue. Descubre cómo puedes proteger cualquier entorno de contenedores que ejecutes en GCP (ya sea Google Kubernetes Engine o Anthos) en tres áreas cruciales.

Seguridad de la infraestructura

Contar con una infraestructura segura significa que tu plataforma de gestión de contenedores ofrece las funciones de seguridad adecuadas. Kubernetes encaja en esta definición, ya que incluye funciones pensadas para proteger tus identidades, tus secretos y tu red. Además, Google Kubernetes Engine utiliza funcionalidades nativas de GCP (como Cloud IAM, el registro de auditoría de Cloud y las nubes privadas virtuales) y funciones específicas de GKE (como el encriptado de secretos de capas de aplicaciones y Workload Identity) para integrar las mejores prestaciones de seguridad de Google en tus cargas de trabajo.

Cadena de suministro de software

Proteger la cadena de suministro de software implica que las imágenes de contenedor se puedan desplegar de forma segura. De este modo, puedes tener la certeza de que dichas imágenes están libres de vulnerabilidades y de que las que creas no se modifican antes de desplegarse.

Seguridad del entorno de ejecución

Si cuentas con un sistema de seguridad del entorno de ejecución, puedes identificar los contenedores que muestren un comportamiento malintencionado en la fase de producción y actuar en consecuencia para proteger tu carga de trabajo.

Si ejecutas contenedores, puedes adoptar un modelo de seguridad totalmente diferente

Inmutabilidad y gestión de parches más sencilla

Inmutabilidad y gestión de parches más sencilla

Los contenedores están especialmente diseñados para ser inmutables, de modo que si quieres realizar algún cambio, tienes que desplegar una imagen nueva. Si quieres simplificar el proceso de gestión de parches, solo tienes que volver a crear tus imágenes de forma regular para que el parche se aplique la próxima vez que se despliegue un contenedor. Si quieres estar al tanto de todos los aspectos relacionados con tu entorno, revisa periódicamente la seguridad de tus imágenes.

Menor exposición a los ataques

Menor exposición a los ataques

Los contenedores están pensados para ejecutarse en un sistema operativo del host mucho más pequeño que el que utilizan las máquinas virtuales, ya que se introduce más contenido directamente en la aplicación. Gracias a este sistema tan reducido, tu carga de trabajo está menos expuesta a posibles ataques.

Aislamiento de recursos y cargas de trabajo

Aislamiento de recursos y cargas de trabajo

Los contenedores te permiten aislar recursos de forma sencilla (como los volúmenes de almacenamiento) en procesos concretos mediante cgroups y espacios de nombres. A través de tecnologías como GKE Sandbox, puedes aislar cargas de trabajo de forma lógica en una zona de pruebas de máquina virtual secundaria y, de este modo, separarlas de otras aplicaciones.

Seguridad de la infraestructura

El sistema de seguridad de la infraestructura de contenedores se ocupa de que tus desarrolladores cuenten con las herramientas necesarias para crear servicios en contenedores de forma segura. Por lo general, estas funcionalidades están integradas en el orquestador de contenedores, como es el caso de Kubernetes. Si utilizas Google Kubernetes Engine, esta funcionalidad se utiliza de forma nativa junto con otras funciones de Google Cloud.

Identidad y autorización

En Google Kubernetes Engine, puedes gestionar el acceso a tus proyectos con Cloud IAM y, mediante el control de acceso basado en roles (RBAC), puedes hacer lo propio con tus clústeres y espacios de nombres.

Registros de auditoría

En Kubernetes, los registros de auditoría de API se capturan de forma automática. En Google Kubernetes Engine, este mismo proceso se realiza automáticamente mediante los registros de auditoría de Cloud.

Redes

En Google Kubernetes Engine puedes crear una política de red para gestionar las comunicaciones entre pods dentro de tu clúster. Usa clústeres privados para IP privadas e incluye recursos de Google Kubernetes Engine en una VPC compartida.

Cumplimiento

Google Kubernetes Engine cuenta con una amplia gama de certificaciones de cumplimiento, como ISO 27001, ISO 27017, ISO 27108, HIPAA y PCI‑DSS.

Sistema operativo de host reducido

Google Kubernetes Engine utiliza Container‑Optimized OS (COS) de forma predeterminada. Se trata de un sistema operativo de código abierto administrado por Google, diseñado específicamente para este ámbito y optimizado para los contenedores que se estén ejecutando.

Componentes actualizados automáticamente

En GKE se aplican automáticamente parches de la última versión de Kubernetes a las instancias maestras, y dispones de una función de actualización automática de nodos para mantener la seguridad al día mediante la aplicación automática de los parches más recientes para tus nodos.

Claves de encriptado gestionadas por el cliente

Es posible que los usuarios de sectores regulados tengan que controlar las claves usadas para encriptar los datos almacenados en GKE. Las claves de encriptado gestionadas por el cliente te permiten elegir una clave en Cloud KMS para proteger el disco persistente de GKE.

Encriptado de secretos de la capa de aplicación

De forma predeterminada, los secretos de Kubernetes se almacenan en texto sin formato. GKE encripta estos secretos en el disco y monitoriza los datos para detectar accesos desde el interior. No obstante, esto por sí solo puede no ser suficiente para proteger dichos secretos frente a una aplicación maliciosa presente en el entorno. El encriptado de secretos de capas de aplicaciones protege los secretos con encriptado en sobre, con una clave que se gestiona en Cloud KMS.

Workload Identity

Probablemente tu aplicación en contenedores tenga que conectarse a otros servicios, como una base de datos, para realizar sus tareas. Para ello, la aplicación primero tiene que autenticarse en dichos servicios. Workload Identity usa una cuenta de servicios gestionados de Google para compartir las credenciales de autenticación, siguiendo los principios de privilegio mínimo para la autenticación de aplicaciones.

Certificados SSL gestionados

En GKE, los balanceadores de carga HTTPS deben asociarse a un certificado SSL. Puedes obtener, gestionar y renovar estos certificados tú mismo, o bien solicitar que Google los obtenga, gestione y renueve automáticamente en tu nombre, lo que te ahorrará trabajo (y evitará, por ejemplo, que te olvides de una renovación).

Cadena de suministro de software

La función de la cadena de suministro de software es indicarte exactamente qué despliegues se llevan a cabo en tu entorno. Tienes el control de todas las fases de tus aplicaciones, desde el código hasta el despliegue, pasando por la imagen. Estas funciones suelen estar integradas en tu flujo de procesamiento de CI/CD, en tu registro de contenedores (por ejemplo, Google Container Registry) y en forma de comprobación de la admisión antes de que despliegues los contenedores en la fase de producción.

Imágenes base seguras y gestionadas

Google Container Registry proporciona una imagen base de Debian y otra de Ubuntu (ambas gestionadas por Google), a las que se aplican parches y que se someten a pruebas de forma periódica. Estas imágenes gestionadas por Google se han actualizado con los parches más recientes desde niveles superiores, de forma que puedas mantener al día tus imágenes fácilmente sin tener que extraer archivos de un repositorio desconocido o mantener las imágenes tú mismo.

Análisis de vulnerabilidades

Google Container Registry te permite realizar en tus imágenes y paquetes un análisis de vulnerabilidades conocidas que figuran en la base de datos de Common Vulnerabilities and Exposures (CVE).

Políticas de despliegue

En Google Kubernetes Engine puedes utilizar la autorización binaria para limitar los despliegues en tu entorno según las atestaciones de una imagen. Puedes elegir que las imágenes cumplan ciertos requisitos definidos por ti en forma de atestaciones, o firmas, antes de su despliegue. Los requisitos pueden incluir el escaneado de la imagen para identificar vulnerabilidades o la verificación por parte del equipo de control de calidad.

Lanzamiento periódico de versiones

Los contenedores se pueden volver a crear y a desplegar con regularidad para que puedas sacar partido de los últimos parches que se aplican de forma gradual en tu entorno.

Seguridad del entorno de ejecución

El objetivo del sistema de seguridad del entorno de ejecución de los contenedores es garantizar que tu equipo de respuesta cuenta con las herramientas necesarias para detectar y actuar ante las amenazas que afectan a la seguridad de los contenedores que se ejecutan en tu entorno. Por lo general, estas funciones vienen integradas en tu conjunto de herramientas de operaciones de seguridad.

Monitorización

Google Kubernetes Engine tiene integrado Cloud Logging para facilitar el análisis de registros. También puedes crear actividades relacionadas con la seguridad en Cloud Security Command Center (Cloud SCC).

Detección de actividades anómalas

Aprovecha los servicios de nuestros partners (entre los que se incluyen Aqua Security, Capsule8, StackRox, Sysdig Secure y Twistlock) para monitorizar los posibles ataques y consultar los resultados en Security Command Center.

Aplicar políticas de seguridad

PodSecurityPolicy es una función de Kubernetes de código abierto que te ayuda a crear límites para los contenedores; esto consiste en establecer restricciones acerca de la forma en que se pueden ejecutar los pods, como, por ejemplo, aplicando restricciones como AppArmor y seccomp.

Aislamiento

Evita que un contenedor malintencionado afecte a los demás: GKE Sandbox usa un kernel de espacio de usuario para interceptar y gestionar syscalls, lo que proporciona una defensa en profundidad de los contenedores sin cambiar la forma en que los desarrolladores interactúan con sus aplicaciones. GKE Sandbox se basa en gVisor, un proyecto de código abierto creado en Google.

Recursos

Consulta los siguientes recursos para obtener información más detallada sobre la seguridad en contenedores.

Google Cloud

Primeros pasos

Aprendizaje y desarrollo

¿Acabas de aterrizar en GCP? Empieza a usar cualquiera de los productos de la plataforma con 300 USD en crédito gratuito.

¿Necesitas más ayuda?

Nuestros expertos te ayudarán a crear la solución adecuada o a encontrar el partner que mejor se ajuste a tus necesidades.