Receta Multi-Cluster PKI + Istio: Ejemplo práctico para una PKI fiable y escalable para su malla de servicios
Este artículo ha sido redactado conjuntamente por Cristofer Ten Eyck, Senior Solution Engineer en Keyfactor y Jimmy Song, Developer Advocate en Tetrate.
En el cambiante panorama de las aplicaciones nativas de la nube, la seguridad de las mallas de servicios en varios clústeres es crucial para garantizar tanto la seguridad como el cumplimiento de las normativas.
Istio, una malla de servicios líder de open-source , proporciona herramientas para asegurar la comunicación entre microservicios. Sin embargo, implementar una Infraestructura de Clave Pública (PKI) robusta y escalable para gestionar certificados dentro de este entorno sigue siendo un reto importante.
En este blog, profundizaremos en la implementación de una solución PKI utilizando EJBCA open-source PKI para una malla de servicios Istio que abarque múltiples clústeres. Nos centraremos en el proceso de configuración de EJBCA, la configuración del emisor externo de cert-manager EJBCA y la renovación automática de certificados para las cargas de trabajo de Istio. Esta guía le ayudará a construir una PKI de confianza y escalable, permitiendo mallas de servicio seguras, conformes y resistentes.
¿Por qué multiclústeres? Las implementaciones multiclúster son cada vez más populares a medida que las organizaciones amplían su infraestructura de Kubernetes. Las configuraciones multiclúster de Istio proporcionan una mayor disponibilidad, tolerancia a fallos y aislamiento de las cargas de trabajo entre clústeres.
Comprender la PKI y su papel en las mallas de servicios
La PKI es la piedra angular de la seguridad digital moderna. Implica la gestión de claves y certificados para garantizar una comunicación segura entre entidades, ya sean usuarios, aplicaciones o servicios. En el contexto de una malla de servicios como Istio, una PKI eficaz es esencial para asegurar las comunicaciones entre microservicios, especialmente en entornos multiclúster.
EJBCA ofrece una solución open-source para gestionar PKI a escala. En comparación con otras opciones como OpenSSL o la PKI integrada de Istio, EJBCA proporciona una PKI completa y de nivel empresarial que se adapta bien a implantaciones sencillas o más complejas y polivalentes. EJBCALas capacidades de van más allá de la mera emisión de certificados mTLS, ofreciendo funciones de conformidad, escalabilidad segura, agilidad criptográfica e integración con una amplia gama de aplicaciones.
Istio, EJBCA y cert-manager
Configuración de una PKI para un entorno Istio multiclúster utilizando EJBCA. Esto es lo que se incluye:
- Environment Preparation: We use a MicroK8s multi-cluster Istio setup, consisting of a primary and a remote cluster. Both clusters are configured to work with EJBCA as the root Certificate Authority (CA).
- cert-manager Integration: We showcase the integration of cert-manager with EJBCA, including the configuration of the EJBCA custom issuer. cert-manager will handle the issuance and renewal of certificates.
- Automatic Certificate Renewal: A key challenge in PKI management is ensuring that certificates are renewed automatically before they expire. cert-manager, with EJBCA, can achieve seamless, application-transparent certificate renewal across all clusters.
Configuración de la arquitectura con Istio utilizando EJBCA como CA externa, un resumen de alto nivel
This section outlines the steps to set up Istio on Kubernetes clusters using EJBCA as an external Certificate Authority (CA). The setup involves configuring two MicroK8s clusters with MetalLB for load balancing, integrating EJBCA for certificate management, and installing Istio components using Helm. The complete guide can be found here:
Los pasos clave incluyen:
- Install and Configure Helm Repositories: Add necessary Helm repositories for Istio, cert-manager, and EJBCA.
- Deploy cert-manager and EJBCA: Install cert-manager using Helm in the primary and remote clusters, followed by the deployment of the EJBCA with a custom issuer. This step also includes generating and storing necessary certificates as Kubernetes secrets.
- Configure Istio with EJBCA: Create a custom Issuer in Kubernetes that points to the EJBCA instance for issuing certificates. This issuer is then integrated into the Istio configuration.
- Install Istio Components: Deploy the cert-manager-istio-csr to handle Istio’s certificate signing requests, followed by the installation of Istio’s base components, Istio CNI (Container Network Interface), Istiod (Istio control plane), and the Istio ingress gateway.
- Customization and Overrides: Apply custom values to tailor Istio’s behavior, such as specific cluster IDs, trust domains, and DNS configurations for secure communication between services.
- Automatic Certificate Renewal: The setup is configured so that cert-manager automatically renews certificates before they expire, with no disruption to the running applications.

Arriba se muestra el diagrama de flujo que representa el proceso de emisión y renovación de certificados mTLS en Istio. Ilustra el flujo desde el plano de control de Istio que envía la configuración de Envoy hasta la emisión final del certificado por parte de EJBCA.
Mejores prácticas y cumplimiento de la PKI
Construir una PKI segura para su malla de servicios Istio implica algo más que configurar cualquier PKI y empezar a emitir certificados. Requiere adherirse a las mejores prácticas y cumplir la normativa para mantenerse seguro y preparado para el futuro. He aquí algunos puntos clave a tener en cuenta:
- Compliance with Regulations: Ensure your PKI implementation meets regulatory requirements such as the EU Cyber Resilience Act and the US Executive Order on Improving the Nation’s Cybersecurity. This includes implementing a resilient architecture, maintaining audit trails, and ensuring robust key management practices.
- Crypto Agility and Quantum Readiness: As cryptographic standards evolve, your PKI must be agile enough to adapt to new algorithms and key lengths. With the potential advent of quantum computing, being quantum-ready is increasingly important.
- Collaboration with InfoSec: Effective collaboration with your Information Security (InfoSec) team is crucial for maintaining the security and compliance of your PKI. This includes regular reviews of security policies, ongoing training, and ensuring that PKI management processes align with organizational security goals.
Gestión segura de certificados
La implementación de una PKI para una malla de servicios Istio en un entorno multiclúster puede parecer desalentadora, pero con las herramientas y prácticas adecuadas, se puede lograr de manera eficiente y eficaz. EJBCA En combinación con cert-manager, Istio ofrece una solución para gestionar certificados a escala, garantizando que la PKI de su malla de servicios Istio sea segura y conforme.
Siguiendo los pasos descritos en esta guía, podrá configurar una PKI de confianza, conseguir una gestión de certificados sólida y sin fisuras y colaborar eficazmente con su equipo de InfoSec para mantener la seguridad de su malla de servicios.
Para obtener más recursos e información más detallada sobre los temas tratados en este blog, no deje de consultar los enlaces y referencias que se ofrecen a continuación.
Recursos
- Tutorial - Despliegue de Istio Service Mesh en un entorno Kubernetes multiclúster utilizando EJBCA como proveedor PKI externo
- Documentación de Istio
- EJBCA Edición comunitaria
- documentación de cert-manager
- Ley de Ciberresiliencia de la UE
- Orden ejecutiva de EE.UU. sobre ciberseguridad
- Conectividad transparente entre clústeres para implantaciones multiclúster de Istio Service Mesh
Suscríbase a The Source
Stay secure with Keyfactor's monthly newsletter, packed with expert insights and practical steps for quantum-readiness.