Sécuriser votre déploiement de Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) fournit un environnement Kubernetes managé pour le déploiement et l’exploitation d’applications conteneurisées. Microsoft gère le plan de contrôle Kubernetes, tandis que vous êtes responsable de la sécurisation des charges de travail, de la configuration des nœuds, de la mise en réseau, de l'identité et des données dans vos clusters. Lorsque vous déployez AKS, il est important de suivre les bonnes pratiques de sécurité pour protéger cette surface partagée dans le cycle de vie du cluster.

Cet article fournit des recommandations de sécurité pour protéger votre déploiement AKS. La plupart de ces contrôles sont préconfigurés dans AKS Automatic, qui démarre les clusters à partir d’une base de référence renforcée et sont disponibles pour vous permettre d’activer et de gérer dans AKS Standard. Pour connaître les concepts de ces contrôles, notamment le fonctionnement de la sécurité AKS dans le pipeline de build à runtime, consultez Les concepts de sécurité des applications et des clusters dans AKS.

Les recommandations de sécurité de cet article implémentent des principes de confiance zéro : « Vérifier explicitement », « Utiliser l’accès au privilège minimum » et « Supposer une violation ». Pour obtenir des conseils complets sur la confiance zéro, consultez le Centre d’aide sur la confiance Zéro.

Sécurité spécifique au service

AKS combine des primitives de sécurité Kubernetes avec des contrôles de plateforme Azure. Les recommandations suivantes traitent des problèmes de renforcement propres à l’exécution d’un cluster Kubernetes managé, notamment l’intégrité des nœuds, la provenance de l’image et l’isolation de la charge de travail.

Renforcement du cluster et du nœud

  • Conservez les clusters sur une version Kubernetes prise en charge avec des mises à niveau automatiques de cluster : inscrivez des clusters dans un canal de mise à niveau automatique afin que le plan de contrôle et les pools de nœuds reçoivent des correctifs Kubernetes qui corrigent les vulnérabilités connues sans intervention manuelle. Pour plus d’informations, consultez Mettre à niveau automatiquement un cluster AKS.
  • Appliquez automatiquement les mises à jour de sécurité du système d’exploitation des nœuds : configurez le canal de mise à niveau automatique du système d’exploitation des nœuds afin que les nœuds reçoivent, selon une fréquence définie, les correctifs de sécurité des systèmes d’exploitation Linux et Windows. Pour plus d’informations, consultez Mettre à niveau automatiquement les images du système d’exploitation des nœuds du cluster AKS.
  • Appliquer les normes Pod Security Admission pour les pods : appliquez les normes de sécurité des pods de niveau de base ou restreint au niveau de l’espace de noms afin d’empêcher les pods privilégiés, le partage de l’espace de noms de l’hôte et les montages de volumes non sécurisés. Pour plus d’informations, consultez Sécuriser vos pods dans AKS.
  • Déployez des pools de nœuds compatibles FIPS pour les charges de travail réglementées : activez les pools de nœuds compatibles FIPS, qui utilisent des modules de chiffrement validés FIPS 140-3, lorsque les charges de travail doivent répondre aux exigences telles que la conformité FedRAMP. Pour plus d’informations, consultez Enable Federal Information Process Standard (FIPS) pour les pools de nœuds AKS.
  • N’exécutez pas de charges de travail multi-locataires malveillantes sur un cluster partagé : un cluster Kubernetes standard ne constitue pas une frontière de sécurité stricte entre des locataires non fiables, car le domaine de sécurité correspond à l’ensemble du cluster plutôt qu’à un nœud individuel. Pour les charges de travail qui nécessitent une isolation renforcée, utilisez des clusters physiquement isolés, des tailles de nœud de machine virtuelle isolées ou l’isolation de pod en bac à sable. Pour plus d’informations, consultez Les meilleures pratiques pour l’isolation du cluster dans AKS.

Sécurité de l’image conteneur et de la chaîne logistique

  • Restreindre les déploiements aux registres de conteneurs approuvés : utilisez le module complémentaire Azure Policy pour appliquer que les pods peuvent extraire des images uniquement à partir de registres approuvés, tels que votre Azure Container Registry privé, afin que les images publiques non approuvées ne puissent pas s'exécuter dans le cluster. Pour plus d’informations, consultez Sécuriser vos clusters AKS avec Azure Policy.
  • Supprimez les images vulnérables inutilisées avec Image Cleaner : activez Image Cleaner pour supprimer automatiquement les images obsolètes des nœuds et réduire la surface d’attaque laissée par des images vulnérables. Pour plus d’informations, consultez Utiliser Image Cleaner pour nettoyer les images vulnérables sur AKS.
  • Analysez les registres et exécutez des charges de travail avec Microsoft Defender pour conteneurs : détecter des images vulnérables et des configurations incorrectes sur votre registre et clusters avant et après le déploiement. Pour plus d’informations, consultez Vue d’ensemble de Microsoft Defender pour conteneurs.

Sécurité du réseau

Par défaut, le serveur d’API AKS est accessible sur un point de terminaison public et la sortie du cluster est illimitée. La restriction de l’accès entrant au plan de contrôle et au trafic sortant des charges de travail fait partie des modifications les plus efficaces que vous pouvez apporter pour réduire la surface d’attaque réseau de votre cluster.

Gestion de l’identité et de l’accès

AKS authentifie les identités de cluster et de charge de travail via Microsoft Entra ID et autorise l’accès via Azure RBAC et Kubernetes RBAC. Utilisez des identités managées et une autorisation entra-backed au lieu d’informations d’identification statiques ou de comptes Kubernetes autonomes.

  • Utiliser une identité managée pour le cluster: Configurez le cluster pour qu’il utilise une identité managée afin qu’AKS accède aux ressources Azure sans informations d’identification statiques du principal de service que vous devez renouveler. Pour plus d’informations, consultez Utiliser une identité managée dans Azure Kubernetes Service (AKS).
  • Utilisez l’identité de charge de travail pour permettre aux pods d’accéder aux ressources Azure : Fédérez les comptes de service Kubernetes avec des identités de charge de travail Microsoft Entra afin que les pods obtiennent des jetons pour les ressources Azure sans stocker de secrets. Pour plus d’informations, consultez Utiliser ID de charge de travail Microsoft Entra avec AKS.
  • Intégrer l’authentification de cluster à Microsoft Entra ID : activez l’intégration Microsoft Entra afin que les utilisateurs et les groupes s’authentifient auprès du cluster avec leurs identités Entra au lieu de certificats partagés. Pour obtenir plus d’informations, consultez Intégration Microsoft Entra gérée par AKS.
  • Autoriser l’accès à l’API Kubernetes avec Azure RBAC : utilisez Azure RBAC pour l’autorisation Kubernetes et attribuez les rôles intégrés AKS (Azure Kubernetes Service lecteur RBAC, Azure Kubernetes Service enregistreur RBAC, Azure Kubernetes Service Administrateur RBAC et Azure Kubernetes Service administrateur de cluster RBAC) au niveau du cluster ou de l’étendue de l’espace de noms pour accorder un accès au moins privilégié. Pour plus d’informations, consultez les concepts d’autorisation du cluster.
  • Désactiver les comptes Kubernetes locaux : désactivez les comptes locaux afin que tout accès au cluster passe par Microsoft Entra ID et ne puisse pas contourner l’autorisation basée sur Entra à l’aide des informations d’identification statiques de l’administrateur du cluster. Pour plus d’informations, consultez Gérer les comptes locaux avec l’intégration Microsoft Entra managée par AKS.
  • Appliquer l’accès conditionnel pour les administrateurs de cluster : appliquez des stratégies d’accès conditionnel qui nécessitent une authentification multifacteur et des appareils conformes pour les identités Entra qui peuvent créer, mettre à niveau ou supprimer des clusters AKS et gérer leurs pools de nœuds, leur mise en réseau et leurs attributions de rôles. Pour plus d’informations, voir Exiger une MFA pour la gestion Azure.

Protection de données

AKS chiffre les données au repos sur les disques managés par défaut. Configurez les contrôles suivants pour protéger les secrets Kubernetes et apporter vos propres clés où vos exigences de conformité l’appellent.

  • Chiffrer les secrets Kubernetes dans etcd avec un service de gestion des clés : activez le chiffrement des données KMS afin que les objets secrets Kubernetes soient chiffrés au niveau de la couche application avant qu'ils soient écrits dans etcd, à l'aide de clés gérées par la plateforme ou de vos propres clés gérées par le client dans Azure Key Vault. Pour plus d’informations, consultez les concepts de chiffrement des données au repos pour AKS.
  • Stockez les secrets d’application dans Azure Key Vault : utilisez le fournisseur Azure Key Vault du pilote CSI Secrets Store pour monter des secrets, des clés et des certificats depuis Key Vault au lieu de les stocker sous forme de secrets Kubernetes en texte clair. Pour plus d’informations, consultez Utiliser le fournisseur Azure Key Vault pour le pilote CSI Secrets Store dans AKS.
  • Utilisez des clés gérées par le client pour les disques de nœud et de données : chiffrez le système d’exploitation et les disques de données avec vos propres clés dans Key Vault lorsque vous avez besoin de contrôler le cycle de vie des clés de chiffrement. Pour plus d’informations, consultez Apportez vos propres clés (BYOK) avec des disques Azure dans AKS.
  • Activer le chiffrement basé sur l’hôte : activez le chiffrement basé sur l’hôte afin que les disques temporaires et les caches de disque de système d’exploitation/de données sur la machine virtuelle du nœud soient chiffrés au repos sur l’hôte. Pour plus d’informations, consultez chiffrement basé sur l’hôte sur AKS.

Enregistrement et surveillance

Collectez les données de télémétrie de cluster, de plan de contrôle et de charge de travail afin de détecter et d’examiner les menaces contre vos clusters AKS.

  • Surveillez les clusters avec Container Insights : activez Container Insights pour collecter des métriques et des journaux de nœud et de conteneur pour vos clusters dans un espace de travail Log Analytics. Pour plus d’informations, consultez Surveiller Azure Kubernetes Service (AKS).
  • Collectez les journaux d’audit du plan de contrôle avec les paramètres de diagnostic : configurez les paramètres de diagnostic pour envoyer le serveur d’API Kubernetes et les catégories de journaux d’audit (kube-auditkube-audit-adminet guard) à Log Analytics pour l’examen de la sécurité. Pour plus d’informations, consultez référence sur la surveillance des données AKS.
  • Activez la détection des menaces avec Microsoft Defender pour conteneurs : activez Defender pour que les conteneurs reçoivent des alertes de détection des menaces d’exécution pour les nœuds de cluster, les charges de travail et le plan de contrôle Kubernetes. Pour plus d’informations, consultez Vue d’ensemble de Microsoft Defender pour conteneurs.

Gouvernance et conformité

Utilisez Azure Policy pour appliquer des configurations de sécurité cohérentes sur vos clusters AKS et empêcher le déploiement de charges de travail non conformes.

  • Appliquez la configuration du cluster et de la charge de travail avec Azure Policy pour AKS : activez le module complémentaire Azure Policy et affectez l’initiative de stratégie intégrée AKS pour auditer et appliquer des contrôles tels que des registres approuvés, des limites de ressources et des conteneurs privilégiés bloqués. Pour plus d’informations, consultez Sécuriser vos clusters AKS avec Azure Policy.
  • Appliquez des protections de déploiement pour les meilleures pratiques Kubernetes : activez les protections de déploiement pour valider les ressources de cluster par rapport aux bonnes pratiques AKS en mode avertissement ou application. Pour plus d’informations, consultez Utiliser les protections de déploiement pour appliquer les meilleures pratiques dans AKS.
  • Attribuez des définitions de stratégie intégrées AKS pour appliquer des contrôles spécifiques : affectez des définitions de Azure Policy intégrées pour AKS afin d’appliquer des contrôles individuels, tels que l’exigence de plages d’adresses IP autorisées ou de clusters privés, la désactivation des conteneurs privilégiés et l’application d’équilibreurs de charge internes. Pour plus d’informations, consultez Azure Policy définitions intégrées pour AKS.

Sauvegarde et récupération

Protégez l’état du cluster et les données d’application afin que vous puissiez récupérer contre une suppression accidentelle, une altération ou une mise à niveau ayant échoué.

Étapes suivantes