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.
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.
Zero Trust mejora su postura de seguridad de varias maneras:
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.
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.
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:
La solución NGINX le permite:
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.
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.
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:
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.
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.
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.
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.
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.