By NHI Mgmt Group Editorial TeamBased on Cerbos: “What is access control?” (October 10, 2025)

TL;DR: Access control still depends on authentication, authorization, and audit, but modern applications increasingly need policy-based decisions that go beyond coarse roles, according to Cerbos. For IAM teams, the real issue is not whether access control exists, but whether it can stay auditable, contextual, and maintainable as systems grow more complex.


At a glance

What this is: This is a guide to modern access control that argues policy-based authorization is better suited than coarse roles for dynamic application environments.

Why it matters: IAM and application security teams need this shift because authorization logic now has to scale across changing contexts, clearer auditability, and less brittle permission design.


Context

Access control is the decision layer that determines who can do what, and under which conditions, inside an application. The governance gap appears when that decision model is too coarse for modern systems, because distributed applications, microservices, and cloud services need permissions that change with context rather than fixed role labels.

For IAM, IGA, and application security teams, the real issue is not whether access control exists at all. It is whether the organisation can keep authorization auditable, maintainable, and aligned to actual resource, identity, and environmental conditions as applications evolve.


Key questions

Q: How should teams decide when to move from RBAC to policy-based authorization?

A: Teams should move when roles alone no longer describe real access conditions. If access depends on resource ownership, department, time, relationship, or task context, RBAC becomes too coarse and exceptions start to dominate. Policy-based authorization gives a cleaner way to express those rules without hardcoding them in every service.

Q: Why do coarse roles become a problem in growing applications?

A: Coarse roles tend to accumulate exceptions, duplicate permissions, and broad access grants as teams try to fit complex reality into a small number of groups. That creates permission sprawl, weakens least privilege, and makes audits harder because the role model no longer reflects actual business conditions.

Q: What breaks when authorization policy evaluation is tightly coupled to application code?

A: When policy evaluation is tightly coupled to application code, changes become harder to test, deploy, and scale. Teams often end up with slow query paths, duplicated logic, and more operational risk when requirements change. It also increases the chance that policy bugs are buried inside the application instead of being isolated for review and correction.

Q: How should teams choose between RBAC and ABAC for application authorization?

A: Use RBAC when access maps cleanly to business roles and the number of exceptions is low. Use ABAC when decisions depend on context such as device, location, resource sensitivity, or time. Most teams need both: RBAC for baseline access and ABAC for exceptions that would otherwise create role sprawl.


Technical breakdown

How RBAC, ABAC, and policy engines differ in practice

Role-based access control assigns permissions to predefined roles, which works when access patterns are stable and organisationally simple. Attribute-based access control adds context such as time, location, device, or resource state, which makes it better suited to dynamic decisions but also more complex to maintain. Externalized authorization separates policy evaluation from application code, so teams can change rules without rewriting business logic. That separation improves consistency, auditability, and testability when permissions are no longer static.

Practical implication: Use RBAC for simple cases, but move to policy evaluation when access decisions depend on context or change frequently.

Why authorization becomes harder as applications scale

As applications grow, permission sprawl usually follows. More roles, exceptions, and one-off rules make the model hard to reason about and easy to overgrant. Least privilege becomes difficult when teams must balance usability with security while avoiding a proliferation of nearly identical roles. Centralized policy logic helps reduce that drift because the decision logic is easier to review, log, and test than permissions scattered across services. Auditability also improves when the control point is explicit rather than embedded in code paths.

Practical implication: Treat permission sprawl as a governance problem, not just a development convenience issue.

Where audit, monitoring, and separation of concerns matter most

Access control is not only about allowing or denying a request. It also has to produce a reliable record of why the decision was made, because audits and investigations depend on that traceability. Externalized authorization supports separation of concerns by keeping policy logic out of business logic, which reduces hidden security dependencies in application code. That pattern is especially useful when permissions must evolve over time without destabilizing the application itself.

Practical implication: Prioritize authorization designs that make policy changes observable, reviewable, and independent from application releases.


NHI Mgmt Group analysis

Policy-based authorization is becoming the practical control plane for modern application access. Coarse roles still work for stable business systems, but they break down when permissions depend on resource state, user attributes, or runtime context. The important change is not technical fashion, it is governance: access decisions now need to be managed as policy, not as scattered application logic. Practitioners should treat this as an authorization architecture choice, not a tooling preference.

Permission sprawl is the clearest sign that access control has outgrown its original model. When teams end up with dozens of near-duplicate roles or manual exceptions, the system is telling you that role assignment no longer expresses the real business conditions. That creates audit burden, operational drift, and overpermissioning risk. The right response is to ask where policy evaluation belongs and what should no longer be encoded as static role membership.

Separate authorization from business logic or the control will become ungovernable. The article’s strongest architectural point is that externalized policy engines make access decisions testable, auditable, and easier to change without rewriting the application. That separation matters across human IAM, NHI-adjacent application flows, and service-to-service access because the control point stays visible. Practitioners should design for policy ownership, not policy hiding.

Hybrid models are often the real operating state, not a compromise to be avoided. Many organisations need coarse RBAC for baseline access and policy-based checks for dynamic or sensitive actions. That is not a failure of design, it is a recognition that different access decisions have different governance needs. The practitioner task is to define which decisions belong in roles, which belong in policy, and how each will be reviewed over time.

From our research library:

What this signals

Policy-based authorization is the control pattern that stops access decisions from hardening into code debt. Once permissions depend on context, static roles become too blunt to represent reality, and that is where governance starts slipping into workarounds. Teams should be watching for decision logic that only exists inside application code or ticket queues, because that is usually where auditability begins to fail.

Only 44% of developers are reported to follow security best practices for secrets management, according to the State of Secrets in AppSec. That developer behaviour gap matters here because authorization models are only as stable as the teams operating them. When security controls rely on inconsistent implementation habits, the result is usually policy drift rather than durable governance.


For practitioners

  • Define where static roles stop Map the access decisions in your application and mark the ones that depend on resource state, time, device, or other context. Those are candidates for policy-based authorization instead of pure role assignment.
  • Reduce permission sprawl Review roles for duplication, exceptions, and manual overrides that have accumulated as the application grew. Collapse overlapping permissions before they become difficult to audit or recertify.
  • Separate policy from application code Move authorization rules into a central control point so teams can update access logic without changing business features. That makes decisions easier to test, log, and review.
  • Keep audit evidence close to the decision Ensure every authorization path can explain why access was granted or denied, including the attributes or policy inputs used. Investigations and compliance reviews depend on that traceability.

Key takeaways

  • Access control problems often start when static roles can no longer express dynamic business conditions without exceptions.
  • Policy-based authorization helps keep decisions auditable and maintainable when applications become more distributed and context-driven.
  • The operational test is whether teams can change access rules without hiding security logic inside application code.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP ASVS, NIST CSF 2.0, NIST SP 800-53 Rev 5, CIS Controls v8 and NIST Zero Trust (SP 800-207) set the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
OWASP ASVSV8 — AuthorizationThe article is fundamentally about how applications make authorization decisions.
Recommendation — Review application authorization against V8 and separate decision logic from business code.
NIST CSF 2.0PR.AA-05 — Access Permissions, Entitlements and AuthorizationsThe piece focuses on permission design, entitlement management, and access decision control.
Recommendation — Align permission design to PR.AA-05 and keep entitlements reviewable as applications grow.
NIST SP 800-53 Rev 5AC-6 — Least PrivilegeLeast privilege is explicitly discussed as a challenge in implementing access control.
Recommendation — Apply AC-6 to limit permissions to the minimum access needed for each decision path.
CIS Controls v8CIS-5 — Account ManagementPermission sprawl and access governance are central to the article's operational concerns.
Recommendation — Use CIS-5 to govern account and role growth before permissions become unmanageable.
NIST Zero Trust (SP 800-207)Zero Trust principles — Never trust, always verifyDynamic, context-aware authorization aligns with zero trust access decisions.
Recommendation — Apply zero trust principles to require contextual verification before granting access.

Key terms

  • Policy-based authorization: A model where access decisions are defined in a separate policy layer rather than buried inside application code. This makes permission logic easier to review, test, and govern across services, environments, and release cycles, while reducing drift between teams that would otherwise implement access rules differently.
  • Role-Based Access Control: A model that grants permissions by assigning identities to predefined roles. It works well when jobs are stable and access patterns are predictable, but it becomes brittle when exceptions pile up. In practice, role design must stay small enough to audit and broad enough to avoid endless custom variants.
  • Attribute-Based Access Control: Attribute-Based Access Control is a policy model that grants or denies access using attributes such as user role, device state, location, and application context. It replaces purely static role assignment with a decision process that can adapt to current conditions, provided the underlying attributes are trustworthy and well-governed.
  • Permission Sprawl: Permission sprawl is the accumulation of unnecessary or outdated access across identities over time. In cloud and NHI environments, it grows through automation, rapid deployment, and weak offboarding, leaving more standing privilege than the business actually needs.

Deepen your knowledge

NHI governance, agentic AI identity, and machine identity lifecycle are core topics in our NHI Foundation Level course, the industry's only accredited NHI security programme. If you are building or maturing an IAM programme, it is worth exploring.
NHIMG Editorial Note
Published by the NHIMG editorial team on June 11, 2026.
Updated on October 6, 2026.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org