c5.1 Give each agent its own scoped identity
Establish distinct identities for the three authentication points (user invoking the agent, agent accessing tools, tool accessing downstream systems) so an agent never inherits an over-permissive human identity.
Implementation guidance
How to implement on AWS
Configure inbound auth with AgentCore Identity (AWS credentials or OAuth 2.0; Cognito integrates natively). Limit who can call InvokeAgentRuntime with IAM conditions on the agent ARN. Give the agent its own identity for tool access, separate from the user's, and a distinct identity store for gateway calls.
Acceptance criteria
User, agent, and tool authentication are separate; InvokeAgentRuntime is restricted by IAM condition on the agent ARN; the agent uses its own identity, not the user's.
Practical implementation
How this control is implemented in each reference architecture:
The three authentication points are separated: users authenticate at the Application account, and the agent holds its own identity in the Generative AI account for tool and gateway calls.
- Configure inbound auth with AgentCore Identity (AWS credentials or OAuth 2.0; Cognito integrates natively) so the user authenticates at the Application account edge.
- Restrict who can call InvokeAgentRuntime with an IAM condition on the agent ARN, so only the authenticated app path can start the agent.
- Give the agent its own identity for tool access (separate from the user's) and a distinct identity store for gateway calls.
How to validate: User, agent, and tool authentication are separate; InvokeAgentRuntime is restricted by IAM condition on the agent ARN; the agent uses its own identity, not the user's.
Avoid: Letting the agent act as the invoking user. The agent then inherits that human's full permissions; give it its own scoped identity for each hop.
User, agent, and tool identities are kept distinct within the account, and InvokeAgentRuntime is gated by an IAM condition on the agent ARN.
- Set up inbound auth with AgentCore Identity (Cognito native) so users authenticate before the agent runs.
- Restrict InvokeAgentRuntime with an IAM condition on the agent ARN.
- Give the agent its own identity for tool/gateway access, separate from the user's.
How to validate: User, agent, and tool authentication are separate; InvokeAgentRuntime is ARN-conditioned; the agent uses its own identity.
Avoid: One identity shared across the user and the agent. Separate the three authentication points so no hop inherits more than it needs.
Threats addressed
- An agent acting with a copy of a user's overly-permissive identity.
- Confused-deputy across a multi-agent chain where each hop lacks its own identity.
AWS services
Framework mappings
OWASP GenAI/LLM Top 10 (2026)
- LLM03 Excessive Agency
NIST AI Risk Management Framework (AI 100-1)
- GOVERN.1 Policies, processes, procedures and accountability structures
- MANAGE.1 AI risks are prioritized, responded to and managed
AWS Well-Architected Generative AI Lens (Security)
- GENSEC05-BP01 Implement least privilege and permission boundaries for agentic workflows
OWASP GenAI Top 10 for Agentic Applications (2025)
- ASI03 Identity and Privilege Abuse
Learning resources
References
- AWS SRA for AI — Capability 5, Identity and access management
AI Security Maturity Model