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

Sujets connexes