Secure AI agent deployment checklist (pre-deployment)

Before an autonomous agent touches production, run a deployment-readiness pass that proves least privilege, isolation, monitoring, and oversight are in place end-to-end. The framing here maps to the NIST AI Risk Management Framework (Govern, Map, Measure, Manage) and the OWASP LLM Top 10 (2025), and reflects practitioner checklists such as Aona's 40+ item template and Skywork's agent-safety blueprint (Aona — AI Agent Deployment Checklist; Skywork — Agentic AI Safety). See also AI agent security risks for the failure classes this checklist defends against.

1. Pre-deployment threat model & access scoping

  • Threat model signed off — document attack vectors specific to the agent's role: data exfiltration, prompt injection, privilege escalation, lateral movement (Aona).
  • Data classification reviewed — label every source the agent touches (public / internal / confidential / regulated PII-PHI-PCI).
  • Least privilege applied — grant only the minimum permissions for the defined task; remove inherited or default permissions; default to read-only, require justification + approval for writes (Skywork).
  • External API access allowlisted — enumerate every external API; block all others at the network or policy layer; review quarterly.
  • Network exposure scoped — zero-trust micro-segmentation; the agent reaches only what it needs.

2. Identity, secrets & integration security

  • Unique workload identities — assign each agent/tool a distinct identity (e.g. SPIFFE/SPIRE SVIDs, mTLS); never share credentials with human users.
  • Secrets in a manager — all credentials in Vault/Secrets Manager; no hardcoded keys; rotate on a schedule (90 days recommended) and test graceful rotation.
  • Short-lived, zero standing privilege — minimize what an attacker could steal if a token leaks.
  • Dependency scan — run SAST/SCA; block deploy on unpatched critical CVEs; validate webhook signatures.
  • Signed tools/plugins — verify signatures (Sigstore/Cosign) before an agent loads or invokes a tool; this is the practical defense against tool poisoning (Skywork).

3. Behaviour boundaries & guardrails

  • Prompt-injection controls active — input sanitization for all user-supplied and retrieved data; test with adversarial inputs before go-live; never trust user input (Aona).
  • Output filtering implemented — scan every output for PII, secrets, and policy violations via a dedicated layer, not just prompting.
  • Action-scope limits enforced — prefer explicit allow-lists over block-lists; restrict tool calling to defined scope.
  • Human-in-the-loop triggers defined — pause and escalate for high-value transactions, ambiguous instructions, low confidence, or novel situations.
  • Refusal logic tested — verify the agent refuses out-of-scope requests, harmful prompts, and role-play attempts; document edge cases.

4. Monitoring, audit & containment

  • Session logging enabled — log every session: inputs, tool calls, outputs, latency, token counts, user IDs; store tamper-evident (Aona).
  • Tool calls as first-class telemetry — alert when a destructive tool fires without confirmation, or when a read in scope A is followed by a send in scope B (Aviatrix — Living-off-the-Agent).
  • Sandboxing & egress allowlists — contain autonomy (microVMs / gVisor); lock down outbound domains.
  • Incident response rehearsed — know how to revoke tool credentials, quarantine a tool/MCP server, trace the call chain, and rotate secrets.

5. Adversarial test before go-live (honestly)

Run a red-team pass for prompt injection, data exfiltration, and tool abuse; fix findings and retest before going live (Skywork). AgentRedTeam runs automated adversarial simulations against your agent and returns a prioritized vulnerability report to feed this step — but it is a simulation/scanning tool, it does not guarantee finding every vulnerability, and it is not a substitute for a formal security audit or penetration test. If you cannot show least-privilege scopes, isolation, traced logs, and HITL approvals working end-to-end, the agent is not ready. Also see the LLM red-teaming guide.