Gouvernance d’un cluster Kubernetes
La gouvernance fait référence à la capacité d’une organisation à appliquer et à valider des règles pour garantir la conformité aux normes d’entreprise. La gouvernance aide les organisations à atténuer les risques, à se conformer aux normes d’entreprise et aux réglementations externes et à réduire les interruptions d’adoption ou d’innovation.
La gouvernance comprend la planification des initiatives, l’établissement de priorités stratégiques et l’utilisation de mécanismes et de processus pour contrôler les applications et les ressources. Pour les clusters Kubernetes dans un environnement cloud, la gouvernance signifie implémenter des stratégies sur les clusters Kubernetes et les applications qui s’exécutent dans ces clusters.
La gouvernance Kubernetes inclut à la fois l’environnement cloud et l’infrastructure de déploiement de cluster ainsi que les clusters eux-mêmes et leurs applications. Ce guide se concentre sur la gouvernance au sein des clusters Kubernetes. L’article décrit et compare la façon dont Amazon Elastic Kubernetes Service (Amazon EKS) et Azure Kubernetes Service (AKS) gèrent la gouvernance des clusters Kubernetes.
Remarque
Cet article fait partie d'une série d'articles qui aide les professionnels qui connaissent Amazon EKS à comprendre Azure Kubernetes Service (AKS).
Dimensions de gouvernance Kubernetes
Trois dimensions définissent une stratégie de gouvernance Kubernetes cohérente :
Les cibles décrivent les objectifs de stratégie de sécurité et de conformité qu’une stratégie de gouvernance doit atteindre. Par exemple, les cibles spécifient quels utilisateurs peuvent accéder à un cluster, un espace de noms ou une application Kubernetes, ou quels registres de conteneurs et images utiliser dans quels clusters. L’équipe des opérations de sécurité définit généralement ces objectifs comme première étape de la définition de la stratégie de gouvernance d’une entreprise.
Les étendues détaillent les éléments auxquels les stratégies cibles s’appliquent. Les étendues doivent traiter tous les composants visibles par Kubernetes. Les étendues peuvent être des unités organisationnelles, comme des services, des équipes et des groupes, et/ou des environnements, tels que des clouds, des régions ou des espaces de noms.
Les directives de stratégie utilisent des fonctionnalités Kubernetes pour appliquer les règles cibles dans les étendues spécifiées afin de mettre en œuvre les stratégies de gouvernance.
Pour plus d’informations, consultez Gouvernance Kubernetes : ce que vous devez savoir.
Gouvernance dans EKS et AKS
Les clients AWS (Amazon Web Services) utilisent généralement Kyverno, Gatekeeper ou d’autres solutions tierces afin de définir et d’implémenter une stratégie de gouvernance pour leurs clusters Amazon EKS. Le dépôt GitHub aws-eks-best-practices/policies contient une collection d’exemples de stratégies pour Kyverno et Gatekeeper.
Les clients Azure peuvent également utiliser Kyverno ou Gatekeeper et ils peuvent se servir du module complémentaire Azure Policy pour Kubernetes afin d’étendre Gatekeeper pour une stratégie de gouvernance AKS.
Opérateur de contrôle
La Cloud Native Computing Foundation (CNCF) parraine le contrôleur de stratégie Gatekeeper pour Kubernetes open source pour l’application des stratégies dans les clusters Kubernetes. Gatekeeper est un contrôleur d’admission Kubernetes qui applique les stratégies créées avec OPA (Open Policy Agent), moteur de stratégie à usage général.
OPA utilise un langage déclaratif de haut niveau appelé Rego pour créer des stratégies qui peuvent exécuter des pods à partir de locataires sur des instances distinctes ou selon des priorités différentes. Pour obtenir une collection de stratégies OPA courantes, consultez la bibliothèque OPA Gatekeeper.
Kyverno
CNCF parraine également le projet open source Kyverno pour l’application de stratégies dans les clusters Kubernetes. Kyverno est un moteur de stratégie natif Kubernetes qui peut valider, muter et générer des configurations de ressources Kubernetes avec des stratégies.
Avec Kyverno, vous pouvez définir et gérer des stratégies en tant que ressources Kubernetes sans utiliser un nouveau langage. Cette approche permet d’utiliser des outils familiers tels que kubectl, git et kustomize pour gérer les stratégies.
Kyverno utilise des superpositions de style kustomize
pour la validation, prend en charge le correctif JSON et le correctif de fusion stratégique pour la mutation et peut cloner des ressources entre les espaces de noms en fonction de déclencheurs flexibles. Vous pouvez déployer des stratégies individuellement en utilisant leurs manifestes YAML ou les empaqueter et les déployer en utilisant des charts Helm.
Kyverno, contrairement à Gatekeeper ou Azure Policy pour AKS, peut générer de nouveaux objets Kubernetes avec des stratégies, et pas seulement valider ou muter des ressources existantes. Par exemple, vous pouvez définir une stratégie Kyverno afin d’automatiser la création d’une stratégie réseau par défaut pour n’importe quel nouvel espace de noms.
Pour plus d’informations, consultez le guide d’installation officiel de Kyverno. Pour obtenir la liste des stratégies prêtes à l’emploi ou personnalisables, consultez la bibliothèque de stratégies Kyverno. Pour obtenir des informations de référence sur la résolution des problèmes (par exemple, échec des appels de webhook avec APIServer), consultez la documentation de résolution des problèmes de Kyverno.
Si vous le souhaitez, vous pouvez déployer l’implémentation de Kyverno des normes de sécurité des pods (PSS) Kubernetes en tant que stratégies Kyverno. Les contrôles PSS constituent un point de départ pour la sécurité opérationnelle générale des clusters Kubernetes.
Module complémentaire Azure Policy pour AKS
Le module complémentaire Azure Policy pour AKS étend Gatekeeper pour appliquer des mesures d'exécution et de protection à l'échelle sur les clusters AKS de manière centralisée et cohérente. Azure Policy permet une gestion centralisée de la conformité et la création de rapports pour plusieurs clusters Kubernetes à partir d’un emplacement unique. Cette fonctionnalité rend la gestion et la gouvernance des environnements multicluster plus efficaces que le déploiement et la gestion de Kyverno ou Gatekeeper pour chaque cluster.
Le module complémentaire Azure Policy pour AKS applique les fonctions suivantes :
- Il vérifie auprès du service Azure Policy les affectations de stratégies au cluster.
- Il déploie des définitions de stratégies dans le cluster en tant que ressources personnalisées modèle de contrainte et contrainte.
- Il fournit des rapports d’audit et de conformité au service Azure Policy.
Le module complémentaire Azure Policy prend en charge les environnements de cluster AKS et Kubernetes avec Azure Arc. Pour plus d’informations, consultez Comprendre Azure Policy pour les clusters Kubernetes. Pour installer le module complémentaire sur des clusters nouveaux et existants, consultez Installer le module complémentaire Azure Policy pour AKS.
Une fois que vous avez installé le module complémentaire Azure Policy pour AKS, vous pouvez appliquer des définitions de stratégie individuelles ou des groupes de définitions de stratégie appelés initiatives à votre cluster AKS. Vous pouvez appliquer et mettre en œuvre des définitions de stratégie et d’initiative intégrées Azure Policy dès le départ ou créer et affecter vos propres définitions de stratégie personnalisées. Les stratégies de sécurité intégrées Azure Policy aient à améliorer la posture de sécurité de votre cluster AKS, d’appliquer des normes organisationnelles et d’évaluer la conformité à grande échelle.
Contributeurs
Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.
Auteurs principaux :
- Martin Gjoshevski | Ingénieur service senior
- Paolo Salvatori | Ingénieur des services principaux
Autres contributeurs :
- Chad Kittel | Ingénieur logiciel principal
- Ed Price | Responsable de programme senior
- Theano Petersen | Rédacteur technique
Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.
Étapes suivantes
- AKS pour les professionnels Amazon EKS
- Gestion de l’identité et de l’accès Kubernetes
- Monitoring et journalisation Kubernetes
- Sécuriser l’accès réseau à Kubernetes
- Options de stockage pour un cluster Kubernetes
- Gestion des coûts pour Kubernetes
- Gestion des nœuds et des pools de nœuds Kubernetes