Cet article est co-écrit par Cristofer Ten Eyck, Senior Solution Engineer chez Keyfactor et Jimmy Song, Developer Advocate chez Tetrate.
Dans le paysage évolutif des applications cloud-natives, la sécurisation des maillages de services à travers plusieurs clusters est cruciale pour garantir à la fois la sécurité et la conformité.
Istio, l'un des principaux maillages de services open-source , fournit des outils pour sécuriser la communication entre les microservices. Toutefois, la mise en œuvre d'une infrastructure à clé publique robuste et évolutive (PKI) pour gérer les certificats dans cet environnement reste un défi de taille.
Dans ce blog, nous allons nous plonger dans la mise en œuvre d'une solution PKI à l'aide de EJBCA open-source PKI pour un maillage de services Istio couvrant plusieurs clusters. Nous nous concentrerons sur le processus de mise en place de EJBCA, en configurant le cert-manager EJBCA external issuer, et en assurant le renouvellement automatique des certificats pour vos charges de travail Istio. Ce guide vous aidera à construire un site PKI fiable et évolutif, permettant des maillages de services sécurisés, conformes et résilients.
Pourquoi des clusters multiples ? Les déploiements multi-clusters sont de plus en plus populaires à mesure que les organisations étendent leur infrastructure Kubernetes. Les configurations Istio multi-clusters permettent d'améliorer la disponibilité, la tolérance aux pannes et l'isolation des charges de travail entre les clusters.
Comprendre PKI et son rôle dans les maillages de services
PKI est la pierre angulaire de la sécurité numérique moderne. Elle implique la gestion des clés et des certificats pour garantir une communication sécurisée entre les entités, qu'il s'agisse d'utilisateurs, d'applications ou de services. Dans le contexte d'un maillage de services comme Istio, un site PKI efficace est essentiel pour sécuriser les communications entre les microservices, en particulier dans les environnements multi-clusters.
Le site EJBCA offre une solution open-source pour gérer PKI à l'échelle. Comparé à d'autres options comme OpenSSL ou la solution intégrée d'Istio PKI, EJBCA fournit une PKI complète, de qualité professionnelle, qui convient parfaitement aux déploiements simples ou plus complexes et polyvalents. EJBCALes capacités d'Istio vont au-delà de la simple émission de certificats mTLS, offrant des fonctionnalités de conformité, une évolutivité sécurisée, une agilité cryptographique et une intégration avec une large gamme d'applications.
Istio, EJBCA et cert-manager
Mise en place d'un PKI pour un environnement Istio multi-cluster à l'aide de EJBCA. Voici ce qui est inclus :
- Préparation à l'environnement: Nous utilisons une configuration Istio multi-cluster MicroK8s, composée d'un cluster primaire et d'un cluster distant. Les deux clusters sont configurés pour fonctionner avec EJBCA en tant qu'autorité de certification racine.
- Intégration de cert-manager: Nous présentons l'intégration de cert-manager avec EJBCA, y compris la configuration de l'émetteur personnalisé EJBCA . cert-manager s'occupera de l'émission et du renouvellement des certificats.
- Renouvellement automatique des certificats: L'un des principaux défis de la gestion de PKI est de garantir que les certificats sont renouvelés automatiquement avant leur expiration. cert-manager, avec EJBCA, peut assurer un renouvellement des certificats transparent et sans faille pour les applications dans tous les clusters.
Configuration de l'architecture avec Istio utilisant EJBCA comme autorité de certification externe, un résumé de haut niveau
Cette section décrit les étapes pour configurer Istio sur des clusters Kubernetes en utilisant EJBCA en tant qu'autorité de certification (CA) externe. L'installation comprend la configuration de deux clusters MicroK8s avec MetalLB pour l'équilibrage de charge, l'intégration de EJBCA pour la gestion des certificats et l'installation des composants Istio à l'aide de Helm. Le guide complet est disponible ici:
Les étapes clés sont les suivantes :
- Installer et configurer les dépôts Helm: Ajouter les dépôts Helm nécessaires pour Istio, cert-manager, et EJBCA.
- Déployer cert-manager et EJBCA: Installer cert-manager à l'aide de Helm dans les clusters primaires et distants, puis déployer le site EJBCA avec un émetteur personnalisé. Cette étape comprend également la génération et le stockage des certificats nécessaires en tant que secrets Kubernetes.
- Configurer Istio avec EJBCA: Créer un émetteur personnalisé dans Kubernetes qui pointe vers l'instance EJBCA pour l'émission de certificats. Cet émetteur est ensuite intégré dans la configuration d'Istio.
- Installer les composants Istio: Déployer le cert-manager-istio-csr pour gérer les demandes de signature de certificat d'Istio, suivi de l'installation des composants de base d'Istio, Istio CNI (Container Network Interface), Istiod (plan de contrôle d'Istio), et la passerelle d'entrée d'Istio.
- Personnalisation et dérogations: Appliquez des valeurs personnalisées pour adapter le comportement d'Istio, comme des ID de cluster spécifiques, des domaines de confiance et des configurations DNS pour une communication sécurisée entre les services.
- Renouvellement automatique des certificats : L'installation est configurée de manière à ce que cert-manager renouvelle automatiquement les certificats avant qu'ils n'expirent, sans perturber les applications en cours d'exécution.
L'organigramme ci-dessus représente le processus d'émission et de renouvellement du certificat mTLS dans Istio. Il illustre le flux depuis le plan de contrôle Istiod qui pousse la configuration Envoy jusqu'à l'émission finale du certificat par EJBCA.
PKI Bonnes pratiques et conformité
Construire un PKI sécurisé pour votre maillage de services Istio ne se limite pas à configurer un PKI et à commencer à émettre des certificats. Il faut adhérer aux meilleures pratiques et se conformer aux réglementations pour rester sécurisé et à l'épreuve du temps. Voici quelques points clés à prendre en compte :
- Respect des règlements: Veillez à ce que votre mise en œuvre de PKI réponde aux exigences réglementaires telles que la loi européenne sur la cyberrésilience et le décret américain sur l'amélioration de la cybersécurité de la nation. Il s'agit notamment de mettre en œuvre une architecture résiliente, de maintenir des pistes d'audit et de garantir des pratiques robustes de gestion des clés.
- Agilité cryptographique et préparation quantique: Les normes cryptographiques évoluant, votre site PKI doit être suffisamment souple pour s'adapter aux nouveaux algorithmes et longueurs de clés. Avec l'avènement potentiel de l'informatique quantique, il est de plus en plus important d'être prêt pour l'informatique quantique.
- Collaboration avec InfoSec: Une collaboration efficace avec votre équipe de sécurité de l'information (InfoSec) est essentielle pour maintenir la sécurité et la conformité de votre site PKI. Il s'agit notamment de réviser régulièrement les politiques de sécurité, d'assurer une formation continue et de veiller à ce que les processus de gestion de PKI soient en phase avec les objectifs de sécurité de l'organisation.
Gestion sécurisée des certificats
La mise en œuvre d'un site PKI pour un maillage de services Istio dans un environnement multi-cluster peut sembler décourageante, mais avec les bons outils et les bonnes pratiques, elle peut être réalisée de manière efficace et efficiente. EJBCA La solution de gestion des certificats à l'échelle, combinée à cert-manager, garantit que votre service mesh Istio PKI est à la fois sécurisé et conforme.
En suivant les étapes décrites dans ce guide, vous serez en mesure de mettre en place un site de confiance PKI, d'assurer une gestion transparente et solide des certificats et de collaborer efficacement avec votre équipe InfoSec pour maintenir la sécurité de votre maillage de services.
Pour obtenir d'autres ressources et des informations plus détaillées sur les sujets abordés dans ce blog, n'hésitez pas à consulter les liens et les références fournis ci-dessous.
Ressources
- Tutoriel - Déployer Istio Service Mesh dans un environnement Kubernetes multi-clusters en utilisant EJBCA comme fournisseur externe PKI
- Documentation Istio
- EJBCA Édition communautaire
- documentation de cert-manager
- Loi européenne sur la cyber-résilience
- Décret américain sur la cybersécurité
- Connectivité transparente entre clusters pour les déploiements Multicluster Istio Service Mesh