返回AI应用

NVIDIA OpenShell 深度上手:给 AI Agent 装个安全沙箱,附完整安装配置教程

目录

16
  1. 一、一句话介绍
  2. 二、为什么你需要 OpenShell
  3. 三、四层防御,一个比一个硬核
  4. 四、安装配置完整教程
  5. 1.前置条件
  6. 2.第一步:安装 CLI
  7. 3.第二步:启动第一个沙箱
  8. 4.第三步:配置网络策略
  9. 五、实际使用场景和效率提升
  10. 1.场景一:企业内部用 AI 写代码
  11. 2.场景二:跑第三方 Agent 工具
  12. 3.场景三:教学和演示
  13. 六、支持的智能体和生态
  14. 七、同类项目对比
  15. 八、总结
  16. 九、项目地址

NVIDIA OpenShell 官方文档概览页

一句话介绍

OpenShell 是 NVIDIA 开源的 AI Agent 安全运行时,用 Rust 编写,基于 Docker+K3s 部署,通过四层防御(文件系统/网络/进程/推理)把 AI 智能体关在沙箱里运行,做到零信任、最小权限,既能用 AI 提效又不用担心数据泄露。

OpenShell 系统架构图:用户接口层 / 网关控制平面 / OpenShell 运行时数据平面

OpenShell 目前在 GitHub 上 13.9K Stars,Alpha 版本但核心架构已经很扎实。NVIDIA 官方团队在维护,长期迭代有保障。

为什么你需要 OpenShell

先说说痛点。现在用 Claude Code、OpenCode、Cursor 这些 AI 编程工具的人越来越多,但你有没有想过——这些工具运行在你的电脑上,意味着什么?

  • 它能读取你硬盘上所有文件,包括 ~/.ssh 私钥、.env 里的数据库密码
  • 它能自由访问网络,把你的代码片段发到任何服务器
  • 它能执行任意命令,万一被 prompt injection 攻击了呢?

我自己用 Claude Code 的时候就有点担心——让它改代码,它会不会不小心 rm -rf 了重要目录?会不会把公司代码泄露出去?OpenShell 就是为了解决这个问题的。

四层防御,一个比一个硬核

OpenShell 的安全设计不是单一防火墙,而是四层纵深防御,层层递进:

层级 技术 作用 能否热更新
文件系统 Linux Landlock LSM 只能访问策略允许的目录 否(创建时锁定)
网络 OPA/Rego + HTTP CONNECT 代理 逐连接审查出站请求 是(30秒热加载)
进程 seccomp BPF 过滤危险系统调用,阻止提权 否(创建时锁定)
推理 Privacy Router API Key 永不接触智能体内存 是(热加载)

最有意思的是第四层——推理层。传统做法是把 API Key 当环境变量注入 Agent 进程,Agent 被攻破 Key 就丢了。OpenShell 反过来:Agent 看到的是占位符,请求发出时代理层才把真实 Key 注进去,然后转发给后端。Agent 从头到尾都碰不到真实凭据。

OpenShell 沙箱执行流程:网络隔离的沙箱只能通过受信任的 Supervisor 出站

架构上分为 Gateway(控制平面)和 Sandbox(数据平面)。Gateway 管策略、凭据、沙箱生命周期;每个 Sandbox 是一个独立的 K8s Pod,里面跑着 Agent 进程和安全代理。

安装配置完整教程

前置条件

  • Docker 已安装并运行(Docker Desktop 或 Docker Daemon)
  • Linux/macOS 系统(Windows 用 WSL2 也可以)
  • 至少 2GB 内存(K3s + 沙箱需要一些资源)

第一步:安装 CLI

推荐用官方安装脚本,一条命令搞定(脚本地址见文末 GitHub 仓库根目录的 install.sh):

curl -LsSf [官方安装脚本地址] | sh

也可以用 uv 从 PyPI 装:

uv tool install -U openshell

装完验证一下:

openshell --version

第二步:启动第一个沙箱

以 Claude Code 为例,确保你已经设置了 ANTHROPIC_API_KEY 环境变量:

# 1. 从环境变量自动发现并创建 Provider
openshell provider create --type claude --from-existing

# 2. 创建沙箱并启动 Claude Code
openshell sandbox create -- claude

第一次运行会自动在 Docker 里拉起一个包含 K3s 的容器,部署 Gateway 和沙箱。等个 1-2 分钟,你就进入了沙箱内的 Claude Code 终端。

关键区别:这个 Claude 运行在隔离环境里,默认只能访问 Anthropic API,其他网络全部拒绝。即使它被攻击了,也碰不到你主机上的文件。

第三步:配置网络策略

默认策略是「全部拒绝」,太保守用不了。我们来加一个 GitHub 只读策略。创建一个 policy.yaml:

version: 1

filesystem_policy:
  include_workdir: true
  read_only:
    - /usr
    - /lib
    - /proc
    - /app
    - /etc
  read_write:
    - /sandbox
    - /tmp

network_policies:
  github_api:
    name: github-api-readonly
    endpoints:
      - host: api.github.com
        port: 443
        protocol: rest
        enforcement: enforce
        access: read-only
    binaries:
      - { path: /usr/bin/curl }
      - { path: /usr/bin/git }

应用到运行中的沙箱(无需重启!):

openshell policy set my-sandbox --policy policy.yaml --wait

验证一下:

# 进入沙箱
openshell sandbox connect my-sandbox

# GET 请求应该放行(访问 GitHub API 的 /zen 接口)
curl -sS "$GITHUB_API/zen"
# → Anything added dilutes everything else.

# POST 请求应该被拦截(创建 issue 操作被 L7 策略拒绝)
curl -sS -X POST "$GITHUB_API/repos/octocat/hello-world/issues" \
  -d '{"title":"oops"}'
# → {"error":"policy_denied","detail":"POST /repos/... not permitted by policy"}

L7 级别的控制——允许 GET 但拒绝 POST,这个粒度在同类工具里很少见。

OpenShell 沙箱协议:控制、DNS、TCP 流都走一条双向认证的 HTTP/2 连接

上图展示了沙箱里的 Agent 是怎么连出去的:控制指令、DNS 解析、每条 TCP 流都封装在同一条双向认证的 HTTP/2 连接里,由受信任的 Supervisor 统一代理,除此之外的所有出站请求一律拒绝。

实际使用场景和效率提升

场景一:企业内部用 AI 写代码

以前:不敢让 AI 碰生产环境的代码,怕泄露。 现在:OpenShell 沙箱 + 策略,只允许访问指定的 Git 仓库和内部 API,推理走本地模型,数据完全不出内网。

场景二:跑第三方 Agent 工具

以前:不确定社区 Agent 的安全性,不敢随便用。 现在:丢沙箱里跑,就算有后门也出不来,用完直接删掉沙箱,干干净净。

场景三:教学和演示

以前:给学员演示 AI 编程,担心学员操作不当搞坏环境。 现在:每人一个沙箱,互不影响,用完即焚。

支持的智能体和生态

目前内置支持的 Agent:

智能体 类型 所需凭据
Claude Code 内置 ANTHROPIC_API_KEY
OpenCode 内置 OPENAI_API_KEY / OPENROUTER_API_KEY
Codex 内置 OPENAI_API_KEY
GitHub Copilot CLI 内置 GITHUB_TOKEN
OpenClaw 社区镜像 OPENCLAW_API_KEY
Ollama 社区镜像 无需 Key(本地运行)

还支持 --from 参数从任意 Docker 镜像创建沙箱,自由度很高。

同类项目对比

项目 隔离方式 策略引擎 推理凭据保护 部署方式
OpenShell K8s Pod + Landlock + seccomp OPA/Rego ✅ Privacy Router Docker/K3s 自托管
E2B Firecracker microVM 自定义 部分 云服务 + SDK
Sandboxd nsjail 简单规则 ❌ 本地
Modal gVisor gVisor 网络策略 ❌ 云服务

OpenShell 的优势在于:自托管、四层防御、推理层凭据保护、声明式 YAML 策略热更新。缺点是 Alpha 阶段,功能还在快速迭代中。

总结

OpenShell 解决的是一个很实在的问题——AI Agent 越来越强,但我们不敢给它太高权限,结果反而用不爽。有了沙箱之后,你可以放心地让 Agent 去执行更复杂的任务,不用担心里外都被它看光了。

适合入手的人群:

  • 经常用 AI 编程工具的开发者
  • 对数据安全有要求的企业团队
  • 研究 AI Agent 安全的技术人员
  • 安全工程师,想给团队的 AI 工具加保护层

项目目前是 Alpha 版本,变化可能比较快,但核心架构已经很扎实了。NVIDIA 出品,长期维护有保障,值得跟进一下。

项目地址


温馨提示:Alpha 阶段不建议在生产环境跑核心业务,但用来隔离个人开发环境里的 AI 工具,完全够用了。装一个试试,你会发现用 AI 的胆子都变大了

作者信息
一起用互联网帮助更多人

本文标签:Agent NVIDIA AI工具

本文链接:NVIDIA OpenShell 深度上手:给 AI Agent 装个安全沙箱,附完整安装配置教程 - http://www.go176.net/post-7367.html