Base de référence en matière de gouvernance, de sécurité et de conformité pour Kubernetes avec Azure Arc
Cet article présente les principaux éléments de conception à prendre en considération ainsi que les meilleures pratiques à suivre en matière de sécurité, de gouvernance et de conformité lors de la création d’un déploiement Kubernetes avec Azure Arc. Contrairement à la documentation sur la zone d’atterrissage à l’échelle de l’entreprise qui présente la gouvernance et la sécurité dans des rubriques distinctes, ces domaines de conception critiques sont traités au sein de la même rubrique pour Kubernetes avec Azure Arc.
Azure Policy et Microsoft Defender pour le cloud sont des outils natifs Cloud qui vous permettent d’implémenter à grande échelle des garde-fous, des contrôles, des rapports, des alertes et des tâches de correction de manière automatisée. En les combinant à Kubernetes avec Azure Arc, vous pouvez étendre les stratégies de gouvernance et les vérifications de sécurité à n’importe quel cluster Kubernetes de votre environnement local et/ou multicloud.
Architecture
L’illustration suivante présente une architecture conceptuelle de référence qui décrit les domaines de conception de la sécurité, de la conformité et de la gouvernance pour Kubernetes avec Azure Arc :
Remarques relatives à la conception
À mesure que vos ressources hybrides et multicloud sont intégrées à Azure Resource Manager, vous pouvez les gérer et les régir à partir d’Azure. Cette section présente les éléments de conception à prendre en considération lors de la planification de la sécurité et de la gouvernance de vos ressources de cluster Kubernetes avec Azure Arc.
Examinez les domaines de conception de la sécurité et de la gouvernance des zones d’atterrissage Azure pour évaluer l’effet de Kubernetes avec Azure Arc sur vos modèles globaux de gouvernance et de sécurité.
Approvisionnement d’un agent
Définissez une stratégie pour l’approvisionnement de l’agent Kubernetes avec Azure Arc et appliquez le principe des privilèges minimum lors de la création du principal du service d’intégration. Pensez à utiliser l’automatisation pour l’inscription en bloc.
Gestion des agents
Les agents Kubernetes avec Azure Arc jouent un rôle essentiel dans les opérations hybrides de vos clusters Kubernetes avec Azure Arc, car ils vous permettent de gérer les clusters à partir d’Azure. Implémentez des solutions permettant de suivre l’état de la connectivité de l’agent. N’oubliez pas de définir un processus de mise à niveau de vos agents Kubernetes avec Azure Arc.
Contrôles d’accès en fonction du rôle (RBAC)
Définissez des rôles d’administrateur, d’opérateur et de développeur qui, au sein de votre organisation, seront responsables des opérations quotidiennes à effectuer dans vos clusters hybrides. L’attribution d’actions et de responsabilités à chaque équipe détermine les rôles de contrôle d’accès en fonction du rôle (RBAC) Azure ainsi que les objets Kubernetes ClusterRoleBinding et RoleBinding.
Dans cette optique, vous pouvez utiliser une matrice RACI et intégrer des contrôles dans la hiérarchie de l’étendue de gestion que vous définissez en vous basant sur l’aide relative à la cohérence des ressources et à la gestion des stocks.
Pour plus d’informations, consultez Gestion des identités et des accès pour Kubernetes avec Azure Arc.
Gestion des secrets et des certificats
Sécurisez les secrets et les certificats en utilisant Azure Key Vault et en déployant son extension dans vos clusters Kubernetes avec Azure Arc via l’interface CSI (Container Stockage Interface).
Résidence des données
Déterminez dans quelle région Azure votre cluster Kubernetes avec Azure Arc sera approvisionné. Identifiez les données collectées à partir de vos ressources et procédez à la planification en conséquence en fonction des exigences de résidence des données de votre organisation.
Activer et sécuriser les configurations GitOps
Les configurations GitOps imposent un état système et constituent un outil important pour le suivi de la conformité des clusters Kubernetes avec Arc. Lorsque vous utilisez des configurations GitOps, pensez à sécuriser l’accès à votre système de contrôle de code source via des contrôles réseau et d’accès appropriés.
Gestion des stratégies et création de rapports
Définissez un plan de gouvernance pour vos clusters Kubernetes hybrides, avec des stratégies Azure permettant d’auditer et d’appliquer les normes organisationnelles à grande échelle. Par exemple, vous pouvez appliquer une stratégie sourceControlConfiguration aux clusters Kubernetes pour veiller à ce que les charges de travail et les configurations des clusters utilisent un référentiel Git défini comme « source de vérité » et s’appuient sur Azure Policy pour assurer la conformité.
Stratégie de gestion des journaux
Passez en revue les informations et recommandations relatives à la conception dans les domaines critiques des disciplines de gestion, et prévoyez de collecter les métriques et les journaux de vos ressources hybrides dans un espace de travail Log Analytics pour une analyse et un audit plus approfondis.
Protection contre les menaces et gestion de la posture de sécurité cloud
Mettez en œuvre des mesures de protection contre les menaces, et introduisez des contrôles pour détecter les erreurs de configuration de la sécurité et assurer le suivi de la conformité. Utilisez les renseignements d’Azure pour protéger vos charges de travail hybrides contre les menaces. Activez la surveillance de base de la sécurité, la gestion de la posture de sécurité et la protection contre les menaces pour tous les abonnements contenant Kubernetes avec Azure Arc à l’aide de Microsoft Defender pour les conteneurs.
Sécuriser l’accès au cluster
Prévoyez de sécuriser l’accès à votre API Kubernetes. La fonctionnalité de connexion au cluster de Kubernetes avec Azure Arc permet de se connecter au serveur d’API sans avoir à activer un port entrant.
Améliorer l’observabilité et la sécurité des microservices
L’implémentation d’un maillage de services peut faciliter l’authentification, l’autorisation, la sécurité et la visibilité des applications basées sur des microservices. Kubernetes avec Azure Arc simplifie le déploiement d’Open Service Mesh (OSM) en tant qu’extension.
Recommandations de conception
Cette section contient des recommandations de conception que vous devez suivre lors de la planification de la sécurité et de la gouvernance de vos ressources de cluster Kubernetes avec Azure Arc.
Approvisionnement d’un agent
Définissez une stratégie d’intégration de vos clusters à Azure Arc, avec une méthode d’automatisation pour l’inscription en bloc. Établissez un plan formel prenant en compte l’étendue de votre déploiement et incluant des objectifs, des critères de sélection, des critères de réussite, des plans de formation, des restaurations et des risques.
Vous pouvez utiliser un principal de service pour intégrer l’approvisionnement des agents dans le cadre de vos pipelines d’intégration et de déploiement continus (CI/CD). Vous devez limiter les privilèges de ce principal de service et vous contenter de lui attribuer les rôles nécessaires à l’intégration de Kubernetes à Azure (le rôle « Cluster Kubernetes - Intégration Azure Arc »), car il ne peut être utilisé que pour intégrer Kubernetes, et non pour annuler le processus ou supprimer la ressource.
Gestion des agents
Les agents Azure Arc sont des éléments clés de Kubernetes avec Azure Arc car ils contiennent plusieurs composants logiques qui jouent un rôle dans les opérations de sécurité, de gouvernance et de gestion.
Si un agent cesse d’envoyer des pulsations à Azure, est mis hors connexion ou perd sa connectivité à Azure, vous ne pouvez plus effectuer de tâches opérationnelles sur celui-ci. Élaborez un plan pour déterminer comment vous devez être informé et comment votre organisation doit réagir dans de telles situations.
Vous pouvez utiliser le journal d’activité Azure pour configurer des alertes sur l’intégrité des ressources et être informé de l’état d’intégrité actuel et historique des pods de votre agent. Pour savoir comment gérer correctement votre agent, examinez le domaine de conception critique de la gestion.
Si le service ne reçoit plus de pulsations de l’agent depuis plus de 15 minutes, le cluster Kubernetes avec Azure Arc est considéré comme hors connexion. Pour vous assurer que votre agent peut se connecter en toute sécurité aux points de terminaison Azure Arc, examinez le domaine de conception critique de la connectivité Kubernetes avec Azure Arc.
Contrôles d’accès en fonction du rôle (RBAC)
Une fois que vous avez intégré un cluster Kubernetes, vous pouvez attribuer des RBAC Azure à votre ressource de cluster Kubernetes avec Azure Arc.
Suivez le principe des privilèges minimum lorsque vous attribuez des rôles, tels que « Contributeur » ou « Propriétaire », habilités à effectuer des opérations telles que le déploiement d’extensions qui effectuent des actions en tant que « ClusterAdmin » et ont un effet sur l’ensemble du cluster. Ces rôles doivent être utilisés avec précaution pour limiter le possible « rayon d’explosion » ou finir par être remplacés par des rôles personnalisés.
Vous devez appliquer le même principe RBAC aux données sensibles qui sont envoyées à l’espace de travail Azure Monitor Log Analytics. Kubernetes avec Azure Arc fournit un accès RBAC aux données de journal collectées par votre agent Log Analytics et stockées dans l’espace de travail Log Analytics dans lequel votre cluster est inscrit. Pour apprendre à implémenter un accès précis à l’espace de travail Log Analytics, consultez Conception de votre déploiement de journaux Azure Monitor.
L’intégration à Microsoft Entra ID de votre cluster Kubernetes avec Azure Arc vous permet d’utiliser les attributions de rôles Azure pour un contrôle plus précis des personnes qui ont accès aux ressources du cluster Kubernetes avec Azure Arc et de leurs autorisations.
Remarque
Cette intégration fonctionne en mode natif avec les types d’objets Kubernetes ClusterRoleBinding et RoleBinding et place l’autorisation dans votre cluster Kubernetes avec Microsoft Entra ID comme service central de gestion des identités et des accès. Avec Microsoft Entra ID, vous bénéficiez d’un audit et d’un suivi complets des modifications apportées à votre cluster, ainsi que de tous les événements d’autorisation.
L’intégration à Microsoft Entra ID vous permet également d’accéder aux fonctionnalités de sécurité avancées que vous devez utiliser pour configurer ce qui suit :
- Accès conditionnel avec Microsoft Entra ID. Pour plus d’informations sur l’accès conditionnel, consultez Présentation de l’accès conditionnel.
- Règles d’accès juste-à-temps (JAT) pour les tâches nécessitant des autorisations élevées. L’accès permanent de certains utilisateurs à des informations sensibles ou à des paramètres de configuration réseau critiques dans Kubernetes crée une passerelle potentielle vers des comptes compromis ou des activités internes à risque. La gestion des accès privilégiés peut vous aider à protéger votre organisation contre les violations et à respecter les meilleures pratiques en matière de conformité en limitant l’accès permanent aux données sensibles ou l’accès aux paramètres de configuration critiques.
Gestion des secrets et des certificats
Ne stockez pas les secrets ou les certificats dans le code des applications ou dans les systèmes de fichiers. Les secrets doivent être stockés dans des magasins de clés et fournis aux conteneurs au moment de l’exécution, selon les besoins.
Pensez à utiliser l’extension Azure Key Vault pour gérer les secrets et les certificats sur vos clusters Kubernetes avec Azure Arc. L’extension Key Vault vous permet de gérer le cycle de vie des certificats sur vos déploiements Kubernetes, comme illustré ci-dessous.
Activer et sécuriser les configurations GitOps
GitOps est un composant essentiel de toute stratégie informatique qui adopte une approche entièrement automatisée des opérations. GitOps fournit des fonctionnalités de mise à l’échelle, de cohérence, de suivi et d’audit pour tous types de déploiements.
L’utilisation de GitOps peut simplifier le déploiement de plusieurs applications sur l’ensemble des clusters et environnements tout en suivant et en mettant en œuvre l’état souhaité du système de manière déclarative avec Git. Lorsque vous utilisez Git comme unique « source de vérité » et comme outil central pour l’ensemble des déploiements, il devient le meilleur moyen de suivre l’état des clusters, de rendre compte des modifications et des approbations au fil du temps, de faciliter les investigations en cas d’erreur et d’activer l’automatisation dans les environnements distribués.
Lorsque vous ajoutez des configurations GitOps, veillez à sécuriser l’accès au référentiel et à ses clés, et à définir les autorisations de branche. Pour plus d’informations, examinez le domaine de conception critique de GitOps.
Gestion des stratégies et création de rapports
La gouvernance basée sur les stratégies est un principe fondamental des opérations natives Cloud et du Microsoft Cloud Adoption Framework pour Azure. Azure Policy fournit le mécanisme permettant de mettre en œuvre les normes de l’entreprise et d’évaluer la conformité à grande échelle. Azure Policy vous permet d’implémenter la gouvernance afin de veiller à la cohérence des déploiements, à la conformité, au contrôle des coûts et à la posture de sécurité. Son tableau de bord de conformité présente une vue agrégée de l’état global de votre environnement à grande échelle et propose des fonctionnalités de correction au niveau du cluster.
Kubernetes avec Azure Arc prend en charge Azure Policy au niveau de la couche de gestion des ressources Azure, ainsi que les mises en œuvre de la stratégie au sein du cluster en étendant Gatekeeper pour Open Policy Agent. Vous pouvez implémenter la stratégie intégrée de votre choix pour assurer rapidement la mise en conformité et la mise en œuvre à grande échelle. Le diagramme suivant illustre la façon dont Azure Policy applique les mises en œuvre et protections à grande échelle aux clusters Kubernetes avec Azure Arc.
Déterminez l’étendue de la stratégie Azure et où vous pouvez l’appliquer (groupe d’administration, abonnement, groupe de ressources ou niveau de ressource individuel). Utilisez la bibliothèque intégrée d’Azure Policy pour Kubernetes avec Azure Arc. Créez une conception de groupe d’administration conformément aux pratiques recommandées décrites dans l’aide Cloud Adoption Framework à l’échelle de l’entreprise.
- Déterminez les stratégies Azure dont vous avez besoin pour répondre aux exigences métier, réglementaires et de sécurité de votre organisation pour Kubernetes avec Azure Arc à grande échelle.
- Appliquez l’étiquetage et implémentez des tâches de correction.
- Utilisez Azure Policy pour mettre en œuvre GitOps et appliquer des configurations à grande échelle.
- Identifiez et évaluez les définitions intégrées à Azure Policy pour Kubernetes avec Azure Arc.
- Les stratégies DeployIfNotExists d’Azure Policy déploient par programmation des extensions/agents de service de gestion sur vos clusters avec Arc à grande échelle, y compris Azure Monitor.
- Activez Azure Monitor Container Insights pour la conformité et la surveillance opérationnelle des clusters Kubernetes avec Azure Arc.
Stratégie de gestion des journaux
Concevez et planifiez le déploiement de votre espace de travail Log Analytics, qui correspond au stockage où les données sont collectées, agrégées, puis analysées. Dans la mesure où l’espace de travail Log Analytics représente l’emplacement géographique de vos données, afin de prendre en charge un niveau d’isolement et d’étendue pour les configurations telles que la conservation des données, vous devez déterminer le nombre d’espaces de travail nécessaires et la façon dont ils s’intègrent dans la structure de votre entreprise.
Utilisez un seul espace de travail Azure Monitor Log Analytics pour gérer le RBAC centralisé, la visibilité et la création de rapports, comme décrit dans Meilleures pratiques de gestion et de surveillance du Cloud Adoption Framework.
Pour plus d’informations, consultez les meilleures pratiques en matière de conception d’un déploiement de journaux Azure Monitor.
Protection contre les menaces et gestion de la posture de sécurité cloud
- Microsoft Defender pour le cloud fournit une plateforme unifiée de gestion de la sécurité segmentée en une plateforme de gestion de la posture de sécurité cloud (CSPM) et une plateforme de protection de la charge de travail du cloud (CWPP). Pour renforcer la sécurité sur votre zone d’atterrissage hybride, vous devez protéger les données et les ressources hébergées dans Azure et ailleurs.
- Microsoft Defender pour les conteneurs étend les capacités de Microsoft Defender pour le cloud à Kubernetes avec Azure Arc. Pour renforcer la sécurité sur votre zone d’atterrissage hybride, suivez les conseils ci-dessous :
- Utilisez l’extension Kubernetes avec Azure Arc pour intégrer des ressources Kubernetes avec Arc dans Microsoft Defender pour le cloud.
- Activez le plan Microsoft Defender pour conteneurs pour tous les abonnements. Par défaut, le plan est configuré pour déployer automatiquement l’extension Defender sur tous les clusters Kubernetes avec Arc qui sont intégrés au même abonnement. Cette configuration peut être modifiée.
- Vérifiez que l’extension Defender est déployée sur vos clusters.
- Utilisation de l'intégration de la gestion des informations et des événements de sécurité (SIEM) avec Microsoft Defender for Cloud et Microsoft Sentinel.
Le diagramme suivant illustre une architecture conceptuelle de référence pour Microsoft Defender pour le cloud sur une ressource de cluster Kubernetes avec Azure Arc.
Si vous utilisez Microsoft Container Registry comme registre Docker privé central pour stocker et gérer vos images conteneur, vous devez utiliser Microsoft Defender pour les conteneurs afin d’analyser les images à la recherche de vulnérabilités.
Examinez la topologie de réseau et le domaine de conception critique de la connectivité.
Sécuriser l’accès au cluster
L’API Kubernetes reçoit des demandes pour effectuer des actions dans le cluster. Comme il s’agit d’un moyen central d’interagir avec un cluster et de le gérer, l’API Kubernetes est un élément clé que vous devez protéger. La connexion au cluster Kubernetes avec Azure Arc vous permet de vous connecter en toute sécurité et en tout lieu à des clusters Kubernetes avec Azure Arc sans avoir à activer un port entrant sur le pare-feu. L’accès au serveur d’API de votre instance de Kubernetes avec Azure Arc offre les avantages suivants :
- Il permet de procéder au débogage et à la résolution des problèmes de manière interactive.
- Il permet d’utiliser des agents hébergés/exécuteurs d’Azure Pipelines, de GitHub Actions ou de tout autre service CI/CD hébergé, sans nécessiter d’agents autohébergés.
- Il permet aux services Azure d’accéder au cluster pour les emplacements personnalisés et les autres ressources créées par-dessus.
Observabilité et sécurité des microservices
L’implémentation d’un maillage de services vous permet d’introduire l’authentification et l’autorisation dans vos connexions de services, ce qui met en œuvre le principe des privilèges minimum et crée un environnement plus sécurisé. Par défaut, les pods se trouvent sur un réseau de confiance plat. Dans une implémentation avec maillage de services, des sidecars sont déployés en tant que proxys réseau. Ces sidecars gèrent la communication est-ouest, chiffrent le trafic et améliorent l’observabilité globale du trafic.
Les implémentations avec maillage de services peuvent protéger contre ce qui suit :
- Accès non autorisés
- Attaques par reniflage
- Exfiltration de données
- Emprunts d’identité
Pour plus d’informations, examinez le domaine de conception critique de l’implémentation d’Open Service Mesh.
Étapes suivantes
Pour plus d’informations sur votre parcours cloud hybride et multicloud, consultez les articles suivants.
- Passez en revue les prérequis pour Kubernetes avec Azure Arc.
- Passez en revue les distributions Kubernetes validées pour Kubernetes avec Azure Arc.
- Découvrez comment Gérer des environnements hybrides et multiclouds.
- Apprenez à Connecter un cluster Kubernetes existant à Azure Arc.
- Découvrez-en plus sur la Gestion des secrets et des certificats.
- Découvrez-en plus sur la Protection contre les menaces et gestion de la posture de sécurité cloud.
- Apprenez à Appliquer des configurations GitOps sur GKE en tant que cluster connecté Azure Arc à l’aide d’Azure Policy pour Kubernetes.
- Apprenez à Intégrer Azure Defender à l’API de cluster en tant que cluster connecté à Azure Arc à l’aide d’extensions Kubernetes.
- Apprenez à Intégrer Open Service Mesh (OSM) à l’API de cluster en tant que cluster connecté à Azure Arc à l’aide d’extensions Kubernetes.
- En savoir plus sur Azure Arc via le Parcours d’apprentissage Azure Arc.
- Consultez les Questions fréquentes (FAQ) sur Azure Arc pour trouver des réponses aux questions les plus courantes.