深度

OpenClaw Docker 沙箱安全指南:隔离 AI 工具执行、保护主机系统

OpenClaw Docker 沙箱安全配置:三种沙箱模式(off/non-main/all)、三种容器粒度(session/agent/shared)、工作区访问权限控制、自定义挂载安全限制、沙箱浏览器、per-Agent 覆盖,以及 Elevated 工具逃生通道的使用注意事项。

2026/3/14分钟 阅读ClaudeEagle

OpenClaw 支持在 Docker 容器中运行工具,限制 AI Agent 对主机系统的访问范围。这不是完美的安全边界,但能大幅降低 AI「做蠢事」时的爆炸半径。

沙箱保护范围

沙箱化的内容

  • 工具执行(exec、read、write、edit 等)
  • 可选的沙箱浏览器(独立 Docker 容器)

不受沙箱保护

  • Gateway 进程本身
  • 明确标记为 elevated 的工具(在主机上运行,绕过沙箱)

三种沙箱模式

通过 agents.defaults.sandbox.mode 控制:

模式说明适用场景
off不使用沙箱(默认)信任环境、开发调试
non-main只隔离非主会话群组用沙箱,私信不隔离
all所有会话都在沙箱高安全要求场景

注意:non-main 基于 session.mainKey 判断,不是 Agent ID。群组/频道会话有自己的 key,算作 non-main,会被沙箱化。

三种容器粒度

通过 agents.defaults.sandbox.scope 控制:

粒度说明
session(默认)每个会话一个容器
agent每个 Agent 一个容器
shared所有沙箱会话共享一个容器

工作区访问权限

通过 agents.defaults.sandbox.workspaceAccess 控制:

模式说明
none(默认)工具只看到沙箱工作区目录
roAgent 工作区只读挂载到 /agent
rwAgent 工作区读写挂载到 /workspace

快速启用

第 1 步:构建沙箱镜像

bash
scripts/sandbox-setup.sh

默认镜像 openclaw-sandbox:bookworm-slim 不含 Node。需要 Node 的技能可通过 setupCommand 安装或使用自定义镜像。

第 2 步:最小化配置

json
{
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "non-main",
        "scope": "session",
        "workspaceAccess": "none"
      }
    }
  }
}

第 3 步:验证配置

bash
openclaw sandbox explain

输出有效的沙箱模式、工具策略和修复建议。

自定义挂载(Bind Mounts)

json
{
  "agents": {
    "defaults": {
      "sandbox": {
        "docker": {
          "binds": [
            "/home/user/source:/source:ro",
            "/var/data/myapp:/data:ro"
          ]
        }
      }
    },
    "list": [
      {
        "id": "build",
        "sandbox": {
          "docker": {
            "binds": ["/mnt/cache:/cache:rw"]
          }
        }
      }
    ]
  }
}

全局和 per-Agent 的 binds 会合并(不覆盖)。

安全限制

  • OpenClaw 阻止危险挂载源(docker.sock/etc/proc/sys/dev
  • 敏感目录使用 :ro
  • network: host 被阻止

网络配置

默认 network: none(无网络出口)。需联网安装依赖时临时设为 bridge

json
{
  "agents": {
    "defaults": {
      "sandbox": {
        "docker": { "network": "bridge" }
      }
    }
  }
}

setupCommand:一次性容器初始化

json
{
  "agents": {
    "defaults": {
      "sandbox": {
        "docker": {
          "network": "bridge",
          "setupCommand": "apt-get update && apt-get install -y nodejs"
        }
      }
    }
  }
}

注意:默认 network: none 时包管理器会失败,先设为 bridge 再安装。setupCommand 只在容器创建后执行一次。

沙箱浏览器

独立的沙箱浏览器容器:

bash
scripts/sandbox-browser-setup.sh
json
{
  "agents": {
    "defaults": {
      "sandbox": {
        "browser": {
          "autoStart": true,
          "network": "openclaw-sandbox-browser"
        }
      }
    }
  }
}

per-Agent 沙箱覆盖

json
{
  "agents": {
    "defaults": { "sandbox": { "mode": "non-main" } },
    "list": [
      { "id": "safe", "sandbox": { "mode": "all", "workspaceAccess": "ro" } },
      { "id": "local", "sandbox": { "mode": "off" } }
    ]
  }
}

Elevated 工具:沙箱逃生通道

某些工具需要直接在主机上运行:

json
{
  "tools": {
    "elevated": { "exec": true }
  }
}

elevated exec 在主机上运行,完全绕过沙箱。只对授权发件人有效,且只在会话生命周期内持续。要硬性禁用,使用工具策略 deny。

调试命令

bash
openclaw sandbox explain   # 查看有效配置和问题诊断

原文:Sandboxing - OpenClaw | 来源:OpenClaw 官方文档

相关文章推荐

深度OpenClaw Docker 沙箱安全指南:工具隔离、工作区访问控制与自定义镜像OpenClaw Docker 沙箱完整配置指南:三种沙箱模式(off/non-main/all)、三种容器范围(session/agent/shared)、工作区访问控制(none/ro/rw)、基础与功能完整镜像构建、自定义 Bind 挂载安全配置、容器初始化命令、沙箱浏览器,以及多 Agent 独立沙箱配置。2026/3/12深度OpenClaw 工具系统完全指南:工具组、权限策略与循环检测配置OpenClaw 工具系统完全指南:工具组(group:fs/runtime/sessions 等)、四种 Profile(minimal/coding/messaging/full)、全局/per-Agent/per-Provider 三层权限策略、exec/process/web_search/web_fetch 核心工具配置,以及工具循环检测(三种检测器)配置。2026/3/2深度OpenClaw 会话管理深度指南:多用户隔离、重置规则与磁盘清理OpenClaw 会话管理完全指南:多用户场景 DM 隔离策略(per-channel-peer 防止信息泄露)、每日/空闲/按类型的重置规则、会话 Key 格式详解、磁盘清理配置(enforce 模式 + 容量上限),以及手动清理命令和发送策略。2026/3/1深度OpenClaw 多 Gateway 架构完全指南:一台机器运行多个独立 AI 助手实例OpenClaw 多 Gateway(Multi-Gateway)架构完整教程:多实例的隔离优势、同一台机器运行多个 Gateway(不同端口/配置文件/workspace)、systemd 管理多个 Gateway 服务、Nginx 虚拟主机为每个实例分配独立域名、API Key 隔离与成本拆分、单机多实例 vs 多机方案对比,以及 Docker Compose 多容器隔离部署方案。2026/3/26深度OpenClaw Hooks 自动化进阶:消息前后的智能拦截、转换与触发机制OpenClaw Hooks(钩子)自动化系统进阶教程:Hooks 的触发时机(before-send/after-receive/on-tool-call)、用 Hooks 拦截消息并修改内容(自动翻译/过滤/格式化)、基于条件的 Hook 触发(渠道过滤/关键词匹配)、Hook 中调用外部 API(Notion 记录/Bark 通知/监控告警)、exec 工具二次确认 Hook,以及 Hooks 与 SOUL.md 和 Standing Orders 的优先级关系详解。2026/3/26深度OpenClaw 插件开发完全指南:从零构建自定义渠道和工具插件OpenClaw 插件(Plugin)开发完整教程:插件类型(渠道插件/工具插件/Provider插件)、插件的目录结构和 package.json 规范、使用 Plugin SDK 开发自定义消息渠道(实现 onMessage/sendMessage 接口)、开发自定义工具(Tool)的函数签名和参数 Schema、本地插件安装与调试(openclaw plugins install ./local-plugin)、发布到 npm 的规范要求(@openclaw/ 命名空间)、插件的权限声明(capabilities)、社区插件列表(Plugin Bundles)获取,以及常见插件开发错误和调试技巧。2026/3/25