跳转到内容
全部开发指南

AI Agent 会泄露密钥?用 Infisical Agent Vault 让真 key 不进上下文

AIGoCode发布于 更新于

Infisical Agent Vault 封面

新人入职第一天要跑通本地项目,第一件事常常是找人要 .env。有人从聊天工具发过来,有人甩一个压缩包,里面是数据库密码、支付网关密钥、一串第三方 token。这份文件开始在几台电脑之间复制,谁手里有哪一版、哪一版过期了,没人说得清。

Infisical 管的就是这摊事:开源密钥管理平台,除了环境变量,还覆盖内部证书和数据库、服务器的特权访问。后端主要是 TypeScript,数据落 Postgres,可用 Docker Compose 自建,也有托管版。截至 2026 年 10 月,主仓库 Infisical/infisical 的 GitHub star 约在 3 万量级。

更关键的是它给 AI Agent 补的一刀:配套的 Agent Vault 让真密钥根本不进入模型上下文——agent 出站请求走代理,header 里只放占位符,转发前才替换成真值。

Infisical 概览

先把 .env 从硬盘上拿掉

密钥集中存放,按项目与环境分开(dev / staging / prod)。本地开发不再读明文文件,而是用 CLI 把值注入进程,例如:

infisical run --env=dev -- npm run dev

-- 后面照写平时的启动命令。密钥只在进程存活期间待在内存里;加上 --watch 后,后台改值可以触发服务重启。容器里是同一思路:用 infisical run 包住原来的启动命令,并带上 projectId 与环境名。

每次改动留版本,回滚是把整个项目状态退到某个时间点,而不是只退单个字段。对外同步走 Secret Syncs(GitHub Actions、Vercel、云厂商 Secrets Manager 等);Kubernetes 有 Operator,值变更时可联动重载 deployment。

密钥注入与同步

更彻底:别让密钥活那么久

静态密钥的麻烦在于它一直在那儿。动态密钥换了路子:应用要连数据库时,Infisical 现场向 PostgreSQL 等系统创建临时账号,到期删除。MySQL、消息队列、云 IAM 等也有类似能力。没法做成动态的,就按周期自动轮换;业务侧继续读同一个引用,不用改代码。

这和「共享一个整理好的 .env」拉开了距离:后者是把摊子收拾整齐,前者是尽量不让长期凭证摊开。

泄漏两头都堵

密钥进 git 是最常见事故之一。CLI 自带扫描,能识别大量密钥格式,并可装成提交前检查:

infisical scan --verbose
infisical scan install --pre-commit-hook

另一头是 honey token:在真密钥旁埋一个假的、无实际权限的诱饵。正常业务碰不到它;一旦有人拿它去发请求,说明有人在翻密钥库,告警可以当场响起。它不防泄漏本身,防的是泄漏之后你还蒙在鼓里。

扫描与诱饵

给 AI Agent:真 key 不进上下文

传统密钥管理是把凭证发回应用,应用自己拿着用。对会读网页、读 Issue、读外部文档的 agent,这段逻辑不成立:一段 prompt injection 就可能让它把手里的 key 原样吐出来。

Infisical 的做法是让 agent 根本拿不到真东西。开源项目 Infisical/agent-vault(Agent Vault)是一个 HTTP 凭证代理:agent 出站请求全部走它,请求头里写类似 anthropic_api_key 的占位符,代理在转发出去之前才替换成真值。agent 全程没见过真 key,injection 也就没东西可偷。

顺带两个能力也有用:出站过滤限定某个 agent 只能访问哪些服务与接口;请求日志看清它到底调了什么。

安装与启动请以官方安装文档为准:可用官方安装脚本或 Docker 镜像把 Agent Vault 跑起来,管理界面默认在端口 14321,透明代理在 14322,agent 侧把 HTTPS 代理指过去即可。Docker 示例大致是暴露上述两个端口、挂数据卷,并用环境变量传入主密码(不要把主密码写进镜像或提交到仓库)。

有一点别忽略:Agent Vault 最好和 agent 部署在不同机器上;同一台时隔离意义会大打折扣。沙箱本身也不是完整安全边界,可对照 AI 编程工具的沙箱不是完整安全边界。

Agent Vault 代理示意

自建 Infisical 怎么起

主平台可克隆 Infisical/infisical,复制示例环境文件后,用仓库提供的生产向 Compose 文件启动,浏览器打开本机 80 端口注册第一个账号即可(具体命令以仓库 README 为准)。SDK 覆盖常见语言;机器身份支持 Kubernetes 与主流云厂商认证,CI 不必再挂长期 token。私网资源可通过 Gateway 从内网反向连出,而不必乱开入站端口。

产品形态上,开源 Agent Vault 是自包含二进制;商业侧还有接入 Infisical 平台权限模型的 Agent Vault 方案。生产与企业场景,官方更推荐后者。

写在最后

Infisical 现在大致是四块:密钥管理、私有 CA 与证书、KMS、特权访问。后两块看团队规模;前两块加 Agent Vault,已经能覆盖「人用密钥」和「agent 用密钥」两类痛点。

和 HashiCorp Vault 比,它赢在上手成本:界面、CLI、SDK 更贴日常开发习惯。代价是生态厚度与深度配置仍在追赶。许可证方面,根目录常见为 MIT,但企业功能目录可能走单独商业许可——对外再分发前务必自己核对仓库说明。

延伸阅读:主仓库与 Agent Vault、Infisical 文档。若你让 Claude Code / Codex 之类 agent 长期握着云密钥,优先考虑「占位符 + 代理注入」,而不是把真 key 写进 .env 再塞进上下文。想给 Claude Code 再加一层操作护栏,也可以结合 Hooks 做确定性拦截,思路与沙箱边界一文类似。