权限、安全、备份与维护
本文覆盖生产运行的最小安全与维护流程。示例中的地址、账号、口令和令牌均为占位符;凭据只能通过受控部署系统、环境变量或受限密钥库传递。
1. 访问控制
| 身份 | 适用场景 | 要点 |
|---|---|---|
| 管理台登录 | 人工运维 | 管理员凭据换取会话令牌;所有写操作带操作者审计。 |
API Key:full | 受控自动化写操作 | 仅给必须创建、发布或回滚的服务。 |
API Key:readonly | 报表、监控和只读集成 | 写端点统一拒绝,遵循最小权限。 |
| Agent bootstrap token | Agent 接入与身份注册 | 只用于定位所属环境,并判定注册阶段的受信内部调用方;数据面另需管理台确认过的实例身份。不等同于管理员凭据,也不是公网安全边界。 |
API Key 明文仅会在创建或重置时显示一次。立即保存到受控密钥库;遗失时重置,旧密钥立即失效。不要把 Key、登录令牌、Agent token、数据库 DSN、完整公网地址或端口写进仓库、Wiki、截图、日志和工单。
1.1 管理 API 密钥:创建、重置、吊销
入口在侧栏「系统 → 密钥」。列表顶部汇总密钥总数与生效 / 已过期 / 已吊销数量,点任意一行打开详情。
创建
- 点「创建密钥」,填名称(写清用途,例如「巡检脚本」)、角色、过期时间(可留空表示永不过期),并填写审批原因后提交。
- 提交后拿到的是审批申请,不是可用的密钥。页面会提示申请已创建,可一键跳到审批中心看进度。
- 审批批准并执行完成后,由原申请人一次性领取明文。明文只在领取时显示一次,关闭后无法再查看——当场存进受控密钥库。
角色怎么选
读写:可发起写操作,但每一次写仍各自走审批;只给确实需要创建、发布、回滚的自动化。只读:写端点统一拒绝(403)。但它仍可直读日志、文件资产正文、受限目录浏览与消息载荷——这些读取走管理读权限、只留审计。所以只读密钥同样要按最小权限发放;发现过度发放就收敛,而不是假定「只读就安全」。- 需要 full 角色的入口(例如
/debug/pprof/*取证)只认读写凭据,只读密钥一律被403拒绝。
重置(轮换)与吊销
- 重置是同一把密钥换新内容:立即换出新明文,旧明文立即失效。用于定期轮换或疑似泄露后的换钥;先准备好更新调用方,或挑可接受短暂中断的窗口做。
- 吊销是这把密钥作废:立即生效且不可恢复,不必审批,用于止损(凭据已泄露、调用方已下线)。被吊销的调用方一律被拒,需要重新创建一把。
- 设了过期时间的密钥到期后状态显示为「已过期」,调用方被拒。临时性自动化优先设过期时间,而不是永不过期。
排障提示:调用方报错先分清 401 与 403——401 是凭据无效、过期或已吊销,403 是权限不足(最常见的原因是拿只读密钥做写操作)。不要把管理员凭据复制给多个自动化共用。
管理台、管理 API、Prometheus 指标和数据库均应置于受控网络或反向代理之后。不要将管理端口直接公开到互联网;如需跨网络访问,使用组织认可的 HTTPS、网络准入和访问日志。
2. 配置与密钥卫生
- 从
config.example.yml或.env.example创建本机配置,真实.env不入库。 - 将数据库口令、管理员口令、签名密钥、Agent token 和发布仓库凭据经环境变量或密钥管理系统注入。
- 区分启动/安全项与可热更新的运维设置:改数据库、监听地址、认证或 token 后按部署流程重启;热设置在管理台变更并保留审计。
- 轮换前先建立新凭据、灰度验证依赖方,再撤销旧凭据,避免一次性断开所有 Agent 或自动化。
- 对配置预览、日志、审计导出和文件资产预览执行脱敏与最小可见原则。
- 控制面首 次创建的本地加密密钥必须保存在私有目录;不要复制、放宽 ACL 或用共享临时目录覆盖密钥文件。权限检查失败时应修正部署目录,而不是跳过启动保护。
- MCP 自动化使用独立 OAuth client 和 HTTPS 反向代理。仅信任明确配置的代理 CIDR;不要将 MCP bearer 用于普通管理 REST,也不要把 client secret 写入脚本、日志或仓库。
3. 备份与恢复演练
备份不是只复制控制面二进制。至少覆盖:
- 主数据库,以及启用时的归档数据库;
- 控制面配置和由部署系统管理的密钥恢复材料;
- 每个 Agent 的
plugins/Beacon*状态目录,包括身份、配置快照和传输账本; - 已核验的控制面与 Agent GA 产品包及其 SHA-256 清单。
建议流程:先完成一致性数据库备份并校验可读;将备份加密后存放在独立受控位置;定期在隔离环境恢复数据库和一个 Agent 快照,验证能登录、身份仍被识别、历史审计可查且玩家链路不会因控制面恢复过程被阻断。恢复时不要把测试环境的 token 或地址带回生产。
热数据到期前应先归档、校验行数和抽样哈希,再清理热库。归档不可用时控制面可以降级运行,但必须告警并在恢复后处理积压;不要直接删除尚未验证归档的数据。