58 lines
1.2 KiB
Markdown
58 lines
1.2 KiB
Markdown
# KEY_MANAGEMENT_BASELINE
|
|
|
|
最后更新: 2026-06-14
|
|
|
|
## 1. 范围
|
|
|
|
本文件覆盖当前项目中的关键密钥材料:
|
|
|
|
- `GAOKAO_JWT_SECRET`
|
|
- `GAOKAO_ORDERS_FERNET_KEY`
|
|
- 管理后台密码
|
|
- 支付 provider 私钥 / 公钥 / webhook secret
|
|
- 渠道同步 webhook secret
|
|
|
|
## 2. 基本原则
|
|
|
|
1. 密钥不写入 Git
|
|
2. 密钥不打印到日志
|
|
3. 密钥不放在测试截图/文档示例中
|
|
4. 生产与测试密钥必须隔离
|
|
5. 支付密钥与业务数据库分离托管
|
|
|
|
## 3. 最小托管要求
|
|
|
|
- 使用环境变量或受控文件路径注入
|
|
- 受控目录权限最小化
|
|
- 记录每个密钥的负责人、用途、环境
|
|
|
|
## 4. 轮换基线
|
|
|
|
以下情况应触发轮换:
|
|
|
|
- 怀疑泄漏
|
|
- 管理员离职/权限变更
|
|
- 新环境切换
|
|
- 第三方支付证书更新
|
|
|
|
## 5. 应急恢复要求
|
|
|
|
至少能回答:
|
|
|
|
- 如果 JWT secret 丢失,如何切换新值并让旧 token 失效
|
|
- 如果 Fernet key 丢失,哪些历史敏感字段会受影响
|
|
- 如果支付私钥或 webhook secret 泄漏,如何停用并更换
|
|
|
|
## 6. 当前状态
|
|
|
|
已具备:
|
|
|
|
- 配置层面对部分 secret 的基本校验
|
|
- 示例配置不直接提交真实值
|
|
|
|
尚缺:
|
|
|
|
- 密钥台账
|
|
- 轮换 runbook
|
|
- 应急恢复演练记录
|