Modifier

Partager via


Déployer AKS et Gestion des API avec mTLS

Microsoft Entra ID
Azure Kubernetes Service (AKS)
Gestion des API Azure
Azure Container Registry
Microsoft Defender pour le cloud

Idées de solution

Cet article présente une idée de solution. Votre architecte cloud peut s’appuyer sur ces conseils pour visualiser les principaux composants d’une implémentation typique de cette architecture. Utilisez cet article comme point de départ pour concevoir une solution bien conçue qui répond aux exigences spécifiques de votre charge de travail.

Cette solution montre comment intégrer Azure Kubernetes Service (AKS) et Gestion des API Azure avec mutual TLS (mTLS) dans une architecture qui fournit un chiffrement de bout en bout.

Concepts

La gestion des API Azure permet un accès sécurisé aux services principaux via plusieurs mécanismes. Au niveau de la couche de transport (réseau), la gestion des API Azure peut présenter des certificats clients au serveur principal et vérifier également le certificat présenté par le serveur principal. Dans ce scénario d’authentification TLS mutuelle, les étapes suivantes se produisent :

  1. La gestion des API Azure se connecte au serveur principal (dans ce scénario, au contrôleur d’entrée s’exécutant dans AKS).
  2. Le serveur principal (le contrôleur d’entrée dans AKS) présente le certificat de serveur.
  3. La gestion des API Azure valide le certificat de serveur.
  4. La gestion des API Azure présente le certificat client au serveur (le contrôleur d’entrée dans AKS).
  5. Le serveur (le contrôleur d’entrée dans AKS) valide le certificat présenté par Azure Gestion des API.
  6. Le serveur (le contrôleur d’entrée dans AKS) accorde l’accès à la demande proxiée par le biais de la gestion des API Azure.

Architecture

Diagramme montrant une architecture qui permet d’intégrer AKS et Gestion des API avec mTLS.

Téléchargez un fichier Visio de cette architecture.

Dataflow

  1. Un utilisateur fait une demande au point de terminaison d’application à partir d’Internet.
  2. Azure Application Gateway reçoit le trafic https et présente un certificat public précédemment chargé à partir d’Azure Key Vault à l’utilisateur.
  3. Application Gateway utilise des clés privées pour déchiffrer le trafic (déchargement SSL), effectue des inspections du pare-feu d’applications web et rechiffre le trafic à l’aide de clés publiques (chiffrement de bout en bout).
  4. Application Gateway applique des règles et des paramètres de back-end en fonction du pool de back-ends et envoie le trafic au pool de back-ends Gestion des API sur HTTPS.
  5. Le service Gestion des API est déployé en mode réseau virtuel interne (niveau Développeur ou Premium uniquement) avec une adresse IP privée. Il reçoit le trafic au format HTTPS avec des certificats PFX de domaine personnalisés.
  6. Microsoft Entra ID fournit l’authentification et applique Gestion des API stratégies via OAuth et éventuellement la validation de certificat client. Consultez les étapes à suivre pour recevoir et vérifier les certificats clients dans Azure Gestion des API.
  7. Gestion des API envoie le trafic via HTTPS à un contrôleur d’entrée pour un cluster privé AKS, à l’aide du certificat client approuvé par le contrôleur d’entrée AKS.
  8. Le contrôleur d’entrée AKS reçoit le trafic HTTPS et vérifie le certificat client présenté par la gestion des API Azure. La plupart des contrôleurs d’entrée de niveau entreprise prennent en charge mTLS. Le contrôleur d’entrée AKS répond à la gestion des API Azure avec un certificat de serveur SSL, qui est validé par la gestion des API.
  9. Le contrôleur d’entrée traite les secrets TLS (secrets Kubernetes) en utilisant cert.pem et key.pem. Le contrôleur d’entrée déchiffre le trafic à l’aide d’une clé privée (déchargée). Pour une gestion des secrets avec sécurité renforcée prenant en compte les exigences, il est possible d’intégrer un pilote CSI à AKS.
  10. Le contrôleur d’entrée rechiffre le trafic à l’aide de clés privées et envoie le trafic sur HTTPS aux pods AKS. Selon vos besoins, vous pouvez configurer l’entrée AKS en tant que pass-through ou back-end HTTPS.

Composants

  • Application Gateway. Application Gateway est un équilibreur de charge de trafic web que vous pouvez utiliser pour gérer le trafic vers les applications web. Dans ce scénario, Azure Application Gateway est le WAF de couche 7 qui effectue l’arrêt SSL et l’inspection du contenu.
  • AKS. AKS offre des clusters Kubernetes complètement managés pour le déploiement, la mise à l’échelle et la gestion d’applications conteneurisées. Dans ce scénario, la logique back-end /microservices est déployée dans AKS.
  • Azure Container Registry. Container Registry est un service de registre Docker privé et managé sur Azure. Vous pouvez utiliser Container Registry pour stocker des images conteneur privées, qui sont déployées sur le cluster.
  • Microsoft Entra ID. Dans ce scénario, les requêtes clientes peuvent contenir un jeton OAuth 2.0, qui sera autorisé par la gestion des API Azure sur l’ID Microsoft Entra à l’aide de la stratégie de validation de jeton Microsoft Entra.
  • Les identités managées. Les identités managées fournissent une identité managée automatiquement dans Microsoft Entra ID que les applications peuvent utiliser lors de la connexion à des ressources qui prennent en charge l’authentification Microsoft Entra. Dans ce scénario, l’identité managée AKS peut être utilisée pour s’authentifier auprès de systèmes principaux tels qu’Azure SQL Database et Azure Cosmos DB.
  • Azure SQL Database. Conçu pour le cloud, SQL Database est un service de base de données relationnelle intelligent et complètement managé. Vous pouvez utiliser SQL Database pour créer une couche de stockage de données hautement disponible et très performante pour vos applications cloud modernes. Dans ce scénario, la base de données Azure SQL est utilisée comme couche de persistance des données pour les données structurées.
  • Azure Cosmos DB. Azure Cosmos DB est un service de base de données NoSQL complètement managé pour la création et la modernisation d’applications scalables haute performance. Dans ce scénario, Azure Cosmos DB est utilisé comme couche de persistance des données pour les données semi-structurées.
  • Gestion des API. Vous pouvez utiliser Azure Gestion des API pour publier des API auprès de vos développeurs, partenaires et employés. Dans ce scénario, la gestion des API Azure est utilisée pour fournir un accès sécurisé et géré aux microservices et à la logique métier hébergée dans AKS.
  • Azure Private Link. Private Link donne accès aux services PaaS qui sont hébergés sur Azure, ce qui vous permet de conserver vos données sur le réseau Microsoft. Dans ce scénario, la connectivité réseau entre AKS et Azure SQL Database, Azure Cosmos DB et Azure Container Registry est via des liaisons privées.
  • Key Vault. Key Vault peut fournir une sécurité renforcée pour les clés et d’autres secrets. Dans ce scénario, les certificats TLS sont stockés dans Azure Key Vault.
  • Defender pour le cloud. Defender pour le cloud est une solution de gestion de la posture de sécurité cloud et de protection de charge de travail cloud. Il identifie les points faibles dans votre configuration cloud, contribue à renforcer la sécurité de votre environnement et peut protéger les charges de travail dans les environnements multiclouds et hybrides contre les menaces en constante évolution. Dans ce scénario, les images conteneur déployées dans Azure Container Registry et Azure Kubernetes Service sont analysées par Microsoft Defender pour conteneurs.
  • Azure Monitor. Vous pouvez utiliser Monitor pour collecter, analyser et exploiter les données de télémétrie de vos environnements Azure et locaux. Monitor vous aide à optimiser les performances et la disponibilité de vos applications et à identifier de manière proactive les problèmes.
  • Log Analytics. Vous pouvez utiliser Log Analytics pour modifier et exécuter des requêtes de journal avec des données contenues dans des journaux Azure Monitor. Dans ce scénario, les journaux de diagnostic d’Azure Application Gateway, AKS, gestion des API, Azure SQL Database, Azure Cosmos DB, etc. peuvent être envoyés à l’espace de travail Log Analytics afin que les journaux puissent être analysés en fonction des exigences.
  • Application Insights. Application Insights est une extension d’Azure Monitor. Il permet le monitoring des performances des applications. La gestion et les conteneurs d’API Azure dans Azure Kubernetes Service peuvent être intégrés à Application Insights, afin que les traces au niveau de l’application puissent être obtenues et analysées.
  • Microsoft Sentinel. Microsoft Sentinel est une plateforme native cloud de gestion des informations et des événements de sécurité qui utilise l’IA intégrée pour vous aider à analyser de grands volumes de données. Dans ce scénario, Microsoft Sentinel est utilisé comme solution SIEM pour améliorer la sécurité de la solution.
  • Azure Bastion. Azure Bastion est un service complètement managé qui fournit un accès RDP et SSH aux machines virtuelles sans aucune exposition à travers des adresses IP publiques. Vous pouvez provisionner le service directement dans votre réseau virtuel local ou appairé pour obtenir la prise en charge de toutes les machines virtuelles de ce réseau. Dans ce scénario, les ressources de réseau privé sont accessibles via des serveurs de rebond via Azure Bastion.
  • Azure DNS privé. Vous pouvez utiliser Azure DNS privé pour gérer et résoudre les noms de domaine dans un réseau virtuel sans ajouter de solution DNS personnalisée. Dans ce scénario, les zones DNS privées sont utilisées pour la résolution de noms pour la gestion des API, Azure Cosmos DB, Azure SQL Database et Azure Container Registry.

Détails du scénario

Vous pouvez utiliser cette solution pour intégrer AKS et Gestion des API avec mTLS dans une architecture qui fournit un chiffrement de bout en bout.

Cas d’usage potentiels

  • Intégration d’AKS à Gestion des API et Application Gateway avec mTLS.
  • mTLS de bout en bout entre Gestion des API et AKS.
  • Déploiements à haute sécurité pour les organisations qui ont besoin du chiffrement TLS de bout en bout. Par exemple, les organisations du secteur financier peuvent tirer parti de cette solution.

Vous pouvez utiliser cette approche pour gérer les scénarios suivants :

  • Déployer Gestion des API en mode interne et exposer les API avec Application Gateway.
  • Configurer mTLS et le chiffrement de bout en bout pour bénéficier d’une sécurité élevée et envoyer le trafic sur HTTPS.
  • Se connecter aux services PaaS Azure à l’aide d’un point de terminaison privé à sécurité renforcée.
  • Implémenter la sécurité de Defender pour les conteneurs.

Configuration TLS mutuelle

Consultez les services principaux sécurisés à l’aide de l’authentification par certificat client dans Azure Gestion des API pour obtenir des instructions sur la configuration des certificats principaux sur la gestion des API Azure.

Vous devez également configurer mTLS dans le contrôleur d’entrée AKS managé. Le certificat de serveur présenté par AKS à APIM peut être importé directement en tant que secret Kubernetes ou accessible via un secret Key Vault. Consultez l’article Configurer un nom de domaine personnalisé et un certificat SSL avec le module complémentaire de routage d’application pour plus d’informations sur la configuration du certificat de serveur dans le contrôleur d’entrée managé AKS. Vous pouvez effectuer l’authentification par certificat client dans le contrôleur d’entrée pour valider le certificat présenté par Gestion des API. Vous devez fournir le certificat d’autorité de certification au cluster AKS pour vérifier le certificat client présenté par Gestion des API. Les annotations peuvent avoir besoin d’être configurées dans le contrôleur d’entrée pour appliquer la validation du certificat client à l’aide du certificat d’autorité de certification. Pour plus d’informations, consultez les étapes de l’authentification par certificat client et un exemple de fichier YAML d’entrée avec des annotations.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteur principal :

Autres contributeurs :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes