TL;DR: RBAC remains easy to understand, but it breaks down when permission decisions need context, fine-grained conditions, and reusable policy logic, according to Cerbos’ CNCF demo. The real shift is that authorization is moving from static role assignment to policy-driven decisioning that better matches modern application and NHI governance needs.
At a glance
What this is: This is a Cerbos demo on modern authorization that argues RBAC is too rigid for context-aware, scalable permission decisions.
Why it matters: It matters because IAM teams increasingly need authorization patterns that work across applications, service identities, and changing runtime conditions, not just human role assignment.
👉 Read Cerbos' demo on modern authorization with RBAC, ABAC, and policy control
Context
Authorization is the policy layer that decides what an identity can do after authentication succeeds. The problem with RBAC is not that roles are useless, but that roles alone struggle to express real-world conditions such as resource attributes, request context, and application state. That gap becomes more visible as teams try to govern non-human identities and distributed services alongside human users.
Cerbos uses the demo to argue for a shift toward ABAC and decoupled authorization, where policy is separated from application code and decisions can reflect context instead of only pre-assigned roles. For IAM programmes, that matters because permission design becomes a governance problem, not just an application development detail. The same pressure shows up wherever teams need consistency across applications, APIs, and workload identities.
Key questions
Q: How should security teams move beyond RBAC without losing control?
A: Start by keeping RBAC for broad access boundaries and layering ABAC or policy-based rules where decisions depend on context, ownership, or environment. The goal is not to remove roles entirely, but to stop using them for every access decision. Policy should be testable, versioned, and separated from application logic so governance stays consistent.
Q: Why do attribute-based access controls fit modern cloud applications better?
A: Cloud applications often need decisions based on request context, resource state, tenant boundaries, and time-sensitive conditions. ABAC can evaluate those factors at runtime, while RBAC usually cannot express them cleanly without extra roles and exceptions. That makes ABAC better suited to dynamic environments where permissions change faster than org charts.
Q: What breaks when authorization rules stay embedded in code?
A: Governance breaks first, because access logic becomes scattered across services and harder to review consistently. Then maintenance breaks, because every business change may require code updates in multiple places. Embedded rules also increase the chance of drift between what policy says and what the application actually enforces.
Q: How can IAM teams govern policy-driven authorization across services?
A: Treat authorization policy like any other controlled artefact. Require review, testing, versioning, and change approval before release, then monitor for drift between intended policy and runtime decisions. That approach gives IAM teams a repeatable control point even when access logic is distributed across many applications.
Technical breakdown
Why RBAC becomes brittle in modern applications
Role-based access control assigns permissions through static groupings such as admin, editor, or viewer. That model works when access patterns are stable, but it becomes brittle when permissions depend on environment, resource ownership, tenant boundaries, or request attributes. In modern systems, the same role can be too broad in one path and too narrow in another, which creates role sprawl and exceptions. RBAC is not obsolete, but it is often too coarse to express the actual decision a service needs to make at runtime.
Practical implication: use RBAC for coarse entitlements, but do not rely on it as the only authorization model for dynamic workloads.
How ABAC changes authorization decisions
Attribute-based access control evaluates policy against attributes such as user, resource, action, time, location, or environment. Instead of asking what role someone has, the system asks whether the current request matches policy conditions. That makes permissions more precise and easier to adapt without rewriting application logic each time a new business rule appears. ABAC is especially useful when access must reflect context that changes faster than role assignments can be reviewed. It also aligns better with distributed systems where identity alone is not enough to decide access.
Practical implication: model permissions around attributes that actually drive access decisions, then keep policy logic separate from application code.
What decoupled authorization changes architecturally
Decoupled authorization moves decision-making out of the application and into an external policy layer. The application asks for a decision, and the policy engine evaluates the request against centrally managed rules. This reduces duplicated logic across services, improves consistency, and makes policy changes easier to govern. It also supports testing and validation before rollout, which matters when permissions affect sensitive data or privileged actions. For identity teams, the architecture creates a clearer governance point because policy is no longer scattered across codebases.
Practical implication: treat the policy engine as a governed control plane and require versioning, testing, and review before policy changes go live.
Breaches seen in the wild
- Cisco DevHub NHI breach — IntelBroker exploited exposed Cisco credentials, API tokens and keys in DevHub.
- ASP.NET machine keys RCE attack — 3,000+ exposed ASP.NET machine keys enabled remote code execution.
Read our 52 NHI Breaches Analysis report for a comprehensive view of breaches impacting Non-Human Identities including AI Agents.
NHI Mgmt Group analysis
RBAC is still useful, but it is no longer sufficient as the primary authorization model for modern identity estates. Static role assignment breaks down when access depends on resource context, request conditions, and runtime state. That limitation is visible in application teams, and it becomes sharper when non-human identities need task-scoped permissions that do not map cleanly to human job titles. The practitioner conclusion is that RBAC should be treated as a baseline, not a complete governance model.
Decoupled authorization creates a governance boundary that identity teams can actually manage. When policy sits outside application code, security and IAM teams can review, test, and version permission logic in a controlled way. That is materially better than chasing embedded rules across services after each change request. The broader implication is that authorization becomes a shared control plane for human and non-human access decisions, not a hidden implementation detail.
Context-aware permissioning is becoming the practical bridge between human IAM and NHI governance. ABAC-style decisions map naturally to service identities, API calls, and workload permissions where the relevant question is not who the user is, but what this request is allowed to do right now. That matters because the same governance model can reduce exception handling across application teams and identity programmes. The practitioner conclusion is to align policy design with actual runtime conditions, not organisational charts.
Fine-grained authorization is now a lifecycle issue, not just an application feature. Once permissions are policy-driven, governance has to include policy review, validation, and drift control across release cycles. Cerbos’ demo reflects a wider market shift toward authorization as code, where permissions are managed with the same discipline as infrastructure changes. The practitioner conclusion is that access governance must extend into software delivery pipelines, or policy consistency will erode.
From our research:
- 88.5% of organisations acknowledge that their non-human IAM practices lag behind or are merely on par with their human identity and access management efforts, according to The 2024 Non-Human Identity Security Report.
- Only 19.6% of security professionals express strong confidence in their organisation's ability to securely manage non-human workload identities.
- For teams moving from static roles to policy-driven control, the broader baseline is the Ultimate Guide to NHIs.
What this signals
Policy-based authorization will increasingly become the control plane for both human and non-human identities. As applications fragment across cloud services and APIs, the line between IAM and application authorization continues to blur. Teams that still treat permission logic as a coding detail will keep inheriting inconsistency, while teams that centralize policy will have a cleaner path to governance.
The operational signal is that identity programmes need to think in terms of decision quality, not just access assignment. If a request can be evaluated with attributes, context, and testable policy, then the programme can reduce role sprawl and improve auditability at the same time. That is a stronger fit for modern workload access patterns than static entitlements alone.
For practitioners
- Inventory where RBAC is overextended Map services, APIs, and admin paths where roles are carrying conditional logic that should be expressed as policy. Focus first on systems with frequent exceptions, tenant-specific access, or resource ownership rules.
- Separate policy logic from application code Move authorization rules into a governed policy layer so access decisions can be reviewed, tested, and changed without redeploying every service. Use this pattern for high-change applications and shared services.
- Define the attributes that actually drive access List the minimum set of subject, resource, and context attributes required for correct decisions, then remove unused role assumptions that add noise without improving control.
- Test policies before promotion Add unit tests and negative tests for sensitive decisions so policy changes cannot introduce unintended privilege expansion. Validate new rules against the most common denial and allow cases before production rollout.
Key takeaways
- RBAC remains a useful baseline, but it cannot carry every authorization decision in modern distributed environments.
- ABAC and decoupled authorization give IAM teams a way to govern context-aware access without hard-coding policy into every application.
- The governance shift is operational, not just architectural, because policy now needs review, testing, and lifecycle control.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10 address the attack and risk surface, while NIST CSF 2.0 and NIST Zero Trust (SP 800-207) set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| NIST CSF 2.0 | PR.AC-4 | Access permissions should be managed as a governed control, not hard-coded per service. |
| NIST Zero Trust (SP 800-207) | AC-4 | Policy-based decisions support least-privilege enforcement at the point of request. |
| OWASP Non-Human Identity Top 10 | NHI-03 | Non-human access decisions often require context-aware policy, not static roles alone. |
Use external policy evaluation to enforce dynamic least privilege across applications and APIs.
Key terms
- Role-Based Access Control: Role-based access control assigns permissions through predefined roles rather than evaluating each request individually. It is efficient for broad access grouping, but it becomes less precise as applications, workloads, and exceptions grow more complex.
- Attribute-Based Access Control: Attribute-based access control makes a decision by evaluating attributes such as identity, resource, action, and context. It is useful when access needs to reflect real-time conditions instead of static job titles or coarse role assignments.
- Decoupled Authorization: Decoupled authorization separates permission logic from application code and places it in an external policy layer. This makes access decisions easier to review, test, change, and govern across many services without duplicating rules everywhere.
- Policy Engine: A policy engine evaluates an access request against centrally managed rules and returns an allow or deny decision. In mature programmes, it becomes a governed control point for application, workload, and administrative access decisions.
Deepen your knowledge
Authorization modernization and policy-based access control are core topics in our NHI Foundation Level course, the industry's only accredited NHI security programme. If you are building governance for applications and workload identities, it is worth exploring.
This post draws on content published by Cerbos: a CNCF live demo on modern authorization. Read the original.
Published by the NHIMG editorial team on 2026-06-08.
NHI Mgmt Group — the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org