# 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` 文件可能被未授权访问 - 密钥轮换需要手动修改文件和重启服务 --- ## 二、长期方案 ### 方案对比 | 方案 | 复杂度 | 安全性 | 适用场景 | |------|--------|--------|----------| | **NAS Vault** | 低 | 中 | 有 NAS设备 | | **Server Keyring** | 低 | 中 | Linux 服务器 | | **Docker Secrets** | 中 | 高 | K8s/ Swarm | | **HashiCorp Vault** | 高 | 高 | 企业级 | ### 推荐:NAS Vault + Server Keyring #### 方案1:NAS Vault(当前可用) ```bash # 在 NAS 上创建加密文件 /volume1/docker/wecom-it-desk/secrets/.env.encrypted # 启动时解密 docker run --env-file <(gpg -d /volume1/docker/wecom-it-desk/secrets/.env.encrypted) ... ``` #### 方案2:Server Keyring(Linux) ```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 | 迁移到 NAS Vault | P2 | | V2 | 迁移到 HashiCorp Vault | P3 | --- ## 五、相关文档 - `.env.example` - 环境变量模板(含 TODO 注释) - `docs/安全审计报告.md` - 安全审计记录