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.

ABAC (Attribute-Based Access Control)

general

Définition

L'ABAC (Attribute-Based Access Control — Contrôle d'Accès Basé sur les Attributs) est un modèle de contrôle d'accès qui détermine les autorisations en évaluant des politiques exprimées en termes d'attributs : attributs du sujet (utilisateur), attributs de la ressource, attributs de l'environnement, et attributs de l'action. C'est le modèle le plus flexible et le plus expressif de la famille des modèles de contrôle d'accès, permettant des décisions d'autorisation très granulaires et contextuelles. Contrairement à RBAC (Role-Based Access Control) qui accorde des droits en fonction du rôle de l'utilisateur, ABAC évalue une politique complète : "Un utilisateur peut effectuer une action sur une ressource si ET SEULEMENT SI l'évaluation des politiques ABAC applicables retourne une décision 'Permit'." Les attributs peuvent inclure : pour le sujet (département, niveau d'habilitation, localisation, appareil utilisé, heure de connexion) ; pour la ressource (classification des données — Public/Interne/Confidentiel/Secret, propriétaire, département) ; pour l'environnement (heure, jour, localisation réseau, niveau de risque actuel) ; pour l'action (Lire, Modifier, Supprimer, Partager). Exemple de politique ABAC : "Un employé du département Finances peut lire les documents financiers de niveau Confidentiel pendant les heures ouvrables (8h-18h) depuis le réseau d'entreprise, sur un appareil managé et conforme." Cette politique combine cinq attributs (département, niveau de document, heure, réseau, conformité appareil) en une règle qui ne peut pas être exprimée simplement avec RBAC. ABAC est la base des approches Zero Trust modernes : chaque décision d'accès est évaluée dynamiquement en fonction du contexte complet (identité, appareil, localisation, comportement) plutôt que d'un rôle statique. Les politiques XACML (eXtensible Access Control Markup Language) et ALFA (Abbreviated Language for Authorization) sont les standards pour exprimer les politiques ABAC de façon structurée. Les solutions ABAC incluent : Axiomatics Policy Server, NextLabs Policy Platform, HashiCorp Boundary (pour l'accès aux infrastructures), et des services cloud natifs (AWS IAM Conditions, Azure ABAC pour le stockage blob, Google IAM Conditions) qui implémentent des principes ABAC via des conditions d'attributs sur les politiques IAM.

ABAC vs RBAC — complémentarité et limites

RBAC et ABAC sont complémentaires plutôt qu'opposés. RBAC est simple à implémenter et à comprendre (les utilisateurs comprennent intuitivement les rôles) et est adapté aux décisions d'accès stables et peu contextuelles. ABAC est plus complexe mais permet des politiques que RBAC ne peut pas exprimer : accès conditionnel selon l'heure, la localisation, l'état de sécurité de l'appareil, le niveau de classification des données. En pratique, les systèmes d'entreprise combinent souvent les deux : RBAC pour définir les droits de base selon le poste, et ABAC pour les conditions contextuelles supplémentaires (restriction horaire, restriction géographique, exigence de MFA pour les ressources sensibles). Azure AD Conditional Access est un exemple d'ABAC en pratique : les politiques d'accès évaluent des attributs multiples (identité, groupe, risque utilisateur, conformité appareil, localisation) pour autoriser ou refuser l'accès.

XACML — standard des politiques ABAC

XACML (eXtensible Access Control Markup Language) est le standard OASIS pour définir, partager, et évaluer les politiques ABAC en XML. L'architecture XACML comprend : PAP (Policy Administration Point — où les politiques sont créées), PDP (Policy Decision Point — où les politiques sont évaluées), PEP (Policy Enforcement Point — où les décisions sont appliquées), PIP (Policy Information Point — source des attributs). XACML est verbeux en XML — ALFA (Abbreviated Language for Authorization) est une syntaxe plus lisible qui compile vers XACML. Axiomatics, Otka, et plusieurs plateformes IAM enterprise supportent XACML. Pour les environnements cloud-native, OPA (Open Policy Agent) avec le langage Rego est une alternative moderne plus légère qui implémente des principes ABAC sans la complexité XACML.

OPA (Open Policy Agent) — ABAC cloud-native

OPA (Open Policy Agent) est un moteur de politiques open-source adopté dans les environnements cloud-native pour implémenter ABAC. Les politiques OPA sont écrites en Rego (langage déclaratif) et évaluées par le daemon OPA, interrogeable via une API HTTP. OPA est intégré dans Kubernetes (via GatekeeperOPA pour les politiques d'admission), Envoy (sidecar pour les politiques réseau des microservices), Terraform (Conftest pour valider les configurations), et les pipelines CI/CD. Exemple de politique Rego : `allow { input.user.department == "finance" input.resource.classification == "confidential" time.clock(input.env.timestamp)[0] >= 8 time.clock(input.env.timestamp)[0] <= 18 }` — cette politique autorise l'accès si le département est Finance, la classification Confidentiel, et l'heure entre 8h et 18h. OPA est le standard de facto pour l'ABAC dans les environnements Kubernetes/microservices.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis