Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Rego Policy

devsecops

Définition

Rego est le langage de politique déclaratif utilisé par Open Policy Agent (OPA), conçu pour exprimer des règles de contrôle d'accès et de conformité de manière lisible, testable et réutilisable. Dans les environnements DevSecOps, Rego est le langage de référence pour la Policy as Code, permettant d'encoder des politiques de sécurité complexes qui s'appliquent à l'admission Kubernetes, aux configurations Terraform, aux requêtes d'API, et à tout autre contexte nécessitant une évaluation de politique. La syntaxe Rego combine des éléments de Datalog et de langages fonctionnels. Une politique Rego est composée de règles (rules) qui évaluent des données d'entrée (input) en les comparant à des données de référence (data). Le résultat est une décision (allow/deny) ou un ensemble de violations. Cette approche déclarative permet d'exprimer "ce qui doit être vrai" plutôt que "comment le vérifier", rendant les politiques plus lisibles et maintenables que des scripts impératifs. En pratique DevSecOps, Rego est utilisé dans plusieurs contextes. Kubernetes : l'OPA Gatekeeper utilise des ConstraintTemplates Rego pour valider les manifestes de déploiement avant admission (refuser les pods sans labels requis, bloquer les images non signées, interdire les privileges containers). Terraform : Conftest utilise des politiques Rego pour valider les plans Terraform (interdire les security groups trop permissifs, imposer le chiffrement des buckets S3, valider les tags obligatoires). API Authorization : OPA peut être utilisé comme middleware d'autorisation centralisée dans une architecture microservices. L'écosystème OPA fournit plusieurs outils pour faciliter le développement de politiques Rego. Le OPA Playground (play.openpolicyagent.org) permet de tester des politiques interactivement. La suite de tests OPA (opa test) permet d'écrire des tests unitaires pour les politiques. Le linter Regal vérifie le style et les bonnes pratiques Rego. Conftest simplifie l'utilisation d'OPA pour la validation de fichiers de configuration dans les pipelines CI. L'un des avantages majeurs de Rego est la réutilisabilité : des bibliothèques de politiques communes (OPA Policy Hub, Styra DAS) fournissent des règles prêtes à l'emploi pour des cas d'usage courants (CIS benchmarks Kubernetes, compliance PCI-DSS, CIS AWS Foundations), que les équipes personnalisent plutôt que de repartir de zéro.

Syntaxe Rego : concepts fondamentaux

Une politique Rego de base définit : un package (namespace), des imports, et des règles. La règle "deny[msg]" accumule les violations dans un ensemble : deny[msg] { not input.request.object.spec.securityContext.runAsNonRoot; msg := "Les containers doivent s'exécuter en tant que non-root" }. Les règles utilisent des pattern matching, des compréhensions de liste, et des fonctions intégrées pour exprimer des conditions complexes de manière concise.

Rego en pratique : Kubernetes et Terraform

Pour Kubernetes (OPA Gatekeeper), les politiques Rego s'encapsulent dans des ConstraintTemplate CRD et s'instancient comme Constraint objects. Pour Terraform (Conftest), les politiques Rego valident les plans JSON (terraform plan -json) en vérifiant les ressources, attributs et relations. Des bibliothèques comme regula (Fugue) et terrascan (Accurics) fournissent des centaines de règles Rego prêtes à l'emploi pour les ressources AWS/Azure/GCP.

Tests et maintenance des politiques Rego

Les politiques Rego doivent être testées comme du code : opa test couvre les règles allow/deny avec des données d'entrée de test positifs et négatifs. Les tests doivent couvrir les cas limites (valeurs nulles, champs manquants, types imprévus). Les politiques sont versionnées dans Git, passent par des revues de code, et sont déployées via CI/CD. Un processus de revue annuelle des politiques garantit leur pertinence face à l'évolution des architectures et des menaces.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis