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

TipoDónde usadoNotas
File system ACLPOSIX, Windows NTFS, NFSv4Permisos sobre archivos/directorios
Network ACLRouters, firewalls, AWS NACLAllow/deny tráfico
S3 Bucket/Object ACLAWS S3 (legacy)Mayormente superseded
Database ACLAlgunos DBMSesPer-tabla o per-fila
Application ACLApps SaaS, CMSesListas custom permisos

ACL vs RBAC vs ABAC

ModeloGranularidadMejor para
ACLPer-recursoPocos recursos
RBAC (Role-Based)Per-rolMuchos usuarios
ABAC (Attribute-Based)Dinámico per-contextoFine-grained
CapabilitiesPer-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/data

ACLs 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 any

ACLs 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.

¿Qué tan rápido es tu sitio web?

Mejora su velocidad y SEO sin problemas con nuestra Prueba de Velocidad gratuita.

Prueba de velocidad de sitio web gratis

Analice la velocidad de carga de su sitio web y mejore su rendimiento con nuestro comprobador de velocidad de página gratuito.

×