
Orca Security: AI Agents Security
Orca Security lays out a framework for securing AI agents as distinct security objects, arguing an agent's permission set can't be read off its code because it picks tools at runtime, unlike a fixed service account. It details identity-layer fixes from major providers — Microsoft Entra ID's blueprint/service-principal split, Google Cloud's per-agent SPIFFE/X.509 identity with 24-hour certs, and AWS Bedrock AgentCore's token-exchange delegation via RFC 8693 — plus OWASP's AI Agent Security Cheat Sheet practices (tool least privilege, memory isolation, approval gating, attribution logging) and EU AI Act Article 12 logging obligations for high-risk systems.
What it is
Orca Security's guide to treating a single AI agent as a security object bounded by four lifecycle events — issuance, scoping, rotation, offboarding. The summary already has the provider identity mechanics (Entra, Google SPIFFE/X.509, Bedrock AgentCore) and the OWASP/EU AI Act references. What it does not carry are the concrete procedures and caveats below.
What to do
Decommission in a fixed order — revoke before delete. Deleting the deployment first leaves a working credential with nobody watching it. The stated sequence:
- Disable the identity and confirm its tokens now fail (verify against the credential, not the deployment).
- Remove tool registrations, the memory store, and any object that could reissue a credential.
- Keep the audit records — the agent's history outlives the agent.
Put an explicit IAM deny on the userId token path in AWS. When a Bedrock AgentCore agent requests a workload access token by user identifier, "the platform treats the userId as an opaque string and cannot verify it against an authenticated end-user identity." AWS recommends an explicit IAM deny on that action for workloads that always have a JWT available.
Prefer delegation over impersonation in RFC 8693. Under impersonation "A is B"; under delegation "A still has its own identity separate from B" and the token names both parties. Require the may_act claim, which authorizes one party to act on behalf of another; the authorization server checks it before agreeing to the exchange. The delegated record survives the call — impersonation loses the actor.
Scope tools by path and pattern, not wildcard. OWASP's concrete example: replace a shell tool with allowed_commands=* with a file reader scoped to /app/reports/*, read-only, blocking *.env, *.key, *.pem, and *secret* by pattern.
Default to a read-only identity. A research/reporting agent needs no write path; when it must file the ticket it drafted, give it a second identity holding one write scope rather than widening the first.
Security-testing agents: same controls held tighter — an offensive agent's requests look like an attack, removing your easiest detection signal. Scope to a target list, run under an identity that cannot reach production data, and record the authorization per engagement.
Caveats
The page states its own limits per control: tool least privilege "does nothing about a harmful argument passed to a permitted tool"; memory isolation doesn't cover data the agent legitimately read this session; classification "says nothing about what an aggregate of permitted facts reveals." Orca itself sits at the cloud-estate layer underneath the agent — it does not inspect tool calls or enforce in-policy decisions; those controls belong in the application next to the agent.
Risk ordering worth keeping
Rank risks by what survives when the agent is idle: an over-scoped credential keeps working while the agent sleeps, so it outranks prompt injection, which needs a live session.
Organisations named here
- AI Control Roadmap
Technologies named here
- Microsoft Entra ID
- Orca
- Open Policy Agent
- Google Agent Identity
- OWASP AI Agent Security Cheat Sheet
- Amazon Bedrock AgentCore Identity
- OWASP Non-Human Identities Top 10
- AWS workload access token
- Google DeepMind AI Control Roadmap
- RFC 8693
- AWS Bedrock
- Google Cloud
- Orca Security
- EU AI Act
Techniques named here
- Inherited overly broad credentials
- Secrets exposure in runtime
- Overly broad tool registration
- Memory poisoning
- Supply chain attack via agent skills/connectors
- Unscoped data reachability
- Prompt injection via retrieved context
- Privilege escalation via delegated authority
Related in AI Security
