Claude Code 学习站

Claude Code 沙箱环境选型与配置参考

对比 Claude Code 六种隔离方案(内置 Bash 沙箱、沙箱运行时、Dev Container、自定义容器、虚拟机、网页版),含选型决策表、各方案配置要点与组织级强制隔离指南。

本页目录13
AI 摘要 · 已核查整理于 2026-06-16原文:Choose a sandbox environment(Anthropic)沙箱隔离权限管理容器部署安全配置
要点速览
  • 沙箱 Bash 工具(`/sandbox`)只隔离 Bash 命令,文件工具、MCP 服务器和钩子仍在宿主机运行;其余五种方案将整个 Claude Code 进程放入隔离边界。
  • 使用 `--dangerously-skip-permissions` 时必须配合容器、虚拟机或沙箱运行时,隔离是唯一的行为约束手段。
  • 沙箱运行时(`@anthropic-ai/sandbox-runtime`)默认拒绝所有写入和网络访问,需在 `~/.srt-settings.json` 中显式放行项目目录、`~/.claude`、`~/.claude.json` 及所需网络域。
  • 网页版 Claude Code 由 Anthropic 托管隔离虚拟机,GitHub Token 在沙箱外独立保管并向沙箱内发放范围限定凭证,无需自行配置基础设施。
  • 组织级强制隔离:内置 Bash 沙箱可通过托管设置(MDM 或 server-managed settings)下发 `sandbox` 配置键;容器/虚拟机方案须借助设备管理或软件白名单工具强制执行。
  • 沙箱隔离减轻违规影响,但不消除风险:允许网络出站仍可泄露数据,挂载可写项目目录仍可修改代码;内容传输至 Anthropic API 不受沙箱影响。

本文是对官方参考页 Choose a sandbox environment 的中文整理,完整与最新内容以原文为准。

各沙箱方案对比

前两种方案在宿主机操作系统上运行(无需容器),其余方案将 Claude Code 置于容器或虚拟机内。

方案隔离范围需要 Docker配置复杂度
沙箱 Bash 工具(Sandboxed Bash tool)Bash 命令及其子进程macOS 极低;Linux/WSL2 低
沙箱运行时(Sandbox runtime)整个 Claude Code 进程,含文件工具、MCP 服务器、钩子
Dev container完整开发环境
自定义容器(Custom container)完整开发环境中到高
虚拟机(Virtual machine)完整操作系统
网页版 Claude Code完整操作系统(由 Anthropic 托管)无需配置;需 Claude 订阅和 GitHub 账号

注意:沙箱 Bash 工具仅限制 Bash 命令,内置文件工具、MCP 服务器和钩子仍在宿主机直接运行。其余所有方案将整个 Claude Code 进程置于隔离边界内。

按目标选择方案

目标推荐方案
减少日常工作中的权限提示沙箱 Bash 工具,用 /sandbox 启用
--dangerously-skip-permissions 或 auto 模式无人值守运行预配置 dev container、任意容器或虚拟机,或沙箱运行时
不使用 Docker 的情况下同时隔离 MCP 服务器和钩子沙箱运行时
处理不受信任的代码仓库专用虚拟机,或网页版 Claude Code(需 Claude 订阅 + GitHub)
团队统一沙箱环境预配置 dev container(复制到仓库)
无本地环境的设备上使用 Claude Code网页版 Claude Code(需 Claude 订阅 + GitHub)
强制组织内所有开发者使用隔离见「组织级强制隔离」章节
在原生 Windows 主机上使用容器或虚拟机,或在 WSL2 内使用沙箱 Bash 工具

隔离与权限模式的关系

  • 权限模式(Permission modes):决定工具调用是否执行、是否先询问用户。
  • 隔离:限制命令运行后能访问的资源范围。
  • 两者协同:当权限模式允许动作无需询问时,隔离边界限制这些动作的可达范围。
权限模式与隔离的关系
--dangerously-skip-permissions必须在容器、虚拟机或沙箱运行时内使用;隔离是唯一的行为约束手段
auto 模式分类器逐动作审查,建议配合隔离作为纵深防御,非强制要求
沙箱 Bash 工具(单独使用)仅约束 Bash,不足以覆盖完整的无人值守场景

沙箱 Bash 工具

  • 平台支持:macOS(使用 Seatbelt)、Linux 和 WSL2(使用 bubblewrap);不支持原生 Windows
  • 启用命令/sandbox
  • 默认行为:允许对工作目录写入;首次访问新网络域时提示确认。
  • 覆盖范围:仅限 Bash 命令及子进程;不覆盖 Read、Edit、WebFetch 等内置工具,也不覆盖 MCP 服务器和钩子。
  • 详细配置:见官方 Sandboxing 文档(审批模式、默认边界、扩大/收窄方法)。

沙箱运行时(Sandbox runtime)

  • 包名@anthropic-ai/sandbox-runtime(Beta,配置格式可能随版本变动)
  • 隔离范围:整个 Claude Code 进程内所有工具、钩子、MCP 服务器。
  • 默认策略:拒绝所有写入和网络访问。

必须配置的项目

配置文件路径:~/.srt-settings.json,或通过 --settings 指定文件。

配置类型至少需要包含的内容
写入权限项目目录、~/.claude~/.claude.json
网络域api.anthropic.com 或所配置提供商的端点

启动命令

npx @anthropic-ai/sandbox-runtime claude

同一命令也可用于沙箱化独立 MCP 服务器或其他辅助进程。完整配置 schema 见包的 README。

Dev Container

  • 在 Docker 容器内运行 Claude Code,由 VS Code 或兼容编辑器管理,项目目录挂载其中。
  • 配置方式:在仓库中创建 .devcontainer/ 目录。
  • claude-code 仓库提供预配置示例 dev container,含默认拒绝的 iptables 防火墙
  • 可按需调整:防火墙允许列表、基础镜像、固定的 Claude Code 版本。
  • 防火墙阻止未批准出站流量,支持以 --dangerously-skip-permissions 进行无人值守运行。

自定义容器(Custom Container)

  • 支持任意 Docker 或 OCI 容器镜像,可自定义网络策略、挂载卷、seccomp 配置。
  • 可托管于托管沙箱或远程执行服务。
  • 可在容器内叠加使用沙箱 Bash 工具(提供逐命令限制)。
  • 非特权容器需配置嵌套沙箱设置,详见 Sandboxing troubleshooting 文档。

运行容器时安全检查清单

检查项说明
挂载可写目录确认哪些目录以可写方式挂载
凭证与 Token确认容器内可访问哪些凭证和 token
网络出站策略确认网络出站策略允许的范围

虚拟机(Virtual Machine)

  • 提供最强隔离:独立内核;云或 microVM 部署中还有独立虚拟硬件。
  • 适用场景
    • 评估不受信任的代码
    • 安全策略要求 agent 与宿主机之间内核级别隔离
    • 无任何宿主机方案满足合规要求
  • 可选方案:Docker Desktop 的 Sandboxes 功能(microVM,含独立 Docker daemon 和工作区同步)。

网页版 Claude Code

  • 每个会话运行在由 Anthropic 管理的隔离虚拟机中。
  • 网络代理强制执行默认允许列表。
  • GitHub Token 由独立代理在沙箱外持有,向沙箱内发放范围限定凭证。
  • 前提条件:Claude 订阅 + 已关联的 GitHub 账号;会话从 GitHub 克隆仓库。
  • 适用场景:无需自行配置基础设施的完整 VM 隔离;或从无本地开发环境的设备委托任务。

组织级强制隔离

方案强制机制备注
内置 Bash 沙箱通过托管设置下发 sandbox 配置键(MDM 管理文件或 server-managed settings)详见 Enforce sandboxing with managed settings
Dev container将示例 dev container 提交到仓库约定而非强制边界;如需强制须借助设备管理或软件白名单工具
自定义容器/虚拟机通过审批镜像分发 Claude Code用设备管理或软件白名单工具防止在镜像外安装

相关参考文档

文档页内容摘要
Sandboxing配置内置沙箱 Bash 工具(审批模式、边界调整、托管设置下发)
Dev container预配置 Docker 开发容器详细说明
SecurityClaude Code 完整安全模型
Secure deploymentAgent SDK 应用隔离指南
Settings#sandbox-settings所有沙箱配置键(含托管设置下发方式)