AI-ready data

RBAC vs ABAC for AI Agent Permission Models

RBAC and ABAC each solve part of the problem; agents need both layers.

· 9 min read
AI Data Governance · October 21, 2026 · 9 min read · 1,974 words

Role-based access control (RBAC) and attribute-based access control (ABAC) each handle a different part of how AI agents get authorization. Roles define the boundaries of a job, while attributes decide whether an action fits the current request. Agents need both, with enforcement where data is queried and combined. Peaka’s query-time permissions under the real user’s identity address that last requirement. The answer is a layered model, not a winner between two acronyms.

Why AI agents stress access control in ways human users never did

A human logs in occasionally and usually follows a predictable job function. An agent can act continuously across systems and choose its next step from its instructions and the data it encounters. Runtime non-determinism leaves that sequence unknown before the run begins, even to the person who wrote the prompt, so access requirements cannot be fully described in advance. With too little access, an agent can get stuck halfway through a legitimate task, while too much access lets it use sensitive tools for tasks that never needed them.

A 2026 Cloud Security Alliance study found that 92% of large-enterprise CISOs and CIOs cannot see all of their AI agent identities, and most machine identities are outside any governance framework. An agent may act for a user, have delegated credentials, and spawn sub-agents. That creates a chain of authority rather than a single caller, yet no existing IAM framework has a purpose-built representation for the whole chain.

A grant that a human uses occasionally becomes standing privilege that an agent can invoke thousands of times an hour. The risk comes from the combination of speed, uncertain scope, and delegated identity. Authorization therefore has to account for the actual user and request at runtime, rather than treating an earlier role assignment as enough.

How RBAC works and what it was actually designed to handle

RBAC organizes access around three components, namely users, roles, and permissions. A role has the permissions needed for a job, and users get those permissions through role membership. Assign the role and its permissions follow automatically. Revoke it and those permissions go away. This is a well-engineered answer to managing users whose work is stable enough to describe in advance.

That structure makes day-to-day administration easier because teams can grant permissions without deciding on each one. Onboarding becomes a role assignment, and offboarding becomes a role revocation. Auditors can review thousands of grants made one at a time through role checks. Constrained RBAC also supports separation of duties, preventing conflicting responsibilities from being combined in regulated workflows. These benefits remain substantial when the caller is an agent.

The four NIST levels are flat, hierarchical, constrained, and symmetric. They add capabilities for more complex organizations without changing the model’s foundation. Permissions still derive from role membership independently of the circumstances of each request. RBAC also has a known limit that predates agents, which is role explosion. As exceptions accumulate, teams create finer roles until the matrix becomes difficult to maintain. The model works best when job boundaries remain clear enough that every exception does not need its own role.

Where RBAC's static model breaks under agentic conditions

Giving an agent a role makes that role available whenever the agent acts, without a human initiating each use. The permissions may be correct for the job as a whole but excessive for the current task. An agent that handles support tickets for both enterprise and free-tier customers can run into this mismatch. A role broad enough for both over-provisions every free-tier task. With a narrower role, the agent may be unable to finish enterprise work.

Runtime non-determinism makes that mismatch harder to resolve at setup. The role must be defined before anyone knows what a particular run will require. A single-prompt task might touch the CRM, the issue tracker, billing, and email. A role covering that entire route grants the same breadth to future runs, whether they need it or not.

A trusted agent can be manipulated into using its standing role on an attacker’s behalf. The role itself is valid, but the context in which it fires is wrong. Sharing human credentials makes matters worse because agent access cannot be scoped, audited, or revoked independently. Tying the role to a shared service account also leaves out the real delegating user when deciding on access.

NIST SP 800-207 requires dynamic least-privilege enforcement and minimized standing access. Static RBAC cannot meet that requirement alone. Query-time identity evaluation, including the approach used by Peaka, restores the actual user to the decision. It closes the identity gap, but another check is needed to tell whether an action serves the assigned task.

How ABAC works and what it genuinely adds for agents

ABAC evaluates each request using attributes of the subject, the resource, the action, and the environment. A rule might permit a finance-department agent to read documents classified as financial during business hours from a managed device. All those conditions are evaluated together when the request arrives.

For agents, this adds the context that static roles lack. The operating tenant, the delegating user’s clearance, the resource’s sensitivity classification, and the time of day can inform one decision. Access can narrow or widen as those conditions change. A role can then describe the job as a whole without giving every run every permission. Request-time evaluation also supports the dynamic least-privilege principle in NIST SP 800-207.

The cost is a more demanding policy system. As the number of attributes grows, rules can work together in unexpected ways, and it gets hard to test every combination. Policies must be maintained, versioned, and understood by the team defending them in an audit. Their inputs need governance too, since a user’s department may live in one SaaS tool, their project assignment in another, and their cost-center in a third. A semantic layer that makes scattered attributes queryable at authorization time can reduce that burden. It does not remove the need to keep the rules and their inputs current.

What ABAC still cannot see: purpose, aggregation, and the chain of accesses

A correct decision about one request does not prove that the whole workflow is allowed. An agent can decompose a sensitive operation into individually benign sub-tasks that each pass ABAC checks. Each access is valid in isolation, but their composition crosses a policy boundary. At the data level, fields allowed separately may produce a sensitive result when combined. Per-request attribute checks have no built-in model of that aggregate result or the chain that produced it.

ABAC can confirm that the caller is in finance and the requested file is financial. It can then approve a revenue report that the agent has no business reading for its current assignment. The attributes match, but the action does not serve the task. More context is useful only if the authorization model can connect it to what the agent is supposed to accomplish.

Zhu and Wang’s 2026 paper on authorization revocation shows how agents outlive the interaction that launched them through credentials, delegated tasks, queues, callbacks, reservations, and provider-side operations. Revoking a token does not stop a message already accepted by a queue or a sub-agent under an independent authorization root. Quiescence needs proof that every old-authority path that could lead to a future protected effect is closed.

Intent-Based Access Control (IBAC) is an emerging response to the purpose gap. It binds authorization to the current assigned task in addition to identity or attributes. People still disagree on what the term means, and products shipped under different definitions during 2026. Its label does not, by itself, establish control over aggregation or in-flight effects.

Why the right answer is a layered model, not a choice between RBAC and ABAC

RBAC supplies the structural baseline, which is a narrow, least-privilege role for a specific job. ABAC supplies the runtime decision about whether an action within that boundary is appropriate now. The role limits the universe of possible actions, while attributes govern use of those actions in the current run. Keeping those functions separate preserves role-level auditing without pretending that membership settles every request.

A practical authorization path verifies the agent, checks its role, evaluates the context, and then mints a short-lived scoped token. The token is issued per action from the combined RBAC and ABAC decision. When it expires, that access closes rather than remaining continuously available as standing privilege. This shifts least privilege from periodic reviews of permanent grants to decisions at agent speed.

Neither model supplies the whole architecture alone. RBAC has no per-action context, while ABAC alone has no role-based structure and does not take purpose or cross-request aggregation into account. Task-bound authorization checks whether the action belongs to the assignment, and data-layer enforcement must check what the authorized accesses produce together. Those controls supplement the role and attribute checks.

Revocation remains a separate responsibility in this model. It must be tracked for each workload as well as for shared service accounts. Zhu and Wang’s 2026 paper shows that correct token revocation can still leave in-flight effects alive. Closing those paths requires explicit quiescence certification across the carriers of delegated work.

Where the data layer fits: permissions must be enforced where data is combined, not only where it is stored

An identity-layer decision is only useful if the data layer can enforce it. Agents query across warehouses, SaaS tools, and operational systems, combining fields into results that source permissions may not individually prohibit. Sensitivity therefore has to be evaluated where the combination happens. Static pipelines with fixed schemas cannot, by themselves, satisfy that runtime requirement. The authorization boundary must follow the query across sources.

This also makes the identity used to execute the query decisive. If the data layer uses a broad service account, the agent appears as that account. The per-user context required by ABAC is lost at the point of access. Peaka enforces permissions at query time under the real user’s identity. That makes it a relevant option where user-scoped enforcement is needed, without treating it as a substitute for purpose checks or control of aggregate results.

Meaning is another part of data governance. Without defined metric meanings and field descriptions, an agent resolves ambiguity probabilistically, so different runs can answer the same question differently even when permissions are correct. A semantic layer can make that meaning explicit and unify scattered context for authorization. Freshness matters for the same reason, since a snapshot suitable for a dashboard may already be stale for an agent’s real-time decision. Live queries, rather than static exports, are therefore part of the data-layer requirement.

Deciding which model your agent deployment actually needs

First, assess how stable and predictable the agent’s task scope is. Fixed, non-overlapping jobs with a defined action set make RBAC the correct foundation, supplemented by per-action policy gates. RBAC alone cannot cover tasks that shift context, cross user tiers, or touch more than one system within a run. ABAC attributes need to govern each action.

The next check is whether the agent works across more than one system or data source at the same time. For a single-system agent with bounded actions, a sufficiently narrow role may cover the scope requirement. Work across systems brings an aggregation risk that requires attribute-level evaluation at each call across systems and data-layer enforcement where the results are combined. This distinction makes data access architecture part of the authorization decision.

Third, check whether tasks are long-running, asynchronous, or able to spawn sub-agents. For short, synchronous work, token expiry at action completion is sufficient to close that action’s access. Long-running or delegated work requires revocation to reach every in-flight carrier. Process exit and token revocation alone do not prove that future effects have stopped, so quiescence must cover every effect path. These conditions determine which layers a deployment needs. No single model covers them all, and treating the problem as RBAC versus ABAC misses the central point.

Sources

  1. Authorization Revocation for Long-Running AI Agents: Root-Scoped Quiescence under Delegation and Asynchronous Execution
  2. Authorization Propagation in Multi-Agent AI Systems: Identity Governance as Infrastructure

More in AI Data Governance