Kubernetes illustration
Secciones

Ventajas de la seguridad de Kubernetes

Copiar URL

La seguridad de los contenedores se puede abordar desde dos enfoques principales: uno centrado en los contenedores y otro basado en Kubernetes. 

Las plataformas que se centran en los contenedores buscan proteger las imágenes y el tiempo de ejecución de estos sistemas. Estas herramientas emplean los shims y los proxies integrados para controlar las funciones de los contenedores con el fin de supervisar la comunicación entre ellos, por ejemplo.

La seguridad de Kubernetes funciona en la capa de esa plataforma. Extrae el contexto de allí y envía las políticas a esa misma plataforma para que las aplique.

Este enfoque de seguridad se basa en integraciones profundas con Kubernetes, ya que desde allí obtiene el contexto y aprovecha los controles de la plataforma. Esta arquitectura mejora la seguridad de dos maneras clave: por un lado, proporciona información y contexto valiosos; por el otro, detecta las amenazas específicas de Kubernetes.

La seguridad propia de Kubernetes

Si bien el desarrollo de las tecnologías de nube presenta nuevos desafíos, también genera oportunidades para mejorar las estrategias actuales en materia de seguridad.

La seguridad propia de Kubernetes se basa en la premisa de que la seguridad se implementa mejor cuando se ajusta al sistema que gestiona las aplicaciones en contenedores. 

Las plataformas de seguridad de Kubernetes deben tener las siguientes características:

  • Integrarse directamente al servidor de la API de Kubernetes, ya que esto permite observar la infraestructura y las cargas de trabajo de la plataforma
  • Evaluar los puntos vulnerables en el software de Kubernetes
  • Basar su función de seguridad, lo cual incluye la gestión de las políticas, en recursos que se encuentran dentro del modelo de objetos de Kubernetes, como las implementaciones, los espacios de nombres, los servicios y los pods, entre otros
  • Analizar los datos declarativos de los elementos específicos de Kubernetes (por ejemplo, los manifiestos de las cargas de trabajo) y las configuraciones
  • Usar las funciones de seguridad integradas de Kubernetes para gestionar el cumplimiento siempre que sea posible, ya que esto favorece una mayor automatización, capacidad de ajuste y confiabilidad
  • Implementarse y ejecutarse como una aplicación de Kubernetes, lo cual incluye las integraciones y el soporte para las herramientas comunes en las cadenas de herramientas de la nube

La seguridad de Kubernetes permite visualizar la configuración tanto de los contenedores como de la implementación de la plataforma. 

También es importante comprender si las cargas de trabajo están aisladas, y de qué forma. De manera predeterminada, Kubernetes permite que todas las implementaciones se comuniquen con otras dentro y fuera de los espacios de nombres. Si puede observar en detalle la configuración de la política de red, preferentemente en un formato visual y no mediante el texto de un archivo YAML, conocerá mejor cuáles son las cargas de trabajo que no están aisladas.

Para comprender su estrategia general de seguridad, debe asegurarse de que las configuraciones de Kubernetes, como los permisos de funciones, el acceso a los secretos, el tráfico de red permitido y los ajustes de los elementos del plano de control estén bloqueadas, cumplan con las prácticas recomendadas y se limiten a la menor cantidad posible de privilegios necesarios para ejecutar las aplicaciones.

Al igual que ocurre con otros recursos informáticos, muchas empresas optan por ejecutar Kubernetes en la nube, lo cual puede hacerse de varias maneras:

  • Kubernetes de autogestión
  • Distribución comercial de Kubernetes
  • Servicio de Kubernetes gestionado

Independientemente del modelo que elija, tanto el proveedor de nube como usted son responsables de proteger la implementación. Si bien en Kubernetes (en especial con los servicios gestionados de la plataforma) rige el modelo habitual de responsabilidad compartida, cuando se trata de la seguridad suele haber algunas dudas al respecto.

En el caso de los servicios gestionados de Kubernetes, el proveedor de nube se ocupa de gestionar el plano de control de la plataforma, lo cual incluye los elementos que supervisan el clúster, junto con los datos sobre su estado y configuración.

Por lo general, estos servicios incluyen la configuración del plano de control y la habilitación de la redundancia de esos nodos, lo que implica ejecutarlos en diferentes regiones para evitar interrupciones en caso de que falle una parte de la infraestructura del proveedor de nube.

Por lo general, los proveedores de nube:

  • Mantienen Kubernetes actualizado.
  • Aplican parches en el plano de control.
  • Pueden aplicar parches en el sistema operativo del nodo, aunque esto generalmente depende del SO que elige.
  • Ofrecen imágenes del sistema operativo para los nodos, las cuales están optimizadas para los contenedores.
  • A veces, incluyen análisis de los puntos vulnerables; sin embargo, usted deberá crear las políticas, como por ejemplo usar un controlador para permitir o rechazar la admisión en función de los resultados de la evaluación.

El cliente siempre debe hacerse cargo de la seguridad de la carga de trabajo de Kubernetes, lo cual incluye los siguientes aspectos:

  • Imágenes de contenedores: fuentes, contenido y puntos vulnerables
  • Implementaciones: servicios de red, almacenamiento y privilegios
  • Gestión de la configuración: funciones, grupos, enlaces de funciones para establecer los permisos de acceso y cuentas de servicios
  • Aplicaciones: gestión de secretos, etiquetas y anotaciones
  • Segmentación de la red: políticas de red en el clúster
  • Tiempo de ejecución: detección de amenazas y respuesta ante incidentes

Las plataformas de seguridad de Kubernetes ofrecen varias ventajas importantes: 

Mayor protección

Este tipo de seguridad permite entender mejor lo que sucede en el entorno porque se vincula con los datos declarativos de Kubernetes para detectar puntos vulnerables en la plataforma y en los contenedores. 

Mayor eficiencia operativa

El uso del mismo marco para la gestión de la infraestructura y la seguridad reduce la curva de aprendizaje de Kubernetes, cuyo contexto agiliza la detección de las amenazas y la evaluación de los riesgos en función de las prioridades.

Menos riesgos operativos

Los controles de Kubernetes garantizan que la seguridad tenga la misma agilidad y capacidad de ajuste que la plataforma. Como las políticas están incorporadas en Kubernetes, no hay conflictos entre los controles externos y el organizador.

Este tipo de seguridad ayuda a reducir los problemas operativos que surgen de las configuraciones poco uniformes, de la falta de coordinación y de los errores de los usuarios.

Dada la curva de aprendizaje en la que se encuentran la mayoría de los usuarios de Kubernetes, es habitual que se comentan errores. Estos incluyen otorgar privilegios de primer nivel utilizando los controles de acceso basado en funciones (RBAC) de Kubernetes, como otorgarle a un usuario o a una cuenta de servicios permisos administrativos completos de un clúster; o bien, exponer innecesariamente los secretos de la plataforma al permitir que las implementaciones los consulten incluso cuando no es necesario.

Las plataformas de seguridad de Kubernetes pueden identificar permanentemente estos problemas de configuración de manera automática.

La incorporación de controles de seguridad directamente en Kubernetes elimina la necesidad de tener un software aparte que se ocupe de ello. Estos sistemas suponen un riesgo porque, ante una falla, pueden permanecer abiertos y habilitar todo el tráfico de las aplicaciones sin controles de seguridad; o bien, cerrarse e interrumpir el tráfico por completo.

Gracias a que el organizador de Kubernetes aplica los controles de políticas, la seguridad adquiere de inmediato toda la capacidad de ajuste y las opciones de cumplimiento de la plataforma. 

En cambio, el uso de shims o proxies integrados para el cumplimiento puede dar lugar a puntos únicos de falla, problemas de ajuste y limitaciones en el rendimiento.

Kubernetes le permite, por ejemplo, aplicar las políticas de red para segmentar el tráfico; usar los controladores de admisión para aplicar las políticas a las solicitudes que se dirigen al servidor de la API de Kubernetes; utilizar los secretos para almacenar credenciales confidenciales, y aplicar el control de acceso basado en funciones (RBAC) para autorizar que determinados usuarios y cuentas de servicios desempeñen ciertas funciones.

También puede utilizar otras herramientas estandarizadas, como los plugins de red que cumplen con las especificaciones del proyecto Container Network Interface (CNI), junto con la plataforma de seguridad de Kubernetes, y cambiarlas según sea necesario.

Kubernetes ofrece una plataforma única para preparar y ejecutar los servicios de infraestructura, lo cual optimiza y unifica los flujos de trabajo de los equipos de operaciones y desarrollo de aplicaciones. 

Ese mismo enfoque consolidado, en el que todos trabajan a partir de una fuente de información común y usan la misma infraestructura, puede extenderse también a la seguridad si se implementa una plataforma de seguridad de Kubernetes. 

Además, le permite ahorrar tiempo y dinero, ya que acorta la curva de aprendizaje y agiliza los análisis y la corrección de errores.

Si los equipos de DevOps y de seguridad usan herramientas diferentes, pueden surgir conflictos relacionados con la configuración. 

Por ejemplo, el personal de DevOps podría especificar una política de red de Kubernetes que permita el tráfico entre dos nodos, mientras que los especialistas en seguridad podrían introducir un software de control aparte que lo bloquee.

Si los equipos de DevOps analizaran la configuración de Kubernetes, verían que debería haber tráfico en la aplicación. Sin embargo, al no poder observar los controles que ejecuta el software implementado, probablemente no entiendan por qué la aplicación no funciona correctamente.

Si ambas áreas utilizan los mismos elementos para diseñar, distribuir y proteger las aplicaciones en contenedores, no es necesario que aprendan a manejar tantos modelos, interfaces y herramientas. 

Los equipos de DevOps usan los manifiestos de Kubernetes para definir los recursos que necesita una aplicación en particular. Si se utilizan esos mismos recursos para obtener el contexto de seguridad y aplicar las políticas, se reduce la complejidad y se obtienen mejores resultados. 

La seguridad de Kubernetes toma a esta plataforma como la fuente de información para sus políticas, así que los equipos de seguridad, de operaciones, de DevOps y de ingeniería de confiabilidad del sitio pueden aprovecharla para desempeñar sus tareas. 

Además, los problemas de seguridad se vinculan directamente con los objetos y los recursos de Kubernetes que estos equipos usan a diario, lo cual simplifica aún más las operaciones.

Utilice la herramienta de Kubernetes para la aplicación de políticas de seguridad y evite los riesgos operativos que conlleva la implementación de un sistema de software de seguridad aparte.

Los contenedores dificultan la seguridad de las aplicaciones desarrolladas en la nube por varios motivos; por ejemplo, los incidentes pueden estar muy dispersos, los contenedores producen grandes volúmenes de datos para procesar y son efímeros, lo cual hace que los mecanismos tradicionales de respuesta queden obsoletos.

La seguridad de Kubernetes permite identificar las amenazas a los contenedores con mayor precisión, así como reducir el tiempo y el esfuerzo que necesita para aplicar eficazmente la seguridad a su entorno.

Con el contexto de Kubernetes, el comportamiento esperado está bien claro. Como resultado, la seguridad de Kubernetes puede identificar anomalías con mayor exactitud, y usted puede aplicar las opciones de cumplimiento, como desactivar un pod, con más confianza.

A la vez, cuando se utiliza el contexto de Kubernetes, también se reducen los falsos positivos y el cansancio que provoca el exceso de alertas.

La seguridad de Kubernetes también permite abordar las tareas de seguridad con un enfoque basado en los riesgos. 

Es probable que sus implementaciones contengan varias violaciones a las políticas; sin embargo, no siempre es fácil saber por dónde empezar a solucionarlas. Ante este interrogante, el contexto de Kubernetes suele ser nuevamente de gran ayuda. 

Si reúne varios aspectos de los metadatos de Kubernetes, como el que un clúster esté en desarrollo o en producción, el que esté expuesto o no a Internet, el grado de importancia de la aplicación y el que se esté ejecutando en ella algún proceso malicioso, podrá determinar cuáles son las áreas que requieren la atención inmediata de su equipo. 

Detectar los puntos vulnerables específicos de Kubernetes, en especial los que afectan al servidor de la API de la plataforma, es fundamental para prevenirlos, identificarlos y corregirlos. Con las herramientas de seguridad de Kubernetes, es posible identificarlos de manera automática.

Gracias a la integración con el servidor de la API de Kubernetes, es posible supervisar la seguridad de los contenedores que se ejecutan en los clústeres de la plataforma y de los recursos de ella, como las implementaciones, los conjuntos de daemons, los servicios y los pods, entre otros.

La naturaleza abierta de las implementaciones de Kubernetes también es un factor de riesgo. Kubernetes es principalmente una plataforma para las operaciones de la infraestructura; por eso, para facilitar su funcionamiento, no todos los elementos se protegen de manera predeterminada. 

Para garantizar la seguridad de las implementaciones de Kubernetes, también es fundamental aplicar las políticas de red que limitan las comunicaciones. Las plataformas de seguridad de Kubernetes pueden evaluar automáticamente la actividad de su red, identificar las vías de comunicación que son necesarias para la aplicación y crear el archivo YAML correcto para limitar el acceso a la red.

La configuración automática de la seguridad que ofrece la plataforma de Kubernetes le permitirá identificar y detener permanentemente las amenazas a la plataforma.

 

La seguridad de Kubernetes también favorece la alta portabilidad y la reutilización. La adopción de un enfoque único y estandarizado, que se ejecute en cualquier lugar en que funcione Kubernetes, garantiza que las políticas se apliquen con uniformidad en todos los entornos. 

La seguridad de Kubernetes permite que los usuarios especifiquen una sola configuración, como por ejemplo una política de red, que debe aplicarse a todos los pods de la implementación, en lugar de tener que configurar los controles en los sistemas de cada host del clúster. 

Si las empresas vinculan las políticas a los sistemas de CI/CD y al marco del controlador de admisión de Kubernetes, les resultará más sencillo aplicar las políticas de control en las primeras etapas del ciclo de vida del desarrollo del software, lo cual evita las exposiciones durante la ejecución. 

Además, al aprovechar los elementos de Kubernetes, como el controlador de admisión, es posible mantener la seguridad ligada a las cadenas de herramientas de Kubernetes.

Artículos relacionados

ARTÍCULO

Diferencias entre los contenedores y las máquinas virtuales

Las máquinas virtuales (VM) y los contenedores de Linux son entornos informáticos empaquetados que combinan varios elementos de TI y los aíslan del resto del sistema.

ARTÍCULO

¿Qué es la organización de los contenedores?

La organización en contenedores automatiza la implementación, la gestión, la escalabilidad y la conexión en red de los contenedores.

ARTÍCULO

¿Qué es un contenedor de Linux?

Un contenedor de Linux es un conjunto de procesos separados del resto del sistema, los cuales pueden ejecutarse desde una imagen diferente que proporciona todos los archivos necesarios para que funcionen.

Más información sobre los contenedores

Productos

Plataforma de aplicaciones empresariales que ofrece servicios probados para lanzar aplicaciones al mercado en la infraestructura que usted escoja.

Contenido adicional

Capacitación

Curso de capacitación gratuito

Running Containers with Red Hat Technical Overview

Curso de capacitación gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Curso de capacitación gratuito

Developing Cloud-Native Applications with Microservices Architectures