Access Control List (ACL): Definition, Typen, Beispiele
Eine ACL ist eine Liste an einer Ressource, die spezifiziert, welche User/Groups welche Permissions haben. In File-Systems, Netzwerken, Cloud-Storage.
Was ist eine Access Control List (ACL)?
Eine Access Control List (ACL) ist eine Datenstruktur, die an eine Ressource (File, Directory, Network-Device, S3-Object) attached ist und explizit aufzählt, welche User oder Groups welche Permissions auf dieser Ressource haben. ACLs sind einer der ältesten und fundamentalsten Access-Control-Mechanismen.
Eine ACL beantwortet konzeptionell die Frage "für Ressource X, wer kann was tun?"
ACL-Anatomie
Eine typische ACL ist eine Liste von Access Control Entries (ACEs):
- Subject: auf wen der Entry zutrifft
- Permission(s): welche Aktion(en) granted oder denied
- Decision: allow oder deny
- Optionale Conditions: Time-of-Day, Source-IP, etc.
user::rwx
user:alice:rw-
group::r-x
group:engineering:rwx
other::r--Typen von ACLs
| Typ | Wo genutzt | Notes |
|---|---|---|
| File-System-ACL | POSIX, Windows NTFS, NFSv4 | Permissions auf Files/Directories |
| Network-ACL | Router, Firewalls, AWS NACL | Allow/Deny Traffic |
| S3-Bucket/Object-ACL | AWS S3 (legacy) | Mostly superseded |
| Database-ACL | Manche DBMSes | Per-Table oder Per-Row |
| Application-ACL | SaaS-Apps, CMSes | Custom Permission-Listen |
ACL vs RBAC vs ABAC
| Modell | Granularität | Am besten für |
|---|---|---|
| ACL | Per-Resource | Wenige Ressourcen |
| RBAC (Role-Based) | Per-Role | Viele User |
| ABAC (Attribute-Based) | Dynamic Per-Context | Fine-grained |
| Capabilities | Per-User (Token-based) | Distributed Systems |
POSIX File-System-ACLs
setfacl -m u:alice:rw file.txt
setfacl -m g:engineering:r file.txt
getfacl file.txt
setfacl -d -m u:alice:rw /var/dataNetwork-ACLs
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 anyAWS S3-ACLs
{
"Owner": { "ID": "..." },
"Grants": [
{ "Grantee": { "ID": "..." }, "Permission": "FULL_CONTROL" }
]
}ACL-Evaluation-Order
- First match wins: Network-ACLs.
- Deny overrides allow: NTFS, AD.
- Default deny.
ACL Best Practices
- Mit Default-Deny starten.
- Least Privilege.
- Groups, nicht Individuen.
- Regelmäßig auditieren.
- Warum jeder Entry existiert dokumentieren.
- RBAC für Bulk-Access bevorzugen.
- Rule-Changes vorsichtig testen.
- Auf "Deny all"-Missorder achten.
Häufige ACL-Fallstricke
- ACL-Sprawl.
- Inkonsistente ACLs.
- Vergessene Public-Access-ACLs.
- Default-ACL nicht inherited.
- Network-ACL-Evaluation-Order.
- ACL vs Effective-Permissions Confusion.
FAQ: Access Control Lists
Unterschied zwischen ACL und RBAC?
ACL: Per-Resource. RBAC: Per-Role.
Sollte ich S3-ACLs nutzen?
Generell nein. AWS empfiehlt Bucket-Policies + IAM.
Unterschied zwischen AWS Security Group und NACL?
SG: stateful, Instance-Level. NACL: stateless, Subnet-Level.
Warum applien meine POSIX-ACLs nicht?
File-System muss ACLs supporten.
Können ACLs zu permissive sein?
Ja — Over-Permissive-ACLs sind ein Top-Cloud-Breach-Vector.
Wie audite ich existierende ACLs?
POSIX: getfacl. AWS: Config + Trusted Advisor.
Verlangsamen ACLs Systeme?
Marginally.
Testen Sie ACL-protected APIs mit LoadFocus
LoadFocus läuft JMeter- und k6-Scripts, die Auth-Pfade aus 25+ Regionen exerzieren. Registrieren bei loadfocus.com/signup.
Verwandte LoadFocus-Tools
Setze dieses Konzept mit LoadFocus in die Praxis um — derselben Plattform, die alles antreibt, was du gerade gelesen hast.