OPA Gatekeeper
Overview
OPA Gatekeeper, c'est l'admission controller Kubernetes qui marie la puissance d'OPA avec une interface Kubernetes native. Il transforme les policies Rego d'OPA en CRDs Kubernetes avec ConstraintTemplates et Constraints, permettant de définir et appliquer des policies de sécurité de manière déclarative. Si tu veux la flexibilité d'OPA mais avec l'ergonomie Kubernetes, c'est le sweet spot.
Gatekeeper utilise des ConstraintTemplates (définition de types de policies réutilisables) et des Constraints (instances spécifiques avec paramètres) pour structurer tes policies. Admission controller natif avec validation et mutation, dry-run mode, exemptions configurables, et observability complète.
Gatekeeper se distingue par son approche structurée (templates réutilisables), son intégration Kubernetes native (CRDs, RBAC, events), et son équilibre entre puissance Rego et simplicité d'usage K8s.
Informations essentielles
| Propriété | Valeur |
|---|---|
| Site officiel | https://open-policy-agent.github.io/gatekeeper/ |
| Repository | https://github.com/open-policy-agent/gatekeeper |
| Licence | Apache 2.0 |
| Développeur | OPA (CNCF) |
| Langage | Go |
| Version K8s | 1.20+ |
Cas d'usage typiques
- Enforcement de security policies Kubernetes (pas de containers privilégiés, etc.)
- Validation de configurations avec business rules customisées
- Multi-tenancy avec isolation automatique et governance centralisée
- Compliance automation avec policies auditables et reporting
- Resource quotas et limits enforcement avec règles complexes
- GitOps policies avec constraint-as-code et validation automatique
Intégrations et écosystème
- OPA : utilise OPA engine avec policies Rego sous le capot
- Kubernetes : CRDs natifs, admission controller, RBAC integration
- Policy Library : Gatekeeper Library avec constraints prêts à l'emploi
- CI/CD : Conftest pour validation policies en amont
- Monitoring : métriques Prometheus, violation reporting, policy coverage
- GitOps : ArgoCD, Flux pour déploiement policies automatique
Avantages
- ✅ Structured approach : ConstraintTemplates réutilisables, organisation claire
- ✅ Kubernetes native : CRDs, events, RBAC, intégration parfaite écosystème
- ✅ OPA power : toute la flexibilité Rego pour logique complexe
- ✅ Policy library : constraints prêts pour use cases communs
- ✅ Observability : violation reporting, métriques, dry-run testing
- ✅ Production ready : utilisé massivement, stable, bien documenté
Inconvénients et limitations
- ❌ Rego learning curve : nécessite apprentissage langage Rego pour policies custom
- ❌ Complexity : plus complexe que Kyverno pour use cases simples
- ❌ Performance overhead : évaluation policies impacte latence admissions
- ❌ Debugging challenges : troubleshooting policies Rego peut être délicat
- ❌ Resource consumption : admission controller + OPA consomment ressources
Alternatives
- Kyverno : plus simple avec YAML natif (moins flexible)
- OPA standalone : plus général mais moins Kubernetes-friendly
- ValidatingAdmissionWebhooks : custom webhooks (développement heavy)
- Falco : pour runtime security (pas admission control)
- Cloud policies : AWS Config, Azure Policy (vendor lock-in)
Ressources
- Site officiel : https://open-policy-agent.github.io/gatekeeper/
- Documentation : https://open-policy-agent.github.io/gatekeeper/website/docs/
- GitHub : https://github.com/open-policy-agent/gatekeeper
- Policy Library : https://github.com/open-policy-agent/gatekeeper-library