--- name: edge-security-secrets description: edge_collector 密钥、权限和敏感配置处理规范。用于处理 AI Key、JWT secret、MQTT dynsec、SSH 密码、数据库密码、Token、配置同步、日志脱敏、提交检查和用户可见文档时,防止泄露、覆盖运行密钥或把敏感信息提交到仓库。 --- # edge_collector 敏感配置安全 ## 敏感信息范围 - AI Provider API Key。 - `jwt_secret`。 - terminal `credential_key`。 - MQTT dynsec 管理员和客户端密码。 - 数据库账号密码。 - SSH 密码和私钥。 - Token、Cookie、Session。 - 内网穿透访问密钥。 - 客户设备真实敏感地址。 ## 基本原则 - 不在最终回复中打印完整密钥。 - 不把密钥写死进代码。 - 不提交真实配置。 - 不用打包产物覆盖远端运行密钥。 - 日志和前端错误提示要脱敏。 - 用户文档隐藏内部模型、Provider、Key、URL 中的敏感部分。 ## 配置文件 运行态配置优先保存在目标主机 `runtime` 或服务目录下: - `runtime/edge/config/` - `~/cloud_server/config/server_config.json` - `~/cloud_server/config/ai_config.json` 打包和同步脚本必须保护动态配置。修改以下脚本时要特别检查: - `package.sh` - `deploy_cloud.sh` - `scripts/migrate_edge.sh` - `scripts/install_all.sh` ## 脱敏规则 展示时保留前后少量字符: ```text sk-abc...xyz ``` URL 中如包含 key、token、password 参数,必须隐藏参数值。 日志中禁止输出: ```text Authorization api_key password secret token credential_key ``` ## 提交前检查 提交前建议: ```bash git status --short git diff --cached rg -n "api[_-]?key|password|secret|token|credential_key|Authorization" . ``` 发现真实密钥时: 1. 不提交。 2. 改为配置文件或环境变量。 3. 如已暴露,提醒用户轮换密钥。 ## 云平台 AI 配置 - 后端配置可保存 Provider、Base URL、模型名、思考模式等。 - 前端和报告不展示内部 Provider 名称、模型细节和 Key。 - AI 请求失败日志可以记录错误类型和状态码,但不要记录 Key。 ## 远程操作 - SSH 命令中可使用既有默认连接规则,但最终回复不要打印密码。 - 采集远程配置时,输出前先脱敏。 - 复制配置文件前确认是否包含密钥。 ## 用户可见文档 - 协议介绍、用户手册、AI 报告、导出报告不写内部技术细节和密钥。 - 运维文档可以写配置路径和字段含义,但示例值必须使用占位符。