AI Agent Governance

AI Agent Access Control: Build a Permission Envelope

For the system or process owner deciding what an agent may reach: a six-part permission envelope and a test that exposes borrowed identities and excess authority.

Uli PrantzBuilds and operates all-agents
Published
Key takeaways

Key takeaways

  • Give each production agent a distinguishable non-human identity. Borrowing a user's session hides which actor performed the action and inherits permissions unrelated to the task.
  • Scope access across resource, action and context. Permission to update a CRM is too broad; permission to update named fields on assigned records during one approved job is testable.
  • Separate read, propose and execute. Many useful agent steps need broad reading and narrow writing, with consequential execution behind a person or deterministic policy.
  • Grant for the run when possible and revoke on completion, expiry or retirement. Standing credentials turn a one-hour task into an open-ended blast radius.
  • Log both allowed and denied authorization decisions with the identity, requested action and policy version. Denials reveal permission drift before an incident does.
AI agent access control is the enforced boundary around one agent's identity: which resources it may reach, which actions it may request, which records or fields it may touch, under what run context, for how long, and when a person must authorize execution. Write those six parts as a permission envelope. “Same access as the operator” is not an envelope; it is an unmeasured inheritance of everything that operator can do.

Start with a distinguishable agent identity

An agent may act for a person without becoming that person. NIST's 2026 concept paper frames identification, authentication, authorization and delegation as separate questions for software and AI agents. That separation is useful: the event should say which non-human identity called the tool and which user or process delegated the task.

Reusing a human session breaks that chain. The destination system records the employee, while the orchestration layer records the agent, and neither can prove the relationship alone. It also gives the run every unrelated permission the employee accumulated. Production access should use a managed, revocable identity that can be joined to the agent inventory and audit trail.

The six-part permission envelope

Write all six dimensions. A blank dimension usually becomes a broad default.
DimensionQuestionExample boundary
IdentityWhich agent and delegated principal are acting?supplier-intake-prod acting for process owner 17
ResourceWhich systems, collections and records are reachable?Supplier cases assigned to EMEA Operations
ActionMay it read, propose, create, update, send or delete?Read case; propose status and reply; cannot delete
FieldWhich attributes may be read or changed?May update triage fields; bank fields are excluded
ContextWhich run, purpose, network or approval must be present?Only during an approved onboarding run with matching case ID
TimeWhen does the grant begin, expire and revoke?Issued for the run; expires after 30 minutes or on completion

NIST SP 800-53's least-privilege control is older than modern agents and still does the essential job: authorize only what is necessary for assigned tasks. The hard part is not agreeing with the principle. It is writing “necessary” at resource and action level before the run starts.

Separate read, propose and execute

Many workflows need wide enough read access to assemble context and very narrow authority to change the world. Treating a tool as one permission collapses those needs. Split it into read, propose and execute wherever the destination allows it; otherwise put an enforcement proxy in front of the broad credential.

Customer refund envelopeSimulated example data

The agent may read one customer's order, shipment and support case after the customer authenticates. It may calculate eligibility with deterministic rules and propose a refund with cited fields.

It cannot alter the payment account or execute a refund. A policy service checks amount and reason. Approved low-value cases may execute through a narrowly scoped refund action; everything else waits for a reviewer who sees the exact amount, destination and evidence.

The run's credential expires after use. A repeated request carries the same idempotency key, so a network retry cannot create a second refund.

Authorize the action at the moment it matters

  1. 01Resolve the identitiesCode
    Identify the agent, delegated principal, owning process and current run.
  2. 02Normalize the requested actionCode
    Convert the tool call into a stable verb, resource, fields and consequence tier.
  3. 03Evaluate policyCode
    Return allow, deny or approval-required with the matched rule and policy version.
  4. 04Bind approval to the proposalHuman approval
    Where required, approve the exact action and invalidate the decision if its payload changes.
  5. 05Issue or use the narrow grantCode
    Execute once with a short-lived credential or constrained proxy and retain the destination receipt.
  6. 06Revoke and recordCode
    Close the grant on completion or expiry and log allowed, denied and escalated decisions.

Test denials and revocation, not just the happy path

A permission review that only confirms intended access misses the edges most likely to fail. Run negative tests: another department's record, a forbidden field, an expired credential, a changed proposal, a tool added after approval and a retry after successful execution. Each should deny or route to a named approval state and write an event.

Review denials as product evidence. Repeated legitimate denials may mean the envelope is too narrow or the process specification is wrong. A sudden absence of denials after a policy change can be more worrying: the enforcement point may have disappeared.

Four red-team prompts for an access review and the required result.
AttemptRequired result
Use the owner's existing browser sessionBlocked; agent identity is required
Read an adjacent record to improve contextBlocked unless the record filter explicitly allows it
Reuse yesterday's approval after changing the amountBlocked; the proposal binding no longer matches
Call the tool after the run completedBlocked; grant expired and revocation is logged

Limitations and when not to use this

  • This is an architecture pattern, not a configuration guide for a specific identity provider or SaaS application. Available controls vary by destination.
  • Short-lived credentials reduce exposure but do not correct an overly broad permission during their valid window. Resource, action and field scope still matter.
  • Human approval does not replace authorization. The reviewer should not be able to grant an action outside the agent's maximum policy boundary.

Sources

  1. Software and AI Agent Identity and Authorization concept paperNIST NCCoE Accessed 29 July 2026
  2. SP 800-53 Rev. 5: security and privacy controlsNIST Accessed 29 July 2026
  3. AI Risk Management Framework CoreNIST Accessed 29 July 2026

Write one permission envelope

List one agent's identity, resources, actions, record filters, time limit and approval boundary, then remove every grant not used by the normal path.

Write one permission envelope
About the author

Uli Prantz

Builds and operates all-agents

Uli Prantz builds all-agents, the process-automation platform this site documents. He writes about the operational side of automating recurring business work: where deterministic code beats model judgment, where it does not, and where a human still has to approve.

Bring one process. We will scope it in 30 minutes.

You leave the call knowing whether it is a fit, what can become code and what still needs a person.

Book a discovery call