Intégration

Open Policy Agent et Rego

Open Policy Agent (OPA) est le standard de facto pour le policy-as-code, utilisant le langage de politiques Rego pour Kubernetes, les API, les microservices et l'infrastructure.

Big ACL + Open Policy Agent

Big ACL sert de Point d'Administration des Politiques pour OPA, en fournissant :

  • Du langage naturel au Rego – Écrivez des politiques en français, exportez en Rego
  • Test des politiques – Validez les politiques Rego avec des cas de test générés
  • Génération de bundles – Créez des bundles OPA pour le déploiement
  • Support multi-PDP – Même modèle de politiques pour OPA et Amazon Verified Permissions
  • Contrôle de version – Suivez les changements de politiques avec un historique d'audit complet

Entrée Big ACL (langage naturel) :

« Les utilisateurs ne peuvent accéder qu'aux ressources de leur région assignée »

Rego généré :

package authz

import rego.v1

default allow := false

allow if {
    input.user.region == input.resource.region
}

Générez des politiques Rego pour OPA avec Big ACL

Commencer gratuitement

Qu'est-ce qu'Open Policy Agent ?

Open Policy Agent (OPA) est un projet diplômé CNCF qui fournit un moteur de politiques généraliste. Il découple la prise de décision de politiques de la logique de votre application.

  • Cloud native – Conçu pour Kubernetes et les microservices
  • Agnostique du langage – Fonctionne avec tout langage de programmation
  • Déclaratif – Politiques écrites en langage Rego
  • Haute performance – Politiques compilées pour une évaluation rapide
  • Extensible – Fonctions intégrées personnalisées et sources de données

Qu'est-ce que Rego ?

Rego est le langage de politiques d'OPA, inspiré de Datalog. Il est conçu pour interroger des structures de données imbriquées complexes et exprimer des décisions de politiques.

package authz

import rego.v1

default allow := false

# Autoriser les utilisateurs à lire leur propre profil
allow if {
    input.action == "read"
    input.resource.type == "profile"
    input.resource.owner == input.user.id
}

# Autoriser les admins à effectuer toute action
allow if {
    input.user.role == "admin"
}

# Autoriser les managers à approuver les dépenses sous leur limite
allow if {
    input.action == "approve"
    input.resource.type == "expense"
    input.user.role == "manager"
    input.resource.amount < input.user.approval_limit
}

Cas d'usage d'OPA

Contrôle d'admission Kubernetes

Valider et modifier les ressources Kubernetes avec Gatekeeper

Autorisation API

Appliquer des politiques d'accès sur les API REST et GraphQL

Autorisation des microservices

Application décentralisée des politiques avec intégration Envoy

Infrastructure as Code

Valider les plans Terraform avec Conftest

Filtrage de données

Générer des requêtes partielles pour l'application au niveau base de données

OPA comme Point de Décision des Politiques

OPA agit comme un Point de Décision des Politiques (PDP) dans votre architecture d'autorisation :

PAP

Big ACL crée les politiques Rego

PDP

OPA évalue les politiques

PEP

Les apps appliquent les décisions

OPA vs Amazon Verified Permissions

OPA et Amazon Verified Permissions sont tous deux des Points de Décision des Politiques, mais servent des cas d'usage différents :

Aspect OPA AVP
Déploiement Auto-hébergé Managé par AWS
Langage Rego Cedar
Idéal pour K8s, infrastructure Autorisation applicative
Écosystème CNCF, Envoy, K8s Services AWS

Sujets connexes