本页介绍的是本地沙箱。有关云端行为及其限制,请参阅对比本地沙箱与云沙箱。
用 sbx run claude 创建且不带任何额外标志的沙箱具有以下安全态势。
网络默认值
所有出站 TCP 流量(包括 HTTP、HTTPS 和 SSH)都会被阻止,除非有显式规则允许该 目标。出站 UDP 默认关闭。要使用它,需要开启 experimental UDP feature 并添加 UDP 允许规则。ICMP 被阻止。DNS 查询使用沙箱的内部解析器,该解析器会强制 执行 network policy。
运行 sbx policy ls 查看当前安装生效的 network 规则。规则可以按机器用 sbx policy CLI 自定义,也可以在组织范围内集中管理。组织级规则的优先级高于本地规则。请参阅 Sandbox governance。
工作区默认值
当你没有传入工作区路径时,sbx run 会挂载当前目录。智能体可以在该目录内读取、 写入和删除任何文件,包括隐藏文件、配置文件、构建脚本和 Git hooks。
当你在 sbx create 中省略工作区路径时,沙箱不会挂载宿主工作区。智能体会使用沙箱 模板的默认工作目录。Docker 提供的智能体模板使用 /home/agent/workspace。如果模板 没有定义可用的绝对工作目录,daemon 会使用该路径。该目录中的文件在停止和重启之间 保留,并在你删除沙箱时被删除。可用的工作区模式,以及直接挂载会话结束后需要审查的 内容,请参阅 Workspace isolation。
共享技能默认值
为受支持的智能体创建的沙箱,默认会以只读方式挂载一个持久的共享技能存储。 skills.defaultMode 设置可以改变 这一默认值,--skills 则在创建时覆盖它。拥有 readwrite 访问权限的沙箱可以修改 其他参与沙箱加载的技能,包括以 readonly 访问权限挂载的沙箱所加载的技能。创建 沙箱时使用 --skills=off 可以省略共享存储。已存在的沙箱会保留原有挂载,直到被 重新创建。请参阅 Share agent skills。
凭据默认值
除非你用 sbx secret 或环境变量提供凭据,否则沙箱无法使用任何凭据。提供凭据后, 宿主侧代理会把它们注入到出站 HTTP 头中。智能体无法读取原始凭据值。
配置说明请参阅 Credentials。
沙箱内的智能体能力
智能体在沙箱 VM 内部以完全控制权运行:
sudo权限(智能体以非 root 用户身份运行,但拥有 sudo 权限)- 一个私有的 Docker Engine,用于构建镜像和运行容器
- 通过
apt、pip、npm以及其他包管理器安装软件包 - 对 VM 文件系统的完整读写权限
智能体在 VM 内安装或创建的一切,包括软件包、Docker 镜像、无挂载工作区文件和配置 变更,都会在停止和重启之间保留。当你用 sbx rm 删除沙箱时,VM 及其内容会被删除。 直接挂载的工作区文件和共享技能存储仍留在宿主上,作为克隆来源的仓库也一样。
默认被阻止的内容
以下内容对所有沙箱都被阻止,无法通过策略配置更改:
- 访问显式挂载的工作区和共享技能存储之外的宿主文件系统
- 宿主 Docker daemon
- 沙箱之间的直接网络通信
- 直接对外的 ICMP 连接
到不在允许列表中的目标发出的出站 TCP 连接同样默认被阻止,但你可以用 sbx policy allow 添加允许规则。