AI agent 凭证委托与 Token Vault Proxy:Git、MCP 和第三方 API 如何安全交给系统调用

HTMLPAGE 团队
17 分钟阅读

让 AI agent 直接接触真实 token,通常只是把问题往前推。本文讲清 scoped credential、vault proxy、Git 凭证注入和 MCP 代理模式,帮助你把权限交给系统而不是交给模型。

#AI agent #Credential Delegation #Token Vault #工程实践

只要 AI agent 开始动真格,它迟早要访问 Git 仓库、MCP 服务、云 API、内部后台或第三方系统。很多系统的第一反应很直接:把 token 放进环境变量,然后让 agent 在需要时去读。

这套做法的问题不在“能不能跑起来”,而在于它默认接受了一个危险前提:生成出来的代码、prompt 注入内容、第三方工具和模型自身,都不会碰这些凭证。这个前提在真实系统里几乎站不住。

更稳的方式不是“把 token 藏深一点”,而是做 credential delegation:凭证属于系统,不属于 agent;agent 只能提交一个受控动作请求,由 vault proxy 代它完成认证与调用。建议先结合 AI agent 数据脱敏实践AI agent 安全与权限边界AI agent Tool Registry 治理AI agent Policy Engine 规则分层 一起看。

Secrets 不该跟着 agent 一起进沙箱

最危险的做法,是把下面这些东西都放进同一环境:

  • 可执行代码
  • 生成中的草稿
  • 可读写文件系统
  • 长期有效凭证

这样一来,任何一个 prompt injection、工具越权或生成代码自检脚本,都可能顺着运行环境把 token 带出去。问题不在模型是不是“恶意”,而在系统根本没设计边界。

更稳的做法:凭证随资源走,agent 只拿到能力,不拿到秘密

一个可执行的最小模型通常包含三层:

层级负责什么
vault存放真实凭证、轮转密钥、吊销与审计
proxy根据 session 或 run 的受控身份代发请求
agent提交动作意图,例如 clone、push、call tool

这意味着 agent 知道“我可以对 repo A 执行 push”,但它不知道 push 用的 token 长什么样。

例如 Git 场景里,更稳的做法是:在 sandbox provisioning 时把远端凭证注入到 git remote,agent 只能执行 git push,却拿不到裸 token。MCP 场景里,则由代理层根据 sessionId 去 vault 取对应 OAuth 凭证,再代发给外部系统。

失败案例:排查脚本打印了环境变量,结果把内部 token 带进日志

一次常见事故发生在调试阶段。团队让 agent 在 sandbox 里运行诊断脚本,脚本为了排查配置问题打印了大量环境变量,CI 日志随后被观测平台完整采集。最后导致的不是代码错误,而是内部 token 出现在了日志系统里。

这个事故说明了一个经常被低估的事实:就算没有恶意 prompt injection,只要 token 进了执行环境,它就迟早会遇到“被脚本误打出来”“被工具上报出去”或“被异常堆栈带出”的风险。

真正的修复动作通常是:

  • 长期 token 不进入 sandbox
  • sandbox 只拿到一次性或作用域极小的 delegated capability
  • 所有对外动作都走 proxy,并在 proxy 层打审计日志

凭证代理要解决的不只是安全,还有解释性

很多系统把 credential delegation 理解成“别泄露 token”。这当然重要,但还有一个同样关键的收益:可解释。

当一次外部动作发生时,系统最好能回答:

  • 是哪个 run 发起的
  • 用的是哪类能力,而不是哪串秘钥
  • 动作是否经过 policy 审批
  • 凭证 scope 是否匹配当时的权限边界

如果你只能知道“某个 token 调了某个 API”,而不知道“哪次 agent 任务在什么规则下触发了这次调用”,那仍然很难做追责与回滚。

Credential Delegation Checklist

  • 长期凭证是否保存在 vault,而不是执行环境
  • agent 是否只拿到 capability,而不是裸 token
  • Git、MCP、第三方 API 是否都经过 proxy 层中转
  • 代理层是否按 session/run 做审计记录
  • 凭证 scope 是否足够细,而不是全能 token
  • 异常日志、诊断脚本和工具结果是否不会输出真实密钥
  • 权限吊销或轮转后,旧会话是否能被及时收紧

这件事真正保护的是什么

Credential delegation 保护的,不只是秘钥本身,而是系统的信任模型。只要 token 还跟着 agent 一起在沙箱里跑,任何关于“权限边界”“最小授权”“可审计调用”的承诺都会被打折。把秘密留在系统,把动作能力交给 agent,才是更接近生产级的做法。

延伸阅读: