




2938 Members
The authorization model you choose determines what least-privilege evidence you can produce in an access review, not only how you enforce access at runtime.
That matters in SOC 2-style reviews. Security and compliance teams are not only asking whether access was allowed or denied. They are asking why a user had that access, whether it was appropriate, and how you can prove it.
If you are still choosing between RBAC, ABAC, and ReBAC, start with the companion guide: FGA models decision tree. This post is the compliance bridge: how each model shapes the evidence you can bring into an access review.
| Model | Primary entitlement artifact | What you can evidence in an access review | Least-privilege question it answers well / poorly |
|---|---|---|---|
| RBAC | Role assignment | User X has role Y; role Y maps to permissions A, B, C. | Well: Who has admin/editor/viewer access? Poorly: Should this user have this exact permission in this context? |
| ABAC | Attribute condition | User, resource, or environment attributes matched a policy condition. | Well: Was access constrained by department, region, ownership, status, or risk? Poorly: Who has standing access if attributes change? |
| ReBAC | Relationship tuple | User X has relationship R to object Y, directly or through inheritance. | Well: Why could this user access this specific resource? Poorly: What broad access does this user have without graph reporting? |
| Hybrid | Role + attributes + relationships | A combined explanation across assignment, condition, and relationship. | Well: Nuanced least-privilege justification. Poorly: Simple review workflows if not logged and explainable. |
RBAC gives reviewers the most familiar entitlement artifact: a role assignment.
That makes coarse access reviews straightforward. You can list users with admin, editor, billing, support, or read-only roles, map each role to a permission set, and ask owners to confirm whether assignments remain valid.
The limitation is granularity. A role name may look appropriate while the permissions inside it are broader than necessary. If one "Project Admin" role includes user management, exports, billing, and production settings, the review becomes a review of labels rather than least privilege.
This is where role explosion becomes a problem. Organizations trying to achieve finer granularity add more roles, leading to hundreds or thousands of role definitions. The result is often access-review failure: reviewers cannot meaningfully assess whether each role assignment is appropriate because the role landscape is too complex to understand. Role explosion trades one least-privilege problem (overly broad roles) for another (unmanageable role sprawl).
RBAC produces clear evidence that a user was assigned a role. It does not always prove that every permission inside that role was necessary.
ABAC changes the evidence shape from "what role does this user have?" to "which conditions were true when access was allowed?"
That can support stronger least privilege because access can be constrained by business context: department, region, employment status, ownership, data classification, request time, or risk level.
In an access review, ABAC evidence should show both the policy condition and the attribute values used in the decision. Seeing the rule is not enough if reviewers cannot see the facts that caused the allow.
The main challenge is that attributes change. ABAC is strongest when decision logs retain the relevant attribute context, or when attribute history is governed and queryable. It answers "under what conditions was access allowed?" well, and "who has standing access?" only when attributes are current and reviewable.
ReBAC (relationship-based access control) makes the relationship the entitlement artifact.
Instead of relying only on broad roles, ReBAC represents access through tuples: a user is an owner of a document, a member of a team, an editor of a project, or connected to a resource through an inherited path.
Consider common relationship-based access control examples: a team lead inherits view access to all documents owned by team members; a project collaborator gains comment access through their membership in a shared workspace; a folder owner's permissions cascade to nested files. Each of these scenarios produces a clear relationship tuple that explains the access path.
For least-privilege evidence, this is powerful at the resource level. The review question becomes: "What relationship connected this user to this object?" That is especially useful in collaborative, multi-tenant, hierarchical, or sharing-heavy systems.
The challenge is scale. Relationship graphs can become large, and reviewers usually need summaries, diffs, and explanation paths rather than raw tuples. ReBAC answers "why could this user access this resource?" very well, and needs tooling to answer broader access-review questions efficiently.
Least privilege is not only a policy design problem. It is a model + enforcement + evidence problem.
Coarse RBAC often struggles in access reviews when entitlements cannot be explained below the role level. ABAC and ReBAC can produce stronger least-privilege evidence, but only if decisions are tied back to the policies, attributes, and relationships that produced them.
The goal is entitlement evidence continuity: a clear chain from the authorization model through enforcement to the access review. When reviewers can trace a decision back to a specific role assignment, attribute condition, or relationship tuple, they can assess whether the access was appropriate. Without that continuity, least-privilege evidence becomes incomplete, and access reviews become checkbox exercises.
Most production systems eventually become hybrid: a role for capability, attributes for context, and relationships for the specific resource. That is often the right authorization model, and it raises the bar for explainability.
Externalized authorization helps here. A dedicated authorization layer makes policies easier to govern, enforcement easier to standardize, and decision logs easier to use during access reviews. Permit.io supports RBAC, ABAC, ReBAC, and hybrid models, with a hybrid PDP architecture that keeps enforcement close to the application while supporting centralized policy management and reviewable decision data.
For compliance teams, the goal is simple: don't just prove access was enforced. Prove why it was appropriate.

Co-Founder / CEO at Permit.io