Use roles for stable access patterns and move exceptions, temporary access, and context-sensitive decisions into attribute-based or policy-driven controls. Roles should represent durable business functions, not every edge case. When roles become a catch-all for temporary access, authorization becomes difficult to audit and easy to over-grant.
Why This Matters for Security Teams
Fragile role sprawl usually starts as a convenience problem and becomes an authorization problem. Teams add roles for temporary projects, one-off approvals, vendor exceptions, and operational shortcuts, then lose the ability to tell which permissions are truly durable. That undermines auditability, slows reviews, and creates over-granted access that no one can confidently explain later. NIST’s NIST Cybersecurity Framework 2.0 pushes organisations toward governed, accountable access decisions, but that only works when the model is simple enough to manage.
The NHI problem is sharper because machine access scales faster than human access. NHIMG research shows 97% of NHIs carry excessive privileges, which is exactly what role sprawl tends to produce when every exception becomes a permanent entitlement. Once roles start encoding context, time limits, and special cases, they stop describing business function and start acting like an ungovernable policy dump. In practice, many security teams discover the blast radius only after a review failure, a secrets leak, or an incident that exposed how many “temporary” roles had become permanent.
How It Works in Practice
The practical fix is to reserve roles for stable, durable access patterns and push everything else into policy evaluation at request time. Roles should map to functions such as finance approver, production operator, or CI system publisher. Temporary elevation, environment-specific access, and exception handling should be decided by attributes like workload identity, ticket state, device posture, time window, data sensitivity, and request purpose.
That means authorisation becomes policy-driven rather than role-driven. A policy engine evaluates whether the request is allowed now, for this actor, against this resource, under these conditions. This is the operating model behind modern zero trust guidance in NIST CSF 2.0 and is consistent with the direction of least privilege in NHIMG’s NHI guidance.
- Use RBAC only for long-lived business functions.
- Use ABAC or policy-as-code for exceptions and context-sensitive grants.
- Bind machine access to workload identity, not shared secrets alone.
- Issue short-lived credentials through JIT workflows and revoke them automatically.
- Log the policy decision, not just the access event, so reviewers can explain why access was granted.
For implementation, teams often combine policy engines with strong identity proof, such as OIDC-based workload tokens or SPIFFE/SPIRE-style workload identity, and then gate privileged actions through approval or just-in-time issuance. Current guidance suggests keeping decision logic centralised and the entitlements minimal, because distributed “role exceptions” are difficult to test and even harder to retire. These controls tend to break down when legacy applications only understand static group membership, because the organisation is forced to translate dynamic policy back into brittle role mappings.
Common Variations and Edge Cases
Tighter role design often increases operational overhead, requiring organisations to balance cleaner governance against faster access delivery. That tradeoff is real, especially in environments with many legacy apps, shared admin tools, or outsourced operations. In those cases, best practice is evolving rather than settled: some teams use a thin RBAC layer for application compatibility and place the real decision logic in a policy engine behind it.
One common edge case is service accounts that need broad access across many systems. Those should not become a “super-role” by default. Instead, current guidance suggests splitting the access path into smaller scoped identities, short TTL secrets, and explicit task-based policy checks. Another edge case is emergency access. Break-glass access is sometimes necessary, but it should be tightly time-boxed, heavily logged, and reviewed after use rather than preserved as a standing role. The same applies to third-party operators and integrations, where NHIMG research shows vendor-connected access is often only partially visible. Security teams that allow exceptions to accumulate in RBAC usually find the model becomes impossible to review before it becomes impossible to trust.
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 and CSA MAESTRO address the attack and risk surface, while NIST AI RMF set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-01 | Directly addresses excessive privileges and poor non-human access design. |
| CSA MAESTRO | Covers policy-driven control for agent and workload authorisation. | |
| NIST AI RMF | Supports governance for dynamic, context-based authorisation decisions. |
Constrain NHI entitlements to durable functions and remove exception-heavy standing roles.
Related resources from NHI Mgmt Group
- How should security teams design DNS redundancy to withstand DDoS attacks?
- How should security teams implement authorization for AI systems without slowing adoption?
- What do security teams get wrong about cloud native authorization?
- How should security teams design RBAC roles without creating privilege creep?
Deepen Your Knowledge
Reviewed and updated by the NHIMG editorial team on June 23, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org