Access Control List (ACL)

A list of permissions attached to a resource that specifies which users or system processes are granted access and what operations they can perform.

Also known as:ACLPermission List

What is an Access Control List?

An Access Control List (ACL) is a table that defines which users or system processes have access to a specific resource and what operations they are permitted to perform. ACLs are fundamental to enforcing security policies.

ACL Components

Principal Who is granted access (user, group, role).

Permission What actions are allowed (read, write, delete).

Resource What is being protected (file, database, API).

ACL Types

Discretionary ACL (DACL)

  • Owner controls access
  • Flexible permissions
  • Common in file systems

System ACL (SACL)

  • Auditing and logging
  • Track access attempts
  • Windows security

Network ACLs

  • Firewall rules
  • Traffic filtering
  • IP/port based

Example ACL

PrincipalPermissionResource
adminread, write, delete/data/*
user1read/data/reports
group:devsread, write/code/*

ACL vs RBAC

ACLRBAC
Per-resourcePer-role
Fine-grainedScalable
Can be complexEasier management
Direct assignmentRole assignment

Best Practices

  • Default deny
  • Least privilege
  • Regular audits
  • Remove stale entries
  • Document permissions