Seguridad en contenedores

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

Descripción general

Gracias a los 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 en GCP (ya sea Kubernetes Engine de Google 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, Kubernetes Engine de Google 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 la 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 tiempo de ejecución

Si cuentas con un sistema de seguridad del tiempo 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 mucho 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 de cargas de trabajo

Aislamiento de recursos y de cargas de trabajo

Los contenedores te permiten aislar recursos de forma sencilla (como los volúmenes de almacenamiento) en procesos concretos mediante los cgroups y los 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 Kubernetes Engine de Google, esta funcionalidad se utiliza de forma nativa junto con otras funciones de Google Cloud.

Identidad y autorización

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

Almacenamiento de registros de auditoría

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

Redes

En Kubernetes Engine de Google 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 Kubernetes Engine de Google en una VPC compartida.

Cumplimiento

Kubernetes Engine de Google 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

Kubernetes Engine de Google 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

Los usuarios de sectores regulados pueden tener 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 supervisa 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.

Identidad de carga de trabajo

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 menor privilegio 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 obtenga, gestione y renueve automáticamente dichos certificados 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 funcionalidades 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 Kubernetes Engine de Google 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 desplegar con regularidad para que puedas sacar partido de los últimos parches que se aplican de forma gradual en tu entorno.

Seguridad del tiempo de ejecución

El objetivo del sistema de seguridad del tiempo 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.

Monitoring

Kubernetes Engine de Google tiene integrado Stackdriver 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 supervisar los posibles ataques y consultar los resultados en Cloud SCC.

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, 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 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 recursos que presentamos a continuación 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 un crédito gratuito de 300 $.

¿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.