Identity and Access in Agent Systems
A shared service account can compromise the compliance posture for material non-public information because reads run under an identity that is not a person.
The Default That Looks Clean
When a team builds software that uses an AI agent, one design decision comes up early: which identity should the agent's calls run under? A single shared service account looks clean. It is one credential, one set of permissions, and one place to manage access. For many engineers it feels like the obvious default.
This article examines why that default can fail in a regulated setting. The core point is that identity is not just a setup detail. In a compliance context it is a requirement, because the record of who did what must be able to name a person.
What do you think happens?
An analyst asks an agent to summarize a restricted research note about a security. The agent reads the note from the data store. Which identity should the audit record name as responsible for that read?
Reveal answer
The analyst who asked for the summary, the human responsible for the read.
The source states that audit trails must tie read events to the human responsible. A service account is not a person, so an entry that names only the service account cannot answer who read the sensitive information.
The Rationale Behind the Shared Account
The belief that a shared service account is sufficient for compliance rests on a reasonable-sounding rationale: the agent is the system, not the user, so the agent's calls should carry the system's identity. This treats the agent as a neutral tool that acts on its own behalf.
Keep that rationale in mind, because the question is not whether the architecture is tidy or whether the agent is technically a system component. The question is what the audit record says afterward when someone asks who read a piece of sensitive information.
A useful way to see the problem is to compare two identities on the same read. In the first, the read runs under a shared service account that many people and many agent calls use. In the second, the read carries the credentials of the individual person who asked for the work. The data store is reached in both cases, and the note is returned in both cases. The difference lies only in what the record can say afterward.
Following a Read Through the Agent
Trace a single request step by step. An analyst asks the agent for a summary. The agent then reads the research note from the data store. The question to ask at each handoff is which identity travels with the request.
Step 2 is where the identity is lost. The analyst's request reaches the agent with the analyst's intent attached, but the source describes the original design in which all of the agent's calls ran under one service-account identity. By the time the data store receives the read, it sees only the service account. Nothing in that read tells the store, or a later auditor, which analyst asked for it.
A Case That Failed Review
The source describes a global asset manager that deployed an investment-research summarization agent. The original architecture used a single service-account identity for all of the agent's calls. The customer's CISO rejected this design after a short review.
Her concern was specific. An analyst might use the agent to summarize a research note about a security for which that analyst held material non-public information. The read of that note would then be recorded, but the audit trail would not, in practice, tie the read to the analyst.
What Each Read Event Must Record
An audit trail is useful for compliance only when it answers a question about accountability. For a sensitive read, the question is which human was responsible for that read. Recording that a call occurred, or that an agent performed some work, does not answer that question.
Identity is what makes the tie possible, because the identity attached to an event is what the record later reveals. For the log to answer who accessed material non-public information and on whose behalf, each read event needs to carry enough information to name the resource, the actor that performed the read, the human responsible, and the time.
Evaluating an Architecture by Tracing Reads
When you evaluate an agent architecture, do not stop at asking whether access is authorized, or whether an event was logged. Check whether each sensitive read can be attributed to a human. Walk through every read path the agent uses, and for each one ask whether the record can name the person responsible.
- 1Identify every read of sensitive information the agent can perform.
- 2For each read, find the identity that the data store actually receives.
- 3Check whether that identity is a person or a shared non-person account.
- 4Check whether the record also names the human responsible for the read and the time.
- 5Mark any read that cannot be traced to a person as a failure of the architecture, even if it was authorized and logged.
A log for a read of a restricted research note shows only the agent's shared service account, the resource, and a timestamp. Can this read be traced to a person? Explain your answer using the audit requirement, and say what the architecture would need to change.
Hints
- Ask whether the record can name the human responsible, not only the actor.
- The source says the identity attached to each read event must be able to name that person.
- Think about whether the fix is a logging change, an identity change, or both.
Mistakes Teams Make With Agent Identity
Common mistake Treating the agent as the system, so its calls should carry only the system's identity
Why it failsThe source identifies this as the rationale behind the misconception. It answers a question about the architecture rather than the question the audit record must answer, which is who read the sensitive information.
Do this insteadAsk which person the read is on behalf of, and make that person's identity part of the read.
Common mistake Assuming that a log entry is enough for compliance
Why it failsThe CISO's concern was that a log entry existed but pointed at a service account, which is not a person.
Do this insteadVerify that the entry names the human responsible, not only that something was recorded.
Common mistake Assuming that authorized access means the read is compliant
Why it failsThe source's evaluation check is whether each sensitive read can be attributed to a human, not only whether access is authorized.
Do this insteadTest attribution separately from authorization for every sensitive read path.
Common mistake Choosing a shared account because it is one credential and one place to manage access
Key Takeaways
- A shared service account can compromise the compliance posture for material non-public information because reads run under an identity that is not a person.
- Audit trails must tie read events to the human responsible, so the identity attached to each event must be able to name that person.
- A log entry that exists is not sufficient; the entry must allow an auditor to name the person behind the read.
- When evaluating an architecture, check whether each sensitive read can be attributed to a human, not only whether access is authorized or an event was logged.