Aller au contenu
Conteneurs & Orchestration high
🔐 Alerte sécurité — Incident supply chain Trivy : lire mon analyse de l'attaque

VAP vs Kyverno vs Gatekeeper — Comparatif 2026

14 min de lecture

Logo Kubernetes

Trois approches dominent l’écosystème Kubernetes pour les policies d’admission : ValidatingAdmissionPolicy (natif), Kyverno et Gatekeeper. Ce comparatif présente leur état réel en mars 2026, y compris les transitions en cours qui changent la donne.

Ce tableau synthétise les caractéristiques actuelles de chaque solution. Regardez d’abord les lignes “Installation” et “Langage principal” pour comprendre le positionnement : VAP est natif et utilise CEL, Kyverno privilégie YAML avec CEL en complément, Gatekeeper s’appuie sur Rego (le langage d’OPA). La ligne “Positionnement 2026” résume les évolutions en cours.

CritèreVAPKyvernoGatekeeper
InstallationNative, rien à déployerComposant externe (webhook)Composant externe (webhook)
ValidationGA depuis 1.30OuiOui
MutationBeta en 1.34OuiOui
GénérationNonOuiNon
Audit / reportingBasique via Warn/AuditPolicyReportsIntégré
Langage principalCELYAML + CELRego
Statut CNCFFonctionnalité native K8sIncubatingBasé sur OPA (Graduated)
Positionnement 2026Validation native légèreMoteur riche, transition CELOPA/Rego, intégration VAP renforcée
spec:
validations:
- expression: |
!object.spec.containers.exists(c,
has(c.securityContext) &&
has(c.securityContext.privileged) &&
c.securityContext.privileged
)
message: "Conteneurs privilégiés interdits"

Avantages :

  • Expressif et typé
  • Standard Kubernetes (utilisé dans CRD validation)
  • Exécution in-process (pas de webhook)

Inconvénients :

  • Syntaxe moins intuitive que YAML
  • Nécessite des has() pour éviter les erreurs sur champs absents
EngineModèleCommentaire
VAPPolicy + Binding + Params (3 ressources)Séparation claire : logique / scope / valeurs
KyvernoClusterPolicy (1 ressource) ou nouveaux types CELTout-en-un historique, transition vers types dédiés
GatekeeperTemplate + Constraint (2 ressources)Template Rego réutilisable, Constraint l’instancie

Les modèles VAP et Gatekeeper facilitent la séparation des responsabilités : l’équipe plateforme crée les templates/policies, les équipes applicatives les instancient.

Chaque engine couvre un périmètre différent. La validation est disponible partout, mais les différences apparaissent sur la mutation (modifier les objets avant leur création), la génération (créer automatiquement d’autres ressources), et la vérification d’images (Cosign/Sigstore). Si vous avez besoin de génération ou de signature d’images, Kyverno est actuellement le seul à proposer ces fonctionnalités.

FonctionnalitéVAPKyvernoGatekeeper
ValidationGAOuiOui
MutationBeta (1.34)MatureStable
GénérationNonUniqueNon
Image verificationNonCosign/SigstoreNon
ParamétrageparamRef/paramKindVariablesVia Constraint
Déploiement progressifWarn/Audit via validationActionsAudit modedryrun/warn
matchConditionsCELYAML/CELRego

Approche qualitative (pas de benchmark officiel robuste disponible) :

EngineCaractéristiqueImpact
VAPExécution in-process dans l’API serverLatence la plus faible, pas d’appel réseau
KyvernoWebhook HTTP externeCoût réseau + composant externe
GatekeeperWebhook HTTP externe + RegoCoût réseau + évaluation Rego

Conclusion : VAP est structurellement le plus performant pour la validation pure. Pour la plupart des clusters, les trois solutions sont suffisamment performantes, mais sur des clusters à fort volume, VAP a un avantage architectural.

Au-delà des fonctionnalités techniques, l’écosystème influence fortement votre productivité. Une librairie de policies prêtes à l’emploi évite de tout écrire soi-même. Une CLI dédiée facilite les tests avant déploiement. L’intégration GitOps garantit un workflow déclaratif cohérent avec ArgoCD ou Flux.

AspectVAPKyvernoGatekeeper
Librairie de policiesÀ écrire soi-mêmePolicy Library (200+)Gatekeeper Library
CLI pour testskubectlkyverno CLIgator (recommandé) / opa
ArgoCD/FluxNatifIntégration forteIntégration
CommunitySIG AuthCNCF IncubatingBasé sur OPA (CNCF Graduated)

✅ Kubernetes 1.30+ et validation simple ✅ Performance critique (validations à haute fréquence) ✅ Architecture minimaliste sans composant externe ✅ Équipe à l’aise avec CEL

Limites à connaître :

  • Pas suffisant seul pour mutation avancée (beta en 1.34)
  • Pas de librairie prête à l’emploi
  • Pas de reporting riche comme PolicyReports

Recommandation CKS : VAP est le choix le plus aligné avec l’approche “native Kubernetes” attendue à l’examen.

✅ Besoins de mutation importants (injection de sidecars, defaults) ✅ Génération automatique de ressources (NetworkPolicies, Secrets) ✅ Vérification d’images (Cosign/Sigstore) ✅ Équipe préférant YAML pur

Attention en 2026 :

  • Le modèle historique ClusterPolicy est en transition vers les nouveaux types CEL
  • Investir massivement dans l’ancien modèle peut créer une dette technique
  • Complexité opérationnelle (webhook, HA, debugging)

✅ OPA déjà utilisé ailleurs (Terraform, CI, APIs) ✅ Équipe maîtrisant Rego ✅ Policies complexes avec références croisées ✅ Besoin d’audit intégré des ressources existantes

Évolution 2026 :

  • Gatekeeper s’intègre mieux avec VAP (génération de ressources VAP)
  • Coût cognitif et opérationnel plus élevé qu’un VAP natif
  • Reste le choix OPA/Rego pour les équipes investies dans cet écosystème

Rien n’empêche de combiner plusieurs engines pour bénéficier de leurs forces respectives. L’approche la plus courante consiste à utiliser VAP pour les validations critiques (performance) et Kyverno ou Gatekeeper pour les fonctionnalités avancées (mutation, génération, audit). Ce tableau présente les combinaisons les plus pertinentes — mais attention aux risques documentés dans l’encadré qui suit.

CombinaisonUse caseAvantage
VAP + KyvernoVAP pour validation critique, Kyverno pour mutation/générationPerformance + fonctionnalités complètes
VAP + Gatekeeper auditVAP enforce, Gatekeeper pour conformité continuePerformance + audit détaillé
Kyverno seulCouverture complète sans RegoSimplicité conceptuelle (attention transition 1.17)

Avec VAP en GA depuis 1.30 et mutation en beta en 1.34, migrer les validations simples depuis Kyverno/Gatekeeper vers VAP devient pertinent.

  • Interdire les conteneurs privilégiés
  • Restreindre les registries autorisés
  • Exiger certains labels
  • Bloquer hostPath, hostNetwork
  • Limiter les réplicas
  • Mutation : VAP mutation est encore beta
  • Génération : VAP ne génère pas de ressources
  • Vérification d’images : VAP n’a pas d’équivalent Cosign
  • Policies complexes : certaines logiques Rego ne se traduisent pas en CEL
spec:
rules:
- name: deny-privileged
validate:
cel:
expressions:
- expression: |
!object.spec.containers.exists(c,
c.securityContext.privileged == true
)

Comment utiliser ce tableau : Parcourez les questions de haut en bas. Dès qu’une réponse correspond à votre situation, la recommandation associée est probablement le bon choix. Si plusieurs lignes correspondent, privilégiez celle qui répond au besoin le plus critique pour votre contexte.

QuestionRéponseRecommandationPourquoi
Kubernetes 1.30+ ?NonKyverno ou GatekeeperVAP non disponible
Validation simple uniquement ?OuiVAPNatif, performant, sans dépendance
Mutation critique ?OuiKyvernoLa plus mature
Génération de ressources ?OuiKyvernoSeul à le proposer
Signature d’images ?OuiKyvernoIntégration Cosign native
OPA/Rego déjà utilisé ?OuiGatekeeperRéutilisation des compétences
Policies très complexes ?OuiGatekeeperRego le plus puissant
Architecture minimaliste ?OuiVAPPas de composant externe

Pour clarifier le positionnement de ce comparatif par rapport à l’examen :

La certification CKS évalue votre capacité à sécuriser un cluster, pas votre maîtrise d’un outil spécifique. Le tableau ci-dessous montre comment les différents policy engines peuvent répondre aux objectifs du curriculum — mais l’examinateur s’intéresse au résultat (“les Pods ne peuvent pas être privilégiés”), pas à l’outil utilisé pour y parvenir.

Domaine CKSCe qui est évaluéOutil possible
Cluster HardeningPod Security Standards, restrictionsVAP, PSA, Kyverno, Gatekeeper
Supply Chain SecurityRegistries autorisées, signatures, SBOMKyverno (Cosign), Gatekeeper, outils externes
System HardeningLeast privilege, seccomp, AppArmorTous peuvent contribuer
Minimize Microservice VulnerabilitiesNetwork policies, secretsKyverno (génération), VAP

L’examen évalue des résultats sécurité, pas la maîtrise d’un outil spécifique. Vous devez savoir implémenter des contrôles, pas nécessairement avec Kyverno ou Gatekeeper.

  1. VAP : validation native, performante, sans dépendance — le plus aligné CKS
  2. Kyverno : mutation/génération/signatures, mais transition 1.17 à anticiper
  3. Gatekeeper : OPA/Rego + audit intégré, intégration VAP renforcée en 3.22
  4. Combinaison possible : VAP pour validation + Kyverno pour mutation, mais attention aux risques
  5. CKS : évalue des objectifs sécurité, pas un outil spécifique

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn