Kyverno : La Gouvernance Native Kubernetes en toute Simplicité
La gestion de la sécurité et de la conformité dans Kubernetes est essentielle. Alors que l'Open Policy Agent (OPA) est puissant, il nécessite l'apprentissage du langage Rego. Kyverno propose une alternative : gérer les politiques en utilisant les mêmes patterns YAML que vous utilisez déjà pour Kubernetes.
Pourquoi Kyverno ?
- YAML-Natif : Aucun nouveau langage à apprendre. Si vous savez écrire un manifeste Kubernetes, vous savez écrire une politique Kyverno.
- Muter, Valider, Générer : Kyverno peut non seulement bloquer les ressources non conformes (valider), mais aussi les corriger (muter) ou en créer de nouvelles (générer), comme des NetworkPolicies par défaut pour chaque nouveau namespace.
- Mode Audit : Testez vos politiques sans bloquer les déploiements pour voir ce qui aurait été rejeté.
Cas d'Usage Courants
- Appliquer les Bonnes Pratiques : Interdire les conteneurs privilégiés, imposer des limites de ressources ou exiger des labels spécifiques.
- Auto-Injection : Injecter automatiquement des sidecars ou des variables d'environnement dans les pods selon des annotations.
- Génération de Ressources : Créer automatiquement un ConfigMap ou un Secret dès qu'un nouveau namespace est créé.
Comment le déployer sans friction
- démarrer en mode audit pour mesurer l’impact
- livrer un petit set de politiques baseline (pod security, labels obligatoires, limites de ressources)
- prévoir un chemin d’exception pour les contraintes justifiées (limité dans le temps, documenté)
Quand Kyverno brille
Kyverno est particulièrement adapté quand les équipes plateforme veulent du policy-as-code accessible aux praticiens Kubernetes et facilement intégrable aux golden paths.
Exemples pratiques pour bien démarrer
Pour des gains rapides, commencez par des politiques qui évitent des incidents fréquents :
- exiger
resources.requestsetresources.limits - imposer des conteneurs non-root et des capabilities sûres
- bloquer les images provenant de registries non approuvés
- générer une
NetworkPolicydefault-deny par namespace
Les fonctionnalités mutate/generate de Kyverno sont particulièrement utiles pour faire de l’option sûre le défaut.
Pièges fréquents
- Trop de politiques trop tôt : déployer progressivement pour éviter la friction et les contournements.
- Messages d’erreur peu actionnables : rendre les raisons de refus explicites (quoi changer).
- Pas de tests : les politiques sont du code ; versionnez-les et testez-les en CI.
Ce qu’il faut mesurer
- taux de violations en mode audit dans le temps
- nombre de refus en enforcement (et principales raisons)
- nombre d’exceptions actives et leurs dates d’expiration
Conclusion
Kyverno simplifie l'adoption du Policy-as-Code en le rendant accessible à toute personne familière avec Kubernetes. C'est un moyen puissant et natif de garantir que vos clusters restent sécurisés, conformes et standardisés sans ajouter de complexité excessive à votre flux de travail.
Vous souhaitez approfondir ce sujet ?
Contacter Demkada