必须依赖权限系统实现多租户数据隔离,具体通过project级rbac控制、memory物理分域存储、skills命名空间沙箱、gateway请求头强校验及本地采集白名单五种路径协同保障。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在部署OpenClaw时需支持多个业务单元或外部团队共用同一套系统,但又要求彼此数据不可见、不可访问,则必须依赖其权限系统对多租户场景下的数据流与存储层实施严格隔离。以下是实现该目标的几种核心设计路径:
一、基于Project级身份绑定的访问控制模型
OpenClaw沿用OpenStack Keystone的多项目(Project)抽象机制,将每个租户映射为独立Project,并通过RBAC策略强制约束资源可见性。所有API请求均携带project_id上下文,Gateway组件在路由前完成权限校验,拒绝跨Project的数据读写操作。
1、在Keystone中为每个租户创建独立Project,分配唯一project_id;
2、为每个Project配置专属Service User,并绑定最小权限角色(如member);
3、在OpenClaw Agent启动时加载租户专属Policy文件,禁止调用非本project_id关联的Memory或Skills模块;
4、所有本地文件读写操作由Agent封装为带project_id前缀的路径,例如/var/lib/openclaw/memory/<strong><font color="green">proj-a-7f3d</font></strong>/session_20260521.log。
二、Memory模块的物理分域存储策略
OpenClaw的Memory子系统不采用全局共享数据库,而是按租户粒度部署隔离的存储后端实例。每个租户对应独立的SQLite文件或专用PostgreSQL schema,杜绝跨租户内存快照混用可能。
1、部署阶段通过openclawctl tenant init --name finance-dept --storage sqlite命令触发专属Memory初始化;
2、Memory服务监听unix:///run/openclaw/memory-finance-dept.sock等租户专有socket路径;
3、Gateway转发请求时,依据HTTP Header中的X-OpenClaw-Project字段动态挂载对应Memory实例;
4、所有缓存键(cache key)自动注入租户标识,例如cache:finance-dept:doc:report_q1,确保Redis等共享缓存亦不越界。
三、Skills执行沙箱的命名空间隔离
Skills作为可执行逻辑单元,在调用系统命令、读取文件或发起网络请求前,必须运行于以租户ID命名的Linux namespace中。该机制从内核层面阻断跨租户进程通信与文件系统遍历。
1、Agent为每个租户预创建独立mount namespace及PID namespace;
2、Skills脚本启动时通过unshare --user --pid --mount --fork进入隔离环境;
3、/proc、/sys等虚拟文件系统被重映射,仅暴露本租户可见进程与设备节点;
4、文件系统挂载点限制为/home/<strong><font color="green">tenant-finance</font></strong>及其子目录,禁止向上穿越根目录。
四、Gateway层的请求头强校验与路径重写
所有外部请求必须经由Gateway统一入口,其内置租户识别引擎解析JWT令牌或Basic Auth凭据,提取project_id并注入下游服务调用链。任何缺失或非法project_id的请求将被立即终止且不记录审计日志。
1、在Gateway配置中启用tenant_validation: strict模式;
2、对来自WhatsApp/Slack的Webhook请求,自动提取chat_id并匹配预注册租户表;
3、对HTTP请求路径进行重写,将/api/v1/documents转为/api/v1/<strong><font color="green">finance-dept</font></strong>/documents;
4、禁止使用通配符路径(如/api/v1/*/documents)或未绑定project_id的裸路径访问。
五、本地敏感信息采集的租户白名单机制
OpenClaw默认禁用本地数据主动采集能力,仅当租户在部署时显式声明并签署《终端数据授权书》后,才允许Agent加载对应Skills模块。白名单配置固化于只读配置区,运行时不可热更新。
1、管理员通过openclawctl tenant grant --tenant hr-team --scope contacts,calendar授予权限;
2、Agent启动时校验/etc/openclaw/tenants/hr-team.policy签名有效性;
3、采集行为仅限于白名单内路径,如~/Documents/<strong><font color="green">hr-team-data</font></strong>/,其余路径返回空响应;
4、所有采集数据在写入Memory前,自动附加租户水印字段"tenant_origin": "hr-team"。










