AI 简明手册
Agent 工程:从能跑到可控 · 把危险动作关进边界把代码和密钥分开:沙箱与凭据隔离

把代码和密钥分开:沙箱与凭据隔离

定义

凭据隔离与受限执行先把 Agent 的攻击面收窄:长期密钥留在执行环境之外,由受控代理按需使用;沙箱只获得完成任务所需的文件、网络和进程权限。即使模型受恶意输入影响,可造成的后果也会被结构性边界限制。

先搭一个心智模型

Sandbox 是受限工位,凭据代理是带锁的钥匙柜。Agent 可以申请完成任务所需的动作,但不应直接拿到能复制和外传的长期密钥。

说明

若代码执行环境同时能读取 API key、OAuth Token 或云凭据,Prompt Injection 可能诱导 Agent 通过命令、日志或网络请求泄露它们。更稳妥的设计是让执行环境只能请求被授权的操作。

资源绑定与 Vault 代理都是可选实现:代理在边界外保存凭据,验证目标与权限后代为调用;Agent 只看到业务结果,不接触密钥值。

文件、网络、进程和工具权限应按任务最小化,高影响动作再叠加人工审批、审计和可恢复机制。具体隔离强度取决于威胁模型。

跟着一个例子走

Agent 需要调用支付测试接口

任务要运行生成的代码并访问受保护服务,同时仓库内容不能被完全信任。

  1. 代码在隔离环境执行

    限制文件挂载、网络目的地、进程和资源,失败时可销毁重建。

  2. 凭据由外部代理使用

    Agent 提交受约束请求,代理完成签名或短期令牌交换,不暴露长期密钥。

  3. 副作用经过策略门

    即使 Sandbox 被绕过,服务端仍核验身份、范围和审批状态。

回到概念

隔离执行与隔离凭据要同时做;把密钥放进容器环境变量并不等于模型无法读取。

边界与误区

  • Agent 越聪明为什么安全问题越严重: 能力更强的 Agent 工具调用能力更强,攻击者说服它执行恶意操作的途径更多。旧架构下模型能看到的凭证恶意代码也能看到。

  • 为什么结构性安全比提示词安全更可靠: 提示词安全依赖模型自觉,而模型可能被注入攻击完全控制。结构性安全通过设计让攻击在物理上不可能,即使模型被控制也拿不到凭证。

来源与核验

  1. [anthropic-containment] Anthropic:How we contain Claude across products
  2. [anthropic-sandboxing] Anthropic:Claude Code sandboxing

核验日期:2026-08-31