Renforcer la sécurité de votre cluster Kubernetes avec OPA Gatekeeper

Publié le 19 juillet 2025

Kubernetes
Sécurité

Introduction

La conformité et la sécurité des clusters Kubernetes nécessitent un contrôle fin des ressources. OPA Gatekeeper associe policy-as-code et Kubernetes en utilisant les Custom Resource Definitions (CRD) ConstraintTemplate et Constraint pour valider et faire respecter les politiques au moment de la création ou modification.

Prérequis

  • Un cluster Kubernetes (>=1.16)
  • kubectl configuré
  • Helm 3 (optionnel)
  • kubectl get crd | grep constraints.gatekeeper.sh pour vérifier l’absence préalable de Gatekeeper

Installation de Gatekeeper

1. Installer via Helm

helm repo add gatekeeper https://open-policy-agent.github.io/gatekeeper/charts
helm repo update
helm install gatekeeper gatekeeper/gatekeeper   --namespace gatekeeper-system --create-namespace   --version v3.10.0

2. Vérifier les pods

kubectl get pods -n gatekeeper-system

Créer une policy ConstraintTemplate

Exemple : interdire les conteneurs :latest

apiVersion: templates.gatekeeper.sh/v1beta1
kind: ConstraintTemplate
metadata:
  name: k8sallowedrepos
spec:
  crd:
    spec:
      names:
        kind: K8sAllowedRepos
  targets:
    - target: admission.k8s.gatekeeper.sh
      rego: |
        package k8sallowedrepos
        violation[{"msg": msg}] {
          input.review.object.spec.containers[_].image =~ ".*:latest"
          msg := "L'utilisation de tags :latest est interdite."
        }
kubectl apply -f constrainttemplate.yaml

Définir la Constraint

apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sAllowedRepos
metadata:
  name: disallow-latest
spec:
  enforcementAction: deny
kubectl apply -f constraint.yaml

Tester la policy

kubectl run nginx-latest --image=nginx:latest --restart=Never
# Échec avec message "L'utilisation de tags :latest est interdite."

Bonnes pratiques

  1. Rédiger des policies simples puis complexifier
  2. Versionner vos ConstraintTemplate et Constraint
  3. Superviser les violations avec ConstraintViolations
  4. Automatiser via pipelines CI (OPA test)
  5. Auditer régulièrement les policies

Conclusion

OPA Gatekeeper permet d’intégrer la sécurité déclarative directement dans Kubernetes, garantissant que seules les ressources conformes sont déployées, tout en offrant une flexibilité et une transparence optimale.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets.

Contactez-nous

Articles similaires qui pourraient vous intéresser