
Agent Vault容器隔离深度解析Dockeriptables锁定出口流量AI 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-vaultAgent Vault 是一个面向 Claude Code、OpenClaw、Hermes 等 AI Agent 的 HTTP 凭证代理与密钥保险库credential vault。它的容器隔离模式用 Docker 专属网络 iptables 默认拒绝策略把 Agent 锁进沙箱容器内唯一可达的 TCP 目标是 Agent Vault 代理本身其余流量在 Linux 内核层直接被 DROP让凭证泄密在网络层面物理不可能。为什么 AI Agent 需要容器隔离 让 AI Agent 在你的开发机上干活通常意味着它手里握着一批敏感凭证Anthropic API Key、GitHub Token、Stripe 密钥……而泄漏渠道远比想象中多提示注入恶意网页或文档可能诱导 Agent 把凭证 POST 到攻击者服务器不受控的子进程Agent 生成的代码可以直接curl外发甚至绕过环境变量自建原始 socketDNS 隧道即使不建立 TCP 连接数据也能藏在 DNS 查询里悄悄渗出。Agent Vault 的解法是凭证代理架构Agent 不直接持有明文凭证所有出站请求经过代理由代理按服务策略注入凭证。但还差最后一环——Agent 本身的行为还能信吗这就轮到容器隔离登场。两种隔离模式host 协作式 vs container 非协作式 项目文档 docs/guides/container-isolation.mdx 对两种模式有一针见血的定义模式信任模型机制短板--isolationhost默认协作式注入HTTP_PROXY/HTTPS_PROXY与 CA 信任环境变量Agent 可以取消环境变量、派生不继承环境的子进程、走原始 socket 或 DNS 泄密--isolationcontainer非协作式Agent 运行在 Docker 容器中出口被 iptables 锁定无——不信任 Agent 的任何配合核心思想是不再要求 Agent 守规矩而是让它在物理上无法违规。容器里唯一放行的 TCP 目的地是 Agent Vault 代理端口其他一切包在内核网络栈中就被丢弃。快速开始一条命令启用容器隔离 agent-vault vault run --isolationcontainer -- claude首次运行约 60 秒系统会从内嵌的 internal/isolation/assets/Dockerfile 构建隔离镜像agent-vault/isolation:hashDebian-slim Node Claude Code iptables/gosu之后复用缓存秒级启动。如果你还没建库先在 Web 界面创建 Vault 并定义好服务凭据规则相关命令实现在 cmd/run_container.go隔离标志解析见 cmd/isolation_flag.go。深度解析容器隔离的四层防线1️⃣ 每次调用独占一张 Docker 网络每次vault run都会创建一张专属 bridge 网络agent-vault-sessionIDsession ID 由crypto/rand生成 16 位十六进制而不是共享的默认 bridge。这意味着你机器上运行的其他容器根本摸不到这次调用的转发器。Linux 上转发器直接绑定该网络网关 IP仅这张网络可达[internal/isolation/network.go](https://link.gitcode.com/i/4b2a13716c3c43d71db67c334a83352d)负责建网与清理internal/isolation/forwarder.go 在网关 IP 上临时监听两个端口把流量中继回宿主机的 Agent Vault 回环监听。2️⃣ iptables 默认拒绝出口只剩一条缝真正的杀手锏在 internal/isolation/assets/init-firewall.sh。容器启动时以 root 执行随后 iptables 规则是这样的iptables -P OUTPUT DROP # 默认全拒 iptables -A OUTPUT -o lo -j ACCEPT # 只放行环回 iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -d $GW_IP -p tcp --dport HTTP端口 -j ACCEPT # 仅代理HTTP口 iptables -A OUTPUT -d $GW_IP -p tcp --dport MITM端口 -j ACCEPT # 仅代理MITM口 ip6tables -P OUTPUT DROP # IPv6 同步封死两个精妙细节刻意不写任何 DNS 规则。host.docker.internal通过docker run --add-host直接烘焙进/etc/hosts容器内没有解析器的用武之地——DNS 泄密通道被整体关闭IPv4/IPv6 双栈封锁避免 Docker 开启 IPv6 时旁路。3️⃣ 最小权限进程防火墙规则删不掉docker.go 构建的docker run参数遵循最小权限原则--cap-dropALL后仅加回 5 个能力NET_ADMIN/NET_RAW跑 iptables、SETUID/SETGIDgosu降权用、KILLtini 跨 UID 转发 TTY 信号--security-optno-new-privileges禁止提权internal/isolation/assets/entrypoint.sh 先以 root 执行防火墙脚本再用gosu降到非 root 的claude用户运行 Agent。关键结论Docker 不会把容器能力授予非 root 进程为 ambient 能力所以降权后的 Agent有效能力集为空——它连删掉自己头顶的 iptables 规则都做不到。MITM CA 证书通过 internal/isolation/cacopy.go 以只读方式挂载进容器并写入系统信任库保证所有 TLS 客户端都能信任代理。4️⃣ 挂载白名单敏感路径一律拒绝容器挂载策略是显式列出 默认拒绝$PWD → /workspace你的项目、CA 证书只读、每次调用独立的.claude状态卷用户额外--mount会先解析符号链接再校验拒绝三类路径宿主机根文件系统、/var/run/docker.sock挂载它等于交出 Docker 控制权隔离形同虚设、~/.agent-vault存放主密钥加密的保险库数据internal/isolation/docker.go 还维护了一份容器内受保护路径/usr/local/sbin/entrypoint.sh、init-firewall.sh、/etc等防止用挂载覆盖镜像信任链、在防火墙执行前完成逃逸。Agent 状态目录三种模式的取舍容器里/home/claude/.claude存放登录态与项目历史有三种后端按并发安全 vs 体验取舍模式命令特点每次独立卷默认无额外参数每次全新登录但并发运行互不干扰 ✅共享卷--home-volume-shared登录态持久但不建议并发跑两个无锁会互相踩踏绑定宿主机目录--share-agent-dir直接复用宿主机~/.claude登录态Linux 下通过HOST_UID/HOST_GID保证文件归属正确macOS 会桥接 Keychain 凭证无论哪种模式最敏感的~/.agent-vault/目录始终在容器之外。威胁模型它能挡住什么挡不住什么 挡得住文档明确 in scopeAgent 及其任意子进程无法到达代理以外的任何目的地——HTTPS、原始 socket、ICMP包在内核层就没了DNS 泄密不可行无解析器、无 DNS 规则无法检查或修改 workspace 之外的宿主状态无法拆除自己的防火墙。挡不住坦诚标注 out of scope内核漏洞导致的容器逃逸依赖 Docker 标准隔离经由 Agent Vault 本身流向白名单上游如 Anthropic API的流量——那属于正常业务由服务目录与凭证注入策略管辖侧信道时序、资源占用。进阶把你自己的 Agent 部署成容器镜像 上面的模式是用容器隔离 Agent 进程。反过来如果你想把自己的 Agent 作为容器镜像部署到 K8s、Fly、ECS项目同样有方案以agent-vault run作为 entrypoint、预置 token 接入代理详见 docs/guides/deploy-agent-container.mdx。平台支持与常见问题排查 ️LinuxDocker 20.10与macOSDocker Desktop支持Windows 在 v1 中不支持会直接报错首次运行卡住镜像构建要拉基础镜像并npm install另开终端docker ps观察进度host.docker.internal解析不了Docker 版本过旧升级到 20.10网络残留每次启动自动PruneStaleNetworks清理 60 秒前创建且无容器挂载的agent-vault-*网络60 秒宽限期避免并发调用互相误删--no-firewall仅调试用启动时会打出醒目警告。总结Agent Vault 的容器隔离模式把信任 Agent 会守规矩换成了Agent 想违规也做不到专属 Docker 网络保证隔离边界iptables 默认拒绝把出口压缩到代理一条缝最小权限能力集让防火墙规则不可拆除挂载白名单堵死所有旁路。对跑着 Claude Code 等 AI Agent 的团队来说这是目前对凭证代理架构最彻底的落地方式之一。想深入了解完整命令参数与威胁模型细节推荐直接阅读 docs/guides/container-isolation.mdx并配合 docs/guides/connect-coding-agent.mdx 对比默认的 host 模式使用流程。【免费下载链接】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),仅供参考