# 智能IT支持服务台 - Secret 管理方案 **版本**: 1.0 **更新日期**: 2026-06-14 **状态**: 规划中 --- ## 一、背景 当前 `.env` 文件中存储了敏感信息: - WECOM_SECRET(企微应用密钥) - WECOM_ENCODING_AES_KEY(消息加密密钥) - DIFY_API_KEY(Dify API 密钥) - POSTGRES_PASSWORD(数据库密码) - REDIS_PASSWORD(Redis 密码) **风险**: - `.env` 文件在 Git 仓库中(虽然被 .gitignore 排除,但部署时需手动复制) - 服务器上 `.env` 文件可能被未授权访问 - 密钥轮换需要手动修改文件和重启服务 --- ## 二、长期方案 ### 方案对比 | 方案 | 复杂度 | 安全性 | 适用场景 | |------|--------|--------|----------| | **Server Keyring** | 低 | 中 | Linux 服务器(当前使用) | | **Docker Secrets** | 中 | 高 | K8s/ Swarm | | **HashiCorp Vault** | 高 | 高 | 企业级 | ### 推荐:Server Keyring #### 方案1:Server Keyring(Linux,当前使用) > ⚠️ NAS 部署方案已下线,当前使用公司内网服务器部署 ```bash # 使用 keyring 工具 keyring set wecom-it-desk WECOM_SECRET keyring get wecom-it-desk WECOM_SECRET ``` #### 方案2:Docker Secrets(备选) ```bash # 使用 keyring 工具 keyring set wecom-it-desk WECOM_SECRET keyring get wecom-it-desk WECOM_SECRET ``` --- ## 三、短期止血 | 操作 | 说明 | |------|------| | 限制 .env 文件权限 | `chmod 600 .env` | | 不在 URL 中暴露 token | 已完成(P0-#4) | | 定期轮换密钥 | 建议每季度 | | 审计日志 | 规划中 | --- ## 四、实施计划 | 阶段 | 内容 | 优先级 | |------|------|--------| | MVP | 当前方案 + 限制文件权限 | P0 | | V1 | 迁移到 Server Keyring | P2 | | V2 | 迁移到 HashiCorp Vault | P3 | --- ## 五、相关文档 - `.env.example` - 环境变量模板(含 TODO 注释) - `docs/安全审计报告.md` - 安全审计记录