Identity in System Design
A complete audit log is not sufficient for compliance if its entries cannot identify the human responsible for each read.
A Logged Read That Still Fails
When a team builds an internal AI agent that reads documents on behalf of employees, one of the first decisions is how the agent should authenticate to the systems it touches. A common shortcut is to give the agent a single service account that every user shares. It is simple to set up, it needs no per-person configuration, and it appears to give the organization a complete log of what the agent accessed. This article examines why that shortcut can fail a compliance review, and what a stronger design looks like.
What do you think happens?
Suppose every action the agent takes is logged under one shared service account, and the log is complete and searchable. Does that satisfy the compliance requirement for reads of material non-public information?
Reveal answer
No, because the logs must identify the responsible person
Recording activity is not the test. For material non-public information, every read must be tied back to the human responsible for it, and a shared account hides that person.
The belief to challenge is this: if every agent action is logged under one shared account, the organization has an adequate audit trail. The logs exist, they are complete in the sense that each action is recorded, and they can be searched. For many purposes that is a reasonable starting point. For reads of material non-public information, however, the question an auditor asks is not whether a read was logged. The question is whether the read can be tied to the human who was responsible for it.
What the Requirement Actually Demands
A complete audit log is not sufficient for compliance if its entries cannot identify the human responsible for each read.
The compliance requirement for material non-public information is that every read event must tie back to the human responsible for it. Notice what the requirement does and does not demand. It does not say the system must avoid reading sensitive material, and it does not say the agent must be forbidden from summarizing notes. It says that when a read occurs, the record must make it possible to name the responsible person. Design decisions are judged against that test.
Tracing a Read Back to a Person
Think of the audit trail as a chain of links. Each link has to hold for the final log entry to point at a person. Starting from an analyst's request for a summary, the chain runs through the agent, the identity the agent uses, the access check against that identity, the read itself, and finally the log entry. The diagram below traces those links in order.
- 1The analyst asks the agent for a summary of a document.
- 2The agent receives the request, but the agent is not the party responsible for it.
- 3The agent acts under an identity. The design question is whether that identity belongs to the analyst.
- 4The access check tests that identity against what the analyst is permitted to read.
- 5The read happens, and the log entry records the identity that performed it.
- 6An auditor can name the analyst only if the identity in the final entry points at that analyst.
Where the Shared Account Breaks the Chain
Once the requirement is stated this way, the shared account fails for a structural reason rather than a technical one. The agent is performing the read, but the agent is not the responsible party. The analyst who asked for the summary is the responsible party. If the only identity visible in the record is the shared account, the chain between the analyst and the read has been cut.
The log still contains an actor field, and it is filled in. The problem is what the value says. Under a shared account, the actor value names the account, which many people use, rather than the one person who asked for the read. The table of fields below shows the difference in a single log entry.
Per-Analyst Agent Identity
The fix described in the source gave the agent a per-analyst identity. Each analyst's agent identity was scoped to that analyst's coverage universe, meaning the set of securities and research the analyst is responsible for. Crucially, the agent identity carried the same access controls as the analyst's own login. The agent therefore could not reach anything the analyst could not already reach, and every read it performed could be attributed to a specific person.
The two designs differ in one important place. The analyst exists in both and asks for the same summaries. What changes is which identity the system records when the read occurs. The per-analyst design moves attribution from an account that many people share to an identity that belongs to exactly one person. That single change restores the link the requirement depends on, and it does so without expanding what the agent can reach.
Worked Example: An Auditor Follows One Summary
Tracing a summary request in an audit
An auditor is handed a log entry showing that a restricted research note was read. The auditor must determine which person was responsible for the read. The agent in this system uses per-analyst identities scoped to coverage universes.
- 1Read the actor field
The actor field holds the identity the agent used for the read. Here it names one analyst's agent identity, not a shared account.
- 2Check the identity's scope
The identity is tied to that analyst's coverage universe. If the note falls outside that universe, the analyst should not have been able to reach it, and the access controls would have blocked the read.
- 3Match the identity to a person
Because the identity belongs to exactly one analyst, the chain from the read back to the responsible person is unbroken.
- 4Confirm the requirement
Every read event ties back to a named person, which is the test the compliance requirement sets.
The auditor can name the analyst responsible for the read, so the entry satisfies the attribution requirement.
Mistakes Teams Make With Agent Identity
Common mistake Treating a complete log as a compliant log
What it looks likeEvery agent read is recorded under one shared account, and the team considers the audit trail finished.
Why it failsThe requirement is that each read ties back to a responsible person. Completeness of records does not supply that link.
Do this insteadTest each log entry by asking which named person it points to.
Common mistake Assuming the agent is the responsible party
What it looks likeThe log names the agent as the actor and the team treats the agent as accountable for the read.
Why it failsThe agent performs the read, but the analyst who asked for it is the responsible party.
Do this insteadCarry the requesting analyst's identity through the agent so the entry points at that analyst.
Common mistake Giving the agent broader access than its user
What it looks likeA per-user identity is created but granted wider permissions than the analyst's own login.
Why it failsThe agent could then reach material the analyst cannot, which the source's design specifically avoids.
Do this insteadGive the agent the same access controls as the analyst's login, so it cannot reach anything the analyst could not already reach.
Common mistake Scoping the agent identity to too little, which blocks legitimate coverage work
Bringing Compliance Into the Design Review
The source scenario also shows a process lesson. The customer's CISO rejected the shared-account architecture in a single thirty-minute conversation. The team then spent two weeks reworking identity and shipped the deployment on schedule. The schedule held because the forward deployed engineer pulled the CISO into the design review in week one, instead of waiting for the validation review in week eight.
Had the objection surfaced at week eight, the same two weeks of identity work would have landed on a nearly finished system, and the rework would have threatened the delivery date. Raising the compliance concern at the design stage turned a late, expensive change into an early, cheap one. The source also reports that the two weeks of identity work paid for themselves later, when the compliance team had to evidence the audit trail for an SEC inquiry, by which point the agent had been in production for ten months.
Practice Tracing an Identity Chain
An analyst asks an internal agent for a summary of a restricted research note. The audit log shows the read was performed under a shared service account used by the whole team. Explain which link in the chain from request to log entry is broken, and describe the design change that repairs it without giving the agent more access than the analyst has.
Hints
- Follow the chain: request, agent, identity, access check, read, log entry. Find the first link where the analyst is no longer represented.
- The shared account is the identity in the actor field. Ask whether that value names one responsible person.
- The fix in the source is a per-analyst agent identity carrying the same access controls as the analyst's login.
At a glance
- A complete audit log is not sufficient for compliance if its entries cannot identify the human responsible for each read.
- For material non-public information, every read must tie back to a responsible person, so a shared service account fails even though it records activity.
- A per-analyst agent identity, scoped to the analyst's coverage universe and carrying the same access controls as the analyst's login, restores attribution without expanding the agent's reach.
- Involving compliance stakeholders in the design review early keeps identity and audit changes inexpensive compared with raising them late.