Access Control List (ACL) : Définition, Types, Exemples
Une ACL est une liste attachée à une ressource qui spécifie quels utilisateurs/groupes ont quelles permissions. Utilisé dans file systems, réseaux, cloud.
Qu'est-ce qu'une Access Control List (ACL) ?
Une Access Control List (ACL) est une structure de données attachée à une ressource (fichier, répertoire, network device, objet S3) qui énumère explicitement quels utilisateurs ou groupes ont quelles permissions sur cette ressource. Les ACLs sont parmi les mécanismes access-control les plus anciens et fondamentaux.
Une ACL répond conceptuellement à la question "pour la ressource X, qui peut faire quoi ?"
Anatomie d'ACL
Une ACL typique est une liste d'Access Control Entries (ACEs) :
- Subject : à qui l'entry s'applique
- Permission(s) : quelle(s) action(s) granted ou denied
- Decision : allow ou deny
- Conditions optionnelles : time-of-day, IP source
user::rwx
user:alice:rw-
group::r-x
group:engineering:rwx
other::r--Types d'ACLs
| Type | Où utilisé | Notes |
|---|---|---|
| File system ACL | POSIX, Windows NTFS, NFSv4 | Permissions sur fichiers/répertoires |
| Network ACL | Routers, firewalls, AWS NACL | Allow/deny trafic |
| S3 Bucket/Object ACL | AWS S3 (legacy) | Largement superseded |
| Database ACL | Certains DBMSes | Per-table ou per-row |
| Application ACL | Apps SaaS, CMSes | Listes custom permissions |
ACL vs RBAC vs ABAC
| Modèle | Granularité | Meilleur pour |
|---|---|---|
| ACL | Per-ressource | Peu de ressources |
| RBAC (Role-Based) | Per-rôle | Beaucoup d'utilisateurs |
| ABAC (Attribute-Based) | Dynamique per-contexte | Fine-grained |
| Capabilities | Per-user (token-based) | Systèmes distribués |
ACLs file system POSIX
setfacl -m u:alice:rw file.txt
setfacl -m g:engineering:r file.txt
getfacl file.txt
setfacl -d -m u:alice:rw /var/dataACLs réseau
access-list 100 permit tcp 10.0.0.0 0.0.0.255 any eq 80
access-list 100 permit tcp 10.0.0.0 0.0.0.255 any eq 443
access-list 100 deny ip any anyACLs AWS S3
{
"Owner": { "ID": "..." },
"Grants": [
{ "Grantee": { "ID": "..." }, "Permission": "FULL_CONTROL" }
]
}Ordre évaluation ACL
- First match wins.
- Deny overrides allow.
- Default deny.
Best practices ACL
- Commencer par default deny.
- Least privilege.
- Utiliser groupes, pas individus.
- Auditer régulièrement.
- Documenter pourquoi chaque entry existe.
- Préférer RBAC pour accès bulk.
- Tester changements règles avec soin.
- Attention au misordre "deny all".
Pièges ACL courants
- ACL sprawl.
- ACLs inconsistantes.
- ACLs public-access oubliées.
- Default ACL non héritée.
- Ordre évaluation network ACL.
- Confusion ACL vs effective permissions.
FAQ : Access Control Lists
Différence entre ACL et RBAC ?
ACL : per-ressource. RBAC : per-rôle.
Devrais-je utiliser S3 ACLs ?
Généralement non. AWS recommande bucket policies + IAM.
Différence entre AWS Security Group et NACL ?
SG : stateful, instance-level. NACL : stateless, subnet-level.
Pourquoi mes POSIX ACLs ne s'appliquent pas ?
Le file system doit supporter les ACLs.
Les ACLs peuvent-elles être trop permissives ?
Oui — ACLs over-permissives sont un top cloud breach vector.
Comment auditer les ACLs existantes ?
POSIX : getfacl. AWS : Config + Trusted Advisor.
Les ACLs ralentissent-elles les systèmes ?
Marginalement.
Testez les APIs ACL-protégées avec LoadFocus
LoadFocus exécute des scripts JMeter et k6 qui exercent les paths auth depuis 25+ régions. Inscrivez-vous sur loadfocus.com/signup.
Outils LoadFocus connexes
Mettez ce concept en pratique avec LoadFocus — la plateforme même qui propulse tout ce que vous venez de lire.