Access Control Matrix
An access control matrix is a conceptual table used to describe who is allowed to do what within a system. Each row stands for a user or process (a subject), each column stands for a resource (an object), and each cell lists the actions that subject is permitted to perform on that object. It is primarily a model for visualizing and reasoning about permissions rather than a mechanism deployed directly at runtime.
The access control matrix is an abstract, formal security model that characterizes the protection state of a system as a two-dimensional matrix. Rows correspond to subjects (principals such as users or processes), columns correspond to objects (protected resources), and each matrix entry enumerates the set of access rights the given subject holds over the given object. As an authorization model, it defines permitted operations and is distinct from authentication, which establishes the subject's identity beforehand. In practice the full matrix is typically sparse and rarely stored directly; implementations commonly decompose it into per-object access control lists (columns) or per-subject capability lists (rows). It serves as a theoretical foundation underlying discretionary access control (DAC) and provides a reference framework for comparison against models such as RBAC and ABAC; specific representation and enforcement details depend on the system and are out of scope for the matrix as a model.
Why it matters
The access control matrix is foundational because it gives IAM practitioners a rigorous, unambiguous way to describe the complete protection state of a system: exactly which subjects hold which rights over which objects. As an authorization model, it makes explicit the mapping of permitted operations, which is invaluable when reasoning about whether a design grants excessive access or leaves gaps. Because it is a model rather than a runtime mechanism, its value lies in analysis, comparison, and communication rather than direct deployment.
The matrix also clarifies why most real systems never store the full grid. In practice the matrix is typically sparse, and implementations commonly decompose it into per-object access control lists (the columns) or per-subject capability lists (the rows). Understanding this decomposition helps architects recognize that ACLs and capability systems are two projections of the same underlying model, which in turn informs decisions about where and how permissions are best represented and enforced.
As a theoretical foundation underlying discretionary access control (DAC), the matrix serves as a reference framework for comparing against models such as RBAC and ABAC. It does not by itself establish who a subject is; authentication precedes it and is a separate concern. Keeping the matrix in mind as the abstract baseline helps teams evaluate whether a chosen model expresses the intended protection state accurately, without presenting any single model as universally superior.
Who it's relevant to
Inside ACM
Common questions
Answers to the questions practitioners most commonly ask about ACM.
