97 lines
2.5 KiB
Markdown
97 lines
2.5 KiB
Markdown
---
|
|
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 报告、导出报告不写内部技术细节和密钥。
|
|
- 运维文档可以写配置路径和字段含义,但示例值必须使用占位符。
|