BLOG | NGINX

Arquitectura de seguridad de confianza cero para aplicaciones de Kubernetes con NGINX

NGINX - Parte de F5 - horizontal, negro, tipo RGB
Miniatura de Ilya Krutov
Ilya Krutov
Publicado el 26 de septiembre de 2022

La sofisticación y la cantidad de ataques de ciberseguridad están creciendo exponencialmente, lo que crea un riesgo significativo de exposición para sus aplicaciones implementadas en entornos Kubernetes locales, híbridos y de múltiples nubes. Los modelos de seguridad tradicionales se basan en el perímetro y suponen que los usuarios son confiables (y la comunicación entre ellos es segura) si se encuentran dentro de los límites seguros del entorno. En los entornos distribuidos actuales, el concepto de una zona segura dentro del perímetro ya no existe: las comunicaciones que se originan “desde adentro” del entorno pueden ser tan peligrosas como las amenazas externas.

En este blog, exploramos los beneficios de adoptar un modelo de Confianza Cero para proteger su infraestructura de Kubernetes y cómo NGINX puede ayudar a mejorar su postura de seguridad.

¿Qué es Zero Trust?

Zero Trust es un modelo de seguridad basado en la identidad en lugar de la ubicación. Se supone que cualquier solicitud de acceso a aplicações, datos y dispositivos podría ser un ataque, independientemente de si el solicitante parece estar ubicado en las instalaciones, de forma remota o en la nube.

Para implementar los tres principios básicos de Zero Trust (nunca confiar, siempre verificar, monitorear continuamente), cada usuario, servicio, aplicação y dispositivo debe presentar continuamente pruebas de autenticación y autorización. Los privilegios limitados en el tiempo se otorgan en función de políticas de acceso dinámicas y sobre la base del mínimo privilegio.

Todas las comunicaciones están encriptadas y enrutadas a través de un punto de decisión/aplicación de políticas (PDP/PEP) que autentica a todas las partes y les otorga privilegios basados en políticas de acceso dinámicas. Además, existen capacidades de auditoría, monitoreo, informes y automatización para analizar, evaluar y mitigar los riesgos de seguridad.

diagrama de confianza cero

Cómo la confianza cero mejora su seguridad

Zero Trust mejora su postura de seguridad de varias maneras:

  • Bloquea automáticamente la actividad no autorizada
  • Aplica controles de acceso para reducir la superficie de ataque expuesta
  • Detecta anomalías de comportamiento e indicadores de compromiso.
  • Define políticas en tiempo real y con privilegios mínimos que limitan el tiempo de acceso.
  • Autentica y valida constantemente la identidad para bloquear ataques en curso.

Zero Trust es especialmente crítico para las aplicaciones modernas nativas de la nube que se ejecutan en un entorno de Kubernetes. Las aplicaciones y servicios distribuidos, portátiles y acoplados de forma flexible están en contenedores y se ejecutan en entornos híbridos de múltiples nubes donde la seguridad basada en la ubicación no es una opción. La seguridad depende necesariamente de la validación continua de identidades y privilegios, del cifrado de extremo a extremo y del monitoreo.

Cómo lograr la seguridad de confianza cero

Para cumplir con los principios de Confianza Cero, su entorno de Kubernetes debe proporcionar capacidades de seguridad críticas como autenticación, autorización, control de acceso, políticas, cifrado, monitoreo y auditoría para usuarios, aplicações y servicios.

Una forma posible de lograrlo es incorporar seguridad a la propia aplicación. Sin embargo, eso significa que sus desarrolladores deben implementar múltiples procedimientos de seguridad: para establecer y verificar la confianza, administrar identidades de usuarios y certificados, cifrar y descifrar todas las comunicaciones, etc. También deben comprender e integrar tecnologías de terceros como TLS e inicio de sesión único (SSO). Todo esto no solo agrega complejidad a su ya compleja implementación de Kubernetes. Distrae a los desarrolladores de lo que necesitan (¡y quieren!) hacer: optimizar la funcionalidad comercial de la aplicación.

¡No se asuste! Hay una mejor manera: ¡delegue la seguridad y otros requisitos no funcionales a su infraestructura de Kubernetes! Las herramientas de conectividad para clústeres de Kubernetes, como los controladores de Ingress y las mallas de servicio, pueden brindar PDP y PEP para todas las comunicaciones entre sus aplicaciones y servicios, ya sea que las originen los usuarios u otras aplicaciones o servicios. Esto significa que usted puede centrarse en la experiencia y la funcionalidad principales del negocio, al tiempo que ofrece aplicaciones de forma más rápida y sencilla.

Cómo puede ayudar F5 NGINX

Como ilustra el siguiente diagrama, la solución NGINX para la conectividad segura de Kubernetes incluye todos los componentes y herramientas independientes de la infraestructura que necesita para proteger con éxito a sus usuarios, aplicações distribuidas, microservicios y API a escala y de extremo a extremo en cualquier entorno: local, híbrido y multinube. Impulsada por el plano de datos más popular del mundo, la solución combina:

  • Controlador de ingreso NGINX como controlador de ingreso para Kubernetes y un PDP/PEP que se integra con proveedores de identidad y SSO de terceros. Basado en NGINX Plus , NGINX Ingress Controller maneja conectividad avanzada, monitoreo y visibilidad, autenticación y SSO, y actúa como una puerta de enlace API.
  • NGINX Service Mesh, como una malla de servicio liviana, llave en mano y fácil de usar para desarrolladores, asegura la conectividad del servicio dentro del clúster de Kubernetes. El sidecar de nivel empresarial que actúa como PDP/PEP ubicado junto con cada servicio de Kubernetes se basa en NGINX Plus.
  • NGINX App Protect para la protección integral de aplicaciones y API modernas, basada en las tecnologías de seguridad líderes en el mercado de F5. Utiliza un enfoque modular para lograr flexibilidad en escenarios de implementación y una utilización óptima de los recursos:
    • NGINX App Protect WAF : un WAF ligero y resistente que protege contra el Top 10 de OWASP y proporciona cumplimiento con PCI DDS
    • NGINX App Protect DoS : detección y mitigación de DoS conductual con protección consistente y adaptativa en diferentes nubes y arquitecturas

Diagrama de confianza cero 2

La solución NGINX le permite:

  • Integre controles de seguridad sólidos en entornos distribuidos sin reducir la velocidad de lanzamiento ni perjudicar el rendimiento
  • Bloquee automáticamente los ataques en curso mediante la autenticación constante, la validación de identidad y la detección de anomalías de comportamiento.
  • Implementar políticas de mínimo privilegio en tiempo real, control de acceso detallado, cifrado de extremo a extremo y gobernanza en múltiples equipos.
  • Entregue aplicaciones de forma segura desde el código hasta el cliente con un WAF integrado y robusto y una defensa DoS a nivel de aplicación
  • Evalúe y mejore continuamente la postura de seguridad de su entorno Kubernetes con métricas granulares históricas y en tiempo real.
  • Simplifique la implementación y la gestión de comunicaciones seguras de usuario a servicio y de servicio a servicio mediante la consolidación de tecnología

Implemente una seguridad integral de confianza cero con NGINX

A medida que las organizaciones escalan, se vuelve fundamental descargar de la capa de aplicação los requisitos que no son específicos de la funcionalidad de una aplicación (como las funciones de seguridad Zero Trust). Explicamos anteriormente cómo esto libera a los desarrolladores de la carga de crear, mantener y replicar la lógica de seguridad en sus aplicaciones; en cambio, pueden aprovechar fácilmente las tecnologías de seguridad a nivel de plataforma. NGINX ofrece aplicación centralizada de políticas de seguridad para Kubernetes en el borde del clúster con NGINX Ingress Controller y dentro del clúster con NGINX Service Mesh. Puede agregar protección avanzada a las aplicação contra ciberataques sofisticados con NGINX App Protect WAF y DoS implementados en el borde o dentro del clúster, según los requisitos de seguridad de sus aplicaciones.

Exploremos en profundidad cómo la solución NGINX incluye las características que necesita para implementar una seguridad Zero Trust integral para sus implementaciones de Kubernetes.

Autenticación y autorización

Uno de los principios clave de la seguridad Zero Trust es que cada dispositivo, usuario, servicio y solicitud está autenticado y autorizado. La autenticación es el proceso de verificar la identidad; en otras palabras, garantizar que cada parte que participa en una comunicación es quien dice ser. La autorización es el proceso de verificar que una parte tiene derecho al acceso que solicita a un recurso o función.

Para abordar este principio, la solución NGINX ofrece varias opciones para implementar la autenticación y la autorización, incluida la autenticación básica HTTP , los tokens web JSON (JWT) y OpenID Connect a través de integraciones con proveedores de identidad como Okta y Azure Active Directory (AD). La solución NGINX también emite identidades seguras para los servicios (de forma muy similar a como a los usuarios de las aplicação se les emite una identificación en forma de certificados), lo que les permite autenticarse y autorizarse para realizar acciones en todo el clúster de Kubernetes. Además de gestionar las identidades de la carga de trabajo, la solución NGINX automatiza la gestión de certificados con integraciones integradas con la infraestructura de clave pública (PKI) y las autoridades de certificación.

Debido a que NGINX Ingress Controller ya está analizando todas las solicitudes que ingresan al clúster y enrutándolas a los servicios adecuados, es la ubicación más eficiente para la autenticación y autorización de usuarios centralizadas, así como para la autenticación de servicios en algunos escenarios.

Para obtener más detalles, lea Implementación de la autenticación OpenID Connect para Kubernetes con Okta y el controlador de ingreso NGINX en nuestro blog.

Cifrado e integridad de datos

Otro principio de Confianza Cero es que toda comunicación debe ser segura (su confidencialidad e integridad deben mantenerse) sin importar dónde se encuentren los participantes. Los datos no deben ser leídos por terceros no autorizados ni modificados durante la transmisión. Para satisfacer este principio, la solución NGINX utiliza encriptación SSL/TLS para comunicaciones de usuario a servicio y autenticación y encriptación TLS mutua (mTLS) para comunicaciones de servicio a servicio .

Si la arquitectura de su aplicación no implica comunicación de servicio a servicio dentro del clúster de Kubernetes, NGINX Ingress Controller puede ser suficiente para satisfacer sus necesidades de integridad de datos. Hay dos opciones básicas:

 

  • Con TLS Passthrough , NGINX Ingress Controller enruta las conexiones cifradas con SSL/TLS al servicio directamente, sin descifrarlas ni requerir acceso a los certificados o claves SSL/TLS.
  • Con la terminación SSL/TLS , NGINX Ingress Controller actúa como un proxy inverso, finalizando la conexión TLS con el solicitante y luego utilizando mTLS o SSL/TLS del lado del servicio para cifrar una nueva conexión a sus servicios de Kubernetes (servidores backend y upstream).

Si su arquitectura implica comunicación de servicio a servicio dentro del clúster, para la integridad de los datos necesitará NGINX Ingress Controller y NGINX Service Mesh. NGINX Service Mesh garantiza que solo servicios específicos puedan comunicarse entre sí y utiliza mTLS para autenticarlos y cifrar las comunicaciones entre ellos. Puede implementar mTLS de manera “cero contacto” con NGINX Service Mesh, lo que significa que los desarrolladores no tienen que modernizar sus aplicações con certificados o incluso saber que se está llevando a cabo una autenticación mutua.

Para obtener más información sobre cómo proteger la comunicación en un clúster de Kubernetes, lea La arquitectura mTLS en NGINX Service Mesh en nuestro blog.

Control de acceso y política de acceso

El control de acceso es otro elemento crítico en el modelo Zero Trust. Kubernetes utiliza el control de acceso basado en roles (RBAC) para regular qué recursos y operaciones están disponibles para diferentes usuarios. Determina cómo los usuarios o grupos de usuarios pueden interactuar con cualquier objeto o espacio de nombres de Kubernetes en el clúster.

La solución de conectividad NGINX Kubernetes está habilitada para RBAC para una fácil alineación con las políticas de seguridad de su organización. Con RBAC implementado, los usuarios obtienen acceso restringido a la funcionalidad que necesitan para hacer su trabajo sin tener que presentar un ticket de TI y esperar a que se complete. Sin RBAC, los usuarios pueden obtener permisos que no necesitan o a los que no tienen derecho, lo que puede generar vulnerabilidades si se hacen un mal uso de los permisos.

Cuando configura RBAC con NGINX Ingress Controller, puede controlar el acceso de numerosas personas y equipos al alinear los permisos con los distintos roles en el entorno de desarrollo y entrega de aplicação de su organización. Su herramienta de gestión de acceso de grano fino permite el autoservicio y la gobernanza entre múltiples equipos.

Para aprender cómo aprovechar RBAC con NGINX Ingress Controller, mire nuestro seminario web sobre DevNetwork, Implementaciones avanzadas de Kubernetes con NGINX Ingress Controller . A partir del minuto 13:50, nuestros expertos explican cómo aprovechar RBAC y la asignación de recursos para la seguridad, el autoservicio y la multitenencia.

observabilidad

La auditoría, la supervisión, el registro, el seguimiento y la generación de informes son elementos clave en un entorno de Confianza Cero. Cuanto más información pueda recopilar sobre el estado de la infraestructura de aplicaciones Kubernetes y cuanto más eficazmente pueda correlacionarla, analizarla y evaluarla, más podrá fortalecer su postura de seguridad.

Probablemente ya estés usando herramientas de monitoreo en tu implementación de Kubernetes y no necesites otra más. Para brindarle una imagen completa de lo que sucede dentro de sus clústeres, hemos instrumentado la API NGINX Plus para facilitar la exportación de métricas a cualquier herramienta de terceros que acepte JSON y proporcione integraciones prediseñadas con herramientas populares como OpenTelemetry , Grafana y Prometheus . Obtendrá información específica sobre la conectividad de las aplicaciones con seguimientos profundos para que pueda comprender cómo se procesan las solicitudes de un extremo a otro : NGINX Ingress Controller proporciona información sobre la conectividad entre su clúster y clientes externos, mientras que NGINX Service Mesh cubre la conectividad entre las aplicaciones y servicios en contenedores basados en microservicios dentro del clúster.

Protección WAF y DoS

Con NGINX App Protect, puede fortalecer aún más la seguridad de sus aplicações distribuidas al protegerlas de amenazas como OWASP Top 10 y ataques de denegación de servicio (DoS) de capa 7. NGINX App Protect, un componente integral de la solución de conectividad segura de extremo a extremo NGINX, proporciona seguridad ágil y centrada en las aplicaciones contra las amenazas más avanzadas, mucho más allá de las firmas básicas. Aprovecha la experiencia líder y confiable en seguridad de F5 y no compromete la velocidad de lanzamiento ni el rendimiento. Puede reenviar fácilmente telemetría de seguridad a soluciones de visibilidad y análisis de terceros, y reduce los falsos positivos con firmas de alta confianza y análisis de comportamiento automatizado.

El diseño modular de NGINX App Protect significa que puede implementar una o ambas protecciones WAF y DoS en la misma instancia o en instancias diferentes, según sus necesidades. Por ejemplo, puede decidir implementarlos con NGINX Ingress Controller en el borde de su clúster, lo que es ideal para brindar protección detallada y consistente en todo un clúster único. Si, en cambio, necesita políticas específicas de la aplicación para varias aplicaciones en un clúster, puede implementar WAF y/o protección DoS a nivel de servicio o pod.

Para obtener más información sobre la implementación de WAF y protección DoS, lea Cambiar las herramientas de seguridad a la izquierda para aplicaciones más seguras en nuestro blog.

Comience a utilizar la solución de seguridad NGINX Zero Trust para Kubernetes

Ya sea que esté al comienzo de su recorrido con Kubernetes o sea un usuario avanzado que ha ejecutado Kubernetes en producción durante un tiempo, NGINX ofrece un conjunto integral de herramientas y bloques de construcción para satisfacer sus necesidades y mejorar su postura de seguridad.

Comience solicitando su prueba gratuita de 30 días de NGINX Ingress Controller con NGINX App Protect WAF y DoS, y descargue NGINX Service Mesh siempre gratuito.


"Esta publicación de blog puede hacer referencia a productos que ya no están disponibles o que ya no reciben soporte. Para obtener la información más actualizada sobre los productos y soluciones F5 NGINX disponibles, explore nuestra familia de productos NGINX . NGINX ahora es parte de F5. Todos los enlaces anteriores de NGINX.com redirigirán a contenido similar de NGINX en F5.com.