威胁模型与原则
每台远程 Mac 是构建与执行面。凭据管理要承认:节点失陷或历史泄露波及全云;日志与调试会印出密钥;人员变动未轮换旧钥长期有效。
原则:一钥一职、云侧 最小权限、密钥不进 Git、日志只记凭证 ID与 node_id。
| 做法 | 爆炸半径 | 建议 |
|---|---|---|
| 全集群同一 API Key | 极大 | 按入口、队列工、签名机拆分 |
| 全量 secrets 同步到各机 | 大 | 按组下发角色包(见部署同步文) |
| 仓库仅声明变量名、机读密文走 OS 路径 | 小 | 推荐为默认架构 |
目录与环境变量布局
/etc/openclaw/secrets.d/目录700、文件600,仅服务账户可读。- 拆
queue.env、webhook.env、notify.env;LaunchAgent 注入或包装脚本source,勿在交互 shell 导出。 - 仓库只放非敏感配置与变量名;CI 密钥扫描防误提交。
- 含密备份与快照按密级管理。
常见错误:模板里夹真测试 Key;合并前须扫描拦截。
节点间不同凭据范围
按角色映射:入口机只保留校验与入队权限(见 Webhook 文);工作器仅队列 + 任务最小资源(如单桶前缀);签名机独占证书与公证钥,不拷到通用 CI。容器场景单文件挂载如 /run/secrets/notify_token;物理机用独立用户隔离 signing.env。
常见错误:
secrets.tar 全量同步各机,抵消分节点凭据管理。
轮换与应急吊销
- 签发 B,权限与 A 同或更严(收紧 最小权限)。
- B 写入 secret store,重载服务,暂留 A。
- 按节点看成功率与 401、403。
- 吊销 A 并清磁盘与含密备份。
应急吊销:Runbook 写明控制台路径、先停供方还是先 launchctl unload、如何排空队列;通报勿用已泄露机器人。常见错误:无重叠全量切钥致集体 401 或半状态;非确认被盗应保留短重叠。
审计与排错 FAQ
审计记 node_id、角色、凭证标签、时间窗;与云日志按任务 ID 关联。季度删闲置钥。可引用:目录 700、文件 600;重叠覆盖一轮发布;日志保留不少于十四天。
| 现象 | 可能原因 | 处理 |
|---|---|---|
| 单机 401/403 | 该机 env 陈旧或下发失败 | diff secrets.d,重下发并重载 Agent |
| 读密文件 denied | 服务用户与属主不一 | 对齐属主与 ACL |
| CI 日志泄钥 | 调试输出环境 | 关调试、轮换 |
| 轮换后全挂 | 旧钥早删或时钟偏 | 恢复重叠、校时、回滚再切 |
落地步骤(五步)
- 画角色与最小 API 权限表。
- 试点机验证目录与 LaunchAgent 顺序。
- 同步管线按组下发 secrets,禁全量同包。
- 双钥轮换演练并记回滚点。
- FAQ 与 Runbook 入库与权限策略联审。
小结与下一步
多节点 · 免登录先看方案
用独立 Mac 节点落实分角色密钥与最小挂载
多台远程 Mac 便于分角色隔离;首页免登录可看价格与说明后再下单。
分节点凭据
最小权限
可演练轮换