Agent Vault 高级安全加固清单:二进制签名验证、网络隔离等12条生产环境最佳实践
【免费下载链接】agent-vaultA HTTP credential proxy and vault for AI agents like Claude Code, OpenClaw, Hermes, custom agents + harnesses, and more.项目地址: https://gitcode.com/gh_mirrors/ag/agent-vault
Agent Vault 是一款面向 Claude Code、OpenClaw、Hermes 等 AI Agent 的开源凭证代理与保险库(credential proxy):它部署在 Agent 与外部 API 之间,在服务端注入真实凭证,让 Agent 自始至终不持有任何密钥。初次跑通只是起点,生产环境还有一系列加固动作值得逐项落实。本文整理了一份Agent Vault 安全加固清单,覆盖二进制签名验证、网络隔离、主密码加密、限速与审计日志共 12 条最佳实践,帮你把部署从"能跑"变成"敢上生产"。
12 条安全加固清单一览
| # | 加固项 | 一句话说明 |
|---|---|---|
| 1 | 二进制签名验证 | 用 cosign / gh attestation 校验发行包,防篡改 |
| 2 | 持续更新 | 安全修复随最新 release 发布,保持升级 |
| 3 | 分机部署 | Agent Vault 与 AI Agent 部署在不同主机 |
| 4 | 代理端口私有化 | 14322 端口只对 Agent 内网开放 |
| 5 | TLS 反向代理 | 管理界面公网暴露时加 TLS + IP 白名单 |
| 6 | 强主密码 | AES-256-GCM 加密凭证,KEK 从密码派生 |
| 7 | PostgreSQL + SSL | 生产用 Postgres 并强制sslmode |
| 8 | 网络守卫 | 默认拦截内网/元数据地址,防 SSRF |
| 9 | 容器隔离 | iptables 锁死出网,只准走代理 |
| 10 | 严格出网策略 | 未匹配服务一律 403 拒绝 |
| 11 | 限流 strict 档 | 按 IP / 会话 / 代理分层限流 |
| 12 | 日志审计与会话治理 | 保留请求日志、吊销闲置会话 |
一、供应链安全:二进制签名验证
1. 校验发行包的完整性与签名(二进制签名验证)
生产部署前,先确认你下载的二进制没有被篡改。Agent Vault 每个发行版都附带 SHA-256 校验和与 cosign 签名,验证走 GitHub 构建身份,无需自己管理任何密钥:
shasum -a 256 --ignore-missing -c checksums.txt cosign verify-blob --bundle checksums.txt.sig checksums.txt如果你用ghCLI,还有一条更省事的构建来源(provenance)验证路径:
gh attestation verify agent-vault_*.tar.gz --repo Infisical/agent-vault2. 保持版本更新以获取安全补丁
安全修复只随最新 release发布。脚本安装方式重跑一遍安装命令即可:脚本会自动停止服务、备份数据库并安装新版本,数据库迁移在服务启动时自动完成。Docker 部署则docker pull后重建容器,命名卷中的数据会保留。
📄 详细步骤见 docs/self-hosting/maintenance.mdx。
二、部署与网络隔离
3. 将 Agent Vault 与 AI Agent 部署在不同主机
这是 Agent Vault 安全模型的基石:凭证解密只在代理发生的那一刻出现在内存里。如果 Agent 和保险库共享同一台机器,被注入的 Agent 可能利用宿主机访问直接读取保险库数据。把14321(管理口)与14322(MITM 代理口)都放在一台独立主机上,Agent 通过内网连接即可。
4. 代理端口 14322 保持私有(网络隔离核心)
泄露一个HTTPS_PROXY值(哪怕只是 Agent 一次被提示注入后的printenv)就可能让攻击者远程借用你的代理。所以核心原则是:让 14322 从公网不可达,这样泄露的代理值就失去意义。防火墙、绑定私有网卡、或使用 PaaS 的私有/公共服务拆分都能实现。
5. 管理 UI 公网暴露时加 TLS 反向代理
如果运营者需要远程管理,14321 相对可以暴露,但应按生产 Web 服务标准加固:TLS 终结、IP 白名单、限流。仓库自带一份开箱即用的 nginx 示例,proxy_pass只指向 14321、显式拒绝CONNECT,并配置了AGENT_VAULT_TRUSTED_PROXIES保证审计日志记录真实客户端 IP:
- 示例目录:examples/nginx-public-ui-proxy/
⚠️ 注意:反向代理本身只是纵深防御的一层,网络隔离才是真正的锁。
三、凭证与密钥管理
6. 设置强主密码,启用 AES-256-GCM 加密
所有存储的凭证使用 AES-256-GCM 认证加密;主密码经 Argon2id 派生出 KEK 用于包裹 DEK,密码本身从不落盘,KEK 用完即擦除。切勿把AGENT_VAULT_MASTER_PASSWORD写进 Dockerfile 或提交到仓库的.env——用 Docker secrets、Fly secrets 等机密管理通道注入。
改密码是轻量操作:只会用新 KEK 重新包裹 DEK,无需重新加密任何凭证(agent-vault master-password set|change|remove)。密码学参数与敏感数据的存储形态详见 docs/learn/security.mdx。
7. 生产环境切换 PostgreSQL 并强制 SSL
默认 SQLite 适合单实例;多实例或生产部署请设置DATABASE_URL指向共享 PostgreSQL,并在连接串上强制加密:
DATABASE_URL=postgres://user:password@db:5432/agentvault?sslmode=require数据库账号只应授权访问 Agent Vault 这一个库,缩小攻击面。已有数据可用agent-vault migrate-db --to postgres://...平滑迁移。
四、网络流量加固
8. 启用网络守卫,防 SSRF 与元数据窃取
Agent Vault 内置 netguard:每条出站代理连接都会先解析主机名、按 IP 校验、再直连已验证的 IP——既挡住 RFC-1918 / 回环 / 链路本地等内网地址,也天然免疫 DNS rebinding 攻击。云元数据端点(169.254.169.254 等)无条件封锁,即使被加白名单也不放行,防止 SSRF 窃取实例凭证。
需要代理访问内网服务时,不要全量放开,用最小化白名单打窄口:
AGENT_VAULT_NETWORK_ALLOWLIST=10.163.0.0/16,192.168.1.19. 用容器网络隔离运行 Agent(--isolation=container)
默认的 host 模式是"协作式"的——恶意 Agent 理论上可以卸载代理环境变量走旁路。加上--isolation=container后,Agent 跑在一次性 Docker 容器里,由 init-firewall.sh 以 iptablesOUTPUT DROP锁死出网:内核层唯一可达的目的地就是 Agent Vault 代理,连 DNS 泄露通道也被/etc/hosts直解堵死,且容器内以非 root 用户运行、丢弃几乎全部 capabilities。
agent-vault vault run --isolation=container -- claude威胁模型与自定义镜像见 docs/guides/container-isolation.mdx。
10. 开启严格出网模式,未匹配流量一律拒绝
默认情况下,未匹配任何服务规则的请求会作为普通代理流量放行。生产环境建议把 vault 切到严格拒绝模式(unmatched_host_policy=deny),未登记的主机直接 403。服务规则本身也应遵循最小权限:只为 Agent 真正需要的域名和凭证开规则。
五、审计与运维
11. 将限流档位调为 strict
Agent Vault 对每个入口都执行分层限流(匿名登录按 IP、认证操作按会话、代理按 actor+vault),超限返回 429。生产环境建议:
AGENT_VAULT_RATELIMIT_PROFILE=strict # 约为一半的默认额度 AGENT_VAULT_RATELIMIT_LOCK=true # 锁定为环境变量值,UI 只读也可以在 Web UI 的Manage Instance → Settings → Rate Limiting中按档位微调。
12. 审计请求日志,治理会话与遥测
- 请求日志:按 vault 留存已认证流量,默认保留 7 天 / 每库 1 万行,可用
AGENT_VAULT_LOGS_MAX_AGE_HOURS调整保留策略,用于监控与诊断 Agent 行为。 - 会话治理:用户会话最长 1 年活跃、闲置 30 天自动失效;用
agent-vault auth sessions list / revoke查看与吊销会话,改密码会一次性作废旧会话。 - 临时沙箱:为短命沙箱铸造短时效、vault 绑定的 scoped token(5 分钟–7 天可调),而不是复用长期 agent token。
- 遥测:
AGENT_VAULT_TELEMETRY=false可关闭匿名使用统计(不含任何凭证值)。 - 注册限制:通过邮箱域名限制(
--allowed-domains)收窄实例成员范围。
收尾:把清单变成习惯
加固不是一次性动作:每次升级后重跑二进制签名验证、每季度复查一次会话与日志保留策略、Agent 接入新服务时重新审视服务规则与限流档位。Agent Vault 的完整安全设计(静态加密、传输安全、令牌模型、访问控制)都写在 docs/learn/security.mdx,可调参数总表见 docs/self-hosting/environment-variables.mdx,Docker 部署细节见 docs/self-hosting/docker.mdx。把这 12 条逐项打勾,你的 Agent 凭证代理才算真正"上了锁" 🔐
【免费下载链接】agent-vaultA HTTP credential proxy and vault for AI agents like Claude Code, OpenClaw, Hermes, custom agents + harnesses, and more.项目地址: https://gitcode.com/gh_mirrors/ag/agent-vault
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考