Langage de politiques
Langage Cedar
Cedar est un langage de politiques open-source conçu pour l'autorisation fine, créé par AWS et utilisé dans Amazon Verified Permissions.
Qu'est-ce que Cedar ?
Cedar est un langage de politiques spécifiquement conçu pour l'autorisation. Contrairement aux langages généralistes, Cedar est conçu pour être :
- Expressif – Supporte les patterns RBAC, ABAC et ReBAC
- Analysable – Les politiques peuvent être formellement vérifiées
- Rapide – Conçu pour des décisions d'autorisation en temps réel
- Lisible – Syntaxe claire compréhensible par les humains
- Sûr – Termine toujours, sans effets de bord
Exemples de syntaxe Cedar
Permission simple
// Autoriser les admins à effectuer toute action
permit (
principal in Role::"admin",
action,
resource
); Politique basée sur les attributs
// Les utilisateurs peuvent modifier les documents de leur département
permit (
principal,
action == Action::"edit",
resource is Document
) when {
principal.department == resource.department
}; Politique basée sur les relations
// Les membres du projet peuvent voir les ressources du projet
permit (
principal,
action == Action::"view",
resource
) when {
principal in resource.project.members
}; Politique d'interdiction (Deny)
// Ne jamais autoriser la suppression de documents archivés
forbid (
principal,
action == Action::"delete",
resource is Document
) when {
resource.status == "archived"
}; Cedar vs Rego
Cedar et Rego sont tous deux des langages de politiques, mais ils ont des objectifs de conception différents :
| Aspect | Cedar | Rego |
|---|---|---|
| Focus | Autorisation uniquement | Politiques générales |
| Syntaxe | Déclarative, proche du SQL | Inspirée de Datalog |
| Vérification | Outils d'analyse formelle | Basée sur les tests |
| Usage principal | Autorisation applicative | Kubernetes, infrastructure |
| Runtime | AVP, Cedar SDK | OPA |
Où s'exécute Cedar
Amazon Verified Permissions
Service managé AWS pour l'évaluation des politiques Cedar
Cedar SDK
Bibliothèques open-source pour Rust, Java et Go
Évaluation auto-hébergée
Exécutez les politiques Cedar dans votre propre infrastructure
Générer du Cedar avec Big ACL
Écrire des politiques Cedar manuellement peut être source d'erreurs. Big ACL vous permet de :
- Écrire en langage naturel – « Les managers peuvent approuver les dépenses de moins de 10 000 € »
- Auto-générer du Cedar – Les politiques sont traduites en syntaxe Cedar valide
- Tester avant de déployer – Validez les politiques avec la génération automatique de tests
- Exporter en plusieurs formats – La même politique peut cibler Cedar et Rego
Entrée Big ACL (langage naturel) :
« Un manager peut approuver une note de frais si le montant est inférieur à 10 000 € et qu'il manage le demandeur »
Cedar généré :
permit (
principal is User,
action == Action::"approve",
resource is ExpenseReport
) when {
principal.role == "manager" &&
resource.amount < 10000 &&
resource.submitter in principal.directReports
}; Générez des politiques Cedar à partir du langage naturel
Essayer Big ACL gratuitement