La Encuesta Anual CNCF 2023 destacó que el 84% de las organizaciones están utilizando o evaluando Kubernetes en sus Pipelines de Software de Producción (frente al 81% en 2022). Está claro que Kubernetes se ha convertido en el sistema operativo de facto para que las organizaciones desplieguen sus aplicaciones de software en producción.
Con una base de usuarios cada vez mayor, hay más datos de la empresa involucrados, y con la naturaleza confidencial de los datos y las comunicaciones de la empresa, la gestión de la seguridad para Kubernetes se ha convertido en una preocupación importante para las organizaciones. El 67 % de los encuestados en el Informe sobre el estado de Kubernetes 2024 de RedHat afirma que sus despliegues de Kubernetes se han retrasado por motivos de seguridad.
Con el auge de la arquitectura de microservicios, la infraestructura de clave pública (PKI) ha pasado a desempeñar un papel fundamental a la hora de garantizar una comunicación segura mediante el cifrado, la autenticación y la autorización en todo el proceso de DevOps. Las principales vulnerabilidades que deben abordarse en estas medidas de seguridad pueden incluir:
- Certificados de cliente para que el kubelet se autentique en el servidor API;
- Certificados de servidor de kubelets para que el servidor de API se comunique con los kubelets,
- Certificado de servidor para el endpoint del servidor API,
- Certificados de cliente para que los administradores del clúster se autentiquen en el servidor de API,
- Certificados de cliente para que el servidor API se comunique con los kubelets,
- Certificado de cliente para que el servidor API se comunique con etcd,
- Certificado de cliente/kubeconfig para que el administrador del controlador se comunique con el servidor de API,
- Certificado de cliente/kubeconfig para que el programador se comunique con el servidor de API,
- Certificados de cliente y servidor para el front-proxy
En este blog, exploraremos la importancia de asegurar las comunicaciones pod-to-pod en entornos Kubernetes, y cómo la implementación de TLS proporciona esa capa adicional de protección necesaria.
¿Qué es un Pod y por qué se utilizan?
En las aplicaciones en contenedores y plataformas de orquestación como Kubernetes, un «Pod» representa un grupo de uno o más contenedores que tienen una red o host compartido, lo que les permite comunicarse entre sí. Los contenedores que operan en un pod trabajan juntos para compartir recursos y realizar tareas específicas.
Las plataformas de orquestación como Kubernetes son cruciales para la gestión de pods. Kubernetes permite a los desarrolladores automatizar el despliegue, el escalado y la gestión de aplicaciones en contenedores, garantizando que los flujos de trabajo sigan ejecutándose de forma eficiente.
Cómo se protege la comunicación entre pods
La seguridad de la comunicación pod-to-pod con TLS y mTLS implementa un proceso de cifrado mediante certificados X.509. Los certificados mTLS implementan un proceso de autenticación y cifrado bidireccional para mejorar la seguridad. Estos certificados se almacenan como secretos de Kubernetes, lo que garantiza que la información confidencial se gestiona de forma segura dentro de un clúster. La seguridad mTLS es esencial para fortalecer los entornos en contenedores y mejorar la seguridad de la arquitectura de microservicios.
Por qué es necesario proteger los pods
La seguridad de los pods y de la comunicación entre pods en entornos de contenedores es necesaria para proteger las aplicaciones sensibles y reducir el riesgo de ataques malintencionados o filtraciones de datos. La seguridad de los pods protege a las empresas y permite una serie de mejoras y garantías en un flujo de trabajo:
- Confidencialidad de los datos: los certificados TLS promueven la integridad de los datos y evitan cualquier acceso no autorizado mediante el cifrado. Esta comunicación segura es especialmente importante para los entornos que manejan datos sensibles, como transacciones financieras o registros sanitarios.
- Aislamiento y multi-tenancy - Cuando varios pods trabajan en un entorno compartido y comparten el mismo cluster, se corre el riesgo de que cualquier pod comprometido afecte a otro pod del cluster. mTLS garantiza la seguridad de los despliegues multi-tenancy.
- Autenticación - Asegurar los pods con TLS garantiza que los pods sólo se comunican con entidades autorizadas, reduciendo el riesgo de ataques maliciosos que resulten en accesos no autorizados.
- Aplicación de la postura de seguridad: la seguridad de los pods es fundamental para el éxito del desarrollo de código, y mTLS permite una política de seguridad que establece los requisitos de seguridad básicos para todos los pods en un clúster Kubernetes.
- Requisitos de conformidad: la seguridad de Pod garantiza que las organizaciones cumplan las normas de conformidad, evitando la filtración de datos y las interrupciones en sectores altamente regulados.
- Rendimiento mejorado: además de las ventajas de seguridad de un TLS, también pueden ofrecer mejoras de rendimiento, como tiempos de «handshake» más rápidos, ideales para entornos Kubernetes con mucho tráfico.
¿Qué es mTLS y por qué es importante?
mTLS, o Mutual Transport Security Layer, es una ampliación del protocolo TLS estándar que requiere autenticación mutua entre un cliente y un servidor para establecer una conexión segura. Este paso adicional mejora la seguridad de la comunicación entre estas partes, ya que garantiza que tanto el cliente como el servidor son quienes dicen ser.
mTLS permite lo siguiente:
- Cifrado de datos - especialmente en arquitecturas de microservicios para asegurar las comunicaciones de servicio a servicio.
- Arquitectura de confianza cero: todas las comunicaciones se autentican.
- Aplicación a varios protocolos de comunicación - lo que significa que no se limita a aplicaciones basadas en web.
Debido a estas características, mTLS se utiliza ampliamente para proteger las comunicaciones sensibles que prevalecen en entornos basados en microservicios y nativos de la nube.
Protección de entornos Kubernetes con Cert-manager Issuer de GlobalSign
El emisor Cert-manager de GlobalSign para Kubernetes permite a los desarrolladores proteger sus entornos Kubernetes mediante certificados TLS de confianza. Al aprovechar las capacidades de los gestores de certificados, Atlas Issuer de GlobalSign agiliza el proceso de generación e implantación de certificados X.509 para sus necesidades de seguridad en Kubernetes, proporcionando certificados de confianza de forma rápida y sencilla a medida que los solicita.