Building a Zero-Trust Agent Identity and Permissions Model for Financial Services
Every architectural pattern discussed so far in this series — guardian agents, tiered decisioning, human-in-the-loop checkpoints — rests on an assumption that’s easy to take for granted and genuinely hard to engineer correctly: that the system always knows, with certainty, which specific agent is taking a given action, under what authority, with what permissions, and that those permissions are actually enforced rather than merely documented. As agent ecosystems grow from a handful of carefully reviewed deployments into dozens or hundreds of agents built by different teams, this assumption stops being something you can informally maintain and becomes a genuine identity and access management architecture problem — one that the financial services industry’s existing zero-trust security thinking maps onto surprisingly well, with some important agent-specific extensions.
Why Traditional IAM Models Don’t Fully Transfer
Traditional identity and access management was built around two categories of identity: human users (authenticated via credentials, increasingly with multi-factor authentication) and service accounts (typically static, broadly-scoped credentials used by applications to call other systems). Neither category fits an agent particularly well.
Agents differ from human users in that they act continuously, at machine speed, often initiating actions without a discrete, observable “login” moment a security system can anchor a session to. They differ from traditional service accounts in a more important way: a service account’s behavior is fully determined by the application code that uses it — predictable, auditable by reading the code. An agent’s specific behavior, by contrast, emerges from a reasoning process that isn’t fully predictable in advance, which means the traditional service-account assumption — “we know exactly what this credential will be used to do, because we wrote the code” — doesn’t hold in the same way.
This is the core problem zero-trust agent identity architecture needs to solve: granting agents enough access to do genuinely useful work, while constraining what they can do tightly enough that an agent’s own reasoning process — which might behave unexpectedly, might be manipulated by adversarial input, or might simply make a mistake — can’t cause damage beyond a well-understood, bounded blast radius.
Core Principle: Per-Agent, Not Per-Application, Identity
The foundational architectural decision is granting each agent its own distinct, individually-scoped identity, rather than having a fleet of agents share a single broad service credential the way a traditional application might. This might sound like unnecessary granularity, but it’s what makes the rest of the architecture possible: without distinct per-agent identity, you fundamentally cannot answer “which specific agent took this action” with confidence, you cannot apply different permission scopes to different agents performing different functions, and you cannot revoke one agent’s access without affecting every other agent sharing its credential.
In practice, this means treating each domain agent from the reference architecture discussed earlier in this series — the KYC agent, the fraud-screening agent, the underwriting agent — as its own distinct identity within the institution’s identity management system, with its own credentials, its own permission grants, and its own audit trail, exactly as a financial institution would treat distinct human roles rather than giving every employee the same generic login.
Core Principle: Least Privilege, Scoped to Specific Actions
Each agent identity should be granted the narrowest set of permissions that allows it to perform its specific function — not broad access “in case it’s needed later.” A KYC verification agent needs read access to submitted documents and write access to create a verification result; it does not need read access to a customer’s full transaction history, and granting it that access “for convenience” creates an unnecessary risk surface with no corresponding benefit to the function it actually performs.
This principle interacts directly with the guardian agent pattern from the Intermediate series: well-scoped permissions and guardian review are complementary, not redundant. Tight permission scoping limits what an agent is even capable of attempting; guardian review catches inappropriate actions within whatever scope the agent does have. A system relying on guardian review alone, with overly broad underlying permissions, is weaker than one combining both — if the guardian layer has a gap or fails, overly broad permissions mean the resulting damage potential is much larger than it needed to be.
Core Principle: Continuous Verification, Not Perimeter Trust
Zero-trust architecture’s central tenet — never trust based on network location or prior authentication alone, verify continuously — applies directly to agent ecosystems. An agent that successfully authenticated at the start of a session shouldn’t be implicitly trusted for every subsequent action for the duration of that session, particularly for long-running agent processes that might continue for hours or days. Mature designs re-verify an agent’s authority at each significant action, particularly any action crossing into a higher sensitivity tier than the agent’s routine operations, rather than relying on a single initial authentication to implicitly authorize everything that follows.
This also extends to verifying the integrity of the agent’s reasoning context, not just its identity credential — a topic that connects directly to the prompt injection and memory poisoning risks covered in a later post in this series. An agent can have a perfectly valid, correctly-scoped identity and credential, and still be manipulated into attempting an action outside its intended purpose through adversarial content in its input. Identity and permission architecture constrains the blast radius of such an attack; it doesn’t, by itself, prevent the attack from being attempted.
Designing the Permission Model: A Practical Structure
A workable permission model for an agent ecosystem typically needs several distinct dimensions, not a single flat access-control list:
Resource-level scope — which specific systems, databases, and APIs an agent can access at all, mapped directly to the abstraction layer discussed in the core banking modernization reference architecture.
Action-level scope — within an accessible resource, which specific operations an agent can perform (read-only access to transaction history versus the ability to initiate a transaction are meaningfully different grants, even against the same underlying resource).
Magnitude limits — quantitative ceilings on the scale of any single action or cumulative actions within a time window (a payments agent might be permitted to initiate transfers, but only up to a defined per-transaction and per-day aggregate limit, beyond which the action requires escalation regardless of how confident the agent’s reasoning appears).
Delegation boundaries — explicit rules about whether, and how, an agent can invoke or delegate to other agents (relevant directly to the A2A interoperability discussed earlier in this series), since uncontrolled delegation chains can otherwise become a way for cumulative permissions to silently exceed what any single agent in the chain was individually granted.
Auditability: Designing for “Who Did What, Under What Authority, Why”
A zero-trust agent identity architecture needs to produce an audit trail capable of answering, for any historical action, several distinct questions: which specific agent identity performed this action; what permission grant authorized it; what input or context led the agent to take this action; and whether any guardian or human checkpoint reviewed it before execution. This is a meaningfully richer audit requirement than traditional application logging typically provides, and it needs to be designed as a core architectural requirement from the outset — consistent with the broader theme, repeated throughout this series, that governance and audit infrastructure retrofitted late is dramatically more expensive than governance designed in from the first deployment.
Credential Management for Non-Human, Continuously-Operating Identities
Agent credentials need lifecycle management appropriate to entities that operate continuously and at scale, rather than the human-oriented patterns (periodic password rotation, manual access reviews) traditional IAM systems were built around. Practical patterns that have emerged across the industry include short-lived, automatically-rotated credentials issued per session or per task rather than long-lived static credentials; automated, policy-driven access reviews rather than manual quarterly attestations, given the sheer number of distinct agent identities a mature deployment can accumulate; and immediate, automated revocation capability the moment an agent is decommissioned, modified beyond its originally-reviewed scope, or found to be behaving anomalously.
The Organizational Dimension: Who Owns Agent Identity Governance
A purely technical solution to this problem, without a corresponding organizational owner, tends to drift out of alignment with actual risk over time — new agents get deployed faster than the governance process can review them, or existing agents’ permissions quietly expand without a formal re-review. Mature institutions are increasingly establishing an explicit governance function — sometimes within existing IAM or security teams, sometimes a new function entirely — specifically responsible for agent identity and permission lifecycle, with real authority to block a new agent’s deployment until its permission scope has been properly reviewed, mirroring the existing organizational pattern most financial institutions already have for reviewing new human access requests to sensitive systems.
Coming Up Next
Identity and permissions constrain what an agent is allowed to do. They don’t, by themselves, address what happens when an agent’s own reasoning is manipulated into misusing the permissions it legitimately holds. The next post addresses that directly: defending against prompt injection and memory poisoning in multi-agent banking systems.
