Access Control List (ACL): Definición, Tipos, Ejemplos
Una ACL es una lista adjunta a un recurso que especifica qué usuarios/grupos tienen qué permisos. Usado en file systems, redes, cloud storage.
¿Qué es una Access Control List (ACL)?
Una Access Control List (ACL) es una estructura datos adjunta a un recurso (archivo, directorio, network device, objeto S3) que enumera explícitamente qué usuarios o grupos tienen qué permisos sobre ese recurso. Las ACLs son uno de los mecanismos access-control más antiguos y fundamentales.
Una ACL conceptualmente responde la pregunta "para recurso X, ¿quién puede hacer qué?"
Anatomía de ACL
Una ACL típica es una lista de Access Control Entries (ACEs):
- Subject: a quién aplica el entry
- Permission(s): qué acción(es) granted o denied
- Decision: allow o deny
- Conditions opcionales: time-of-day, IP origen
user::rwx
user:alice:rw-
group::r-x
group:engineering:rwx
other::r--Tipos de ACLs
| Tipo | Dónde usado | Notas |
|---|---|---|
| File system ACL | POSIX, Windows NTFS, NFSv4 | Permisos sobre archivos/directorios |
| Network ACL | Routers, firewalls, AWS NACL | Allow/deny tráfico |
| S3 Bucket/Object ACL | AWS S3 (legacy) | Mayormente superseded |
| Database ACL | Algunos DBMSes | Per-tabla o per-fila |
| Application ACL | Apps SaaS, CMSes | Listas custom permisos |
ACL vs RBAC vs ABAC
| Modelo | Granularidad | Mejor para |
|---|---|---|
| ACL | Per-recurso | Pocos recursos |
| RBAC (Role-Based) | Per-rol | Muchos usuarios |
| ABAC (Attribute-Based) | Dinámico per-contexto | Fine-grained |
| Capabilities | Per-user (token-based) | Sistemas distribuidos |
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 red
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 S3 AWS
{
"Owner": { "ID": "..." },
"Grants": [
{ "Grantee": { "ID": "..." }, "Permission": "FULL_CONTROL" }
]
}Orden evaluación ACL
- First match wins.
- Deny overrides allow.
- Default deny.
Mejores prácticas ACL
- Empezar con default deny.
- Least privilege.
- Usar grupos, no individuos.
- Auditar regularmente.
- Documentar por qué existe cada entry.
- Preferir RBAC para acceso bulk.
- Testear cambios reglas con cuidado.
- Cuidado con misorden "deny all".
Pitfalls ACL comunes
- ACL sprawl.
- ACLs inconsistentes.
- ACLs public-access olvidadas.
- Default ACL no heredada.
- Orden evaluación network ACL.
- Confusión ACL vs effective permissions.
FAQ: Access Control Lists
¿Diferencia entre ACL y RBAC?
ACL: per-recurso. RBAC: per-rol.
¿Debería usar S3 ACLs?
Generalmente no. AWS recomienda bucket policies + IAM.
¿Diferencia entre AWS Security Group y NACL?
SG: stateful, instance-level. NACL: stateless, subnet-level.
¿Por qué mis POSIX ACLs no aplican?
File system debe soportar ACLs.
¿Pueden las ACLs ser muy permisivas?
Sí — ACLs over-permisivas son top cloud breach vector.
¿Cómo audito ACLs existentes?
POSIX: getfacl. AWS: Config + Trusted Advisor.
¿Las ACLs ralentizan sistemas?
Marginalmente.
Testea APIs ACL-protegidas con LoadFocus
LoadFocus corre scripts JMeter y k6 que ejercitan paths auth desde 25+ regiones. Regístrate en loadfocus.com/signup.
Herramientas LoadFocus relacionadas
Lleva este concepto a la práctica con LoadFocus — la misma plataforma que potencia todo lo que acabas de leer.