名称: api-credentials-hygiene
描述: 审计并加固 API 凭据处理(环境变量、隔离、轮换计划、最小权限、可审计性)。适用于集成服务或准备生产部署,需要安全管理密钥的场景。
API 凭据管理规范:环境变量、轮换、最小权限与可审计性
目的
审计并加固 API 凭据处理(环境变量、隔离、轮换计划、最小权限、可审计性)。
使用时机
- 触发场景:
- 加固此集成的凭据设置,并将密钥移入环境变量。
- 为这些 API 设计一个停机时间最短的密钥轮换计划。
- 审计此服务的最小权限访问,并记录每个密钥的权限范围。
- 为此项目创建一个环境变量映射表和一个安全的 .env 模板。
- 为开发和生产环境设置凭据隔离,并建立清晰的审计跟踪。
- 请勿使用:
- 试图在未经授权的情况下获取密钥或绕过安全控制。
- 需要法律/合规性批准(本工具输出技术文档,而非法律建议)。
输入信息
- 必需信息:
- 集成/API 列表,以及当前凭据的存储/使用位置。
- 部署环境(本地开发、服务器、容器、n8n 等)。
- 可选信息:
- 当前配置文件/脱敏片段(.env、compose、systemd、n8n 凭据列表等)。
- 组织规则(轮换周期、密钥管理器偏好)。
- 示例:
- “密钥硬编码在 Node 脚本和一个 n8n HTTP Request 节点中。”
- “我们有开发和生产两个 n8n 实例,需要实现隔离。”
输出成果
- 凭据映射表(服务 → 环境变量 → 权限范围 → 所有者 → 轮换周期)。
- 轮换操作手册(步骤 + 回滚方案)。
- 最小权限检查清单和审计日志计划。
- 可选:
.env 模板(仅包含占位符)。
成功标准:无密钥被提交或嵌入代码、权限最小化、轮换步骤已记录、可审计性已定义。
工作流程
- 清点凭据:
- 定义隔离:
- 将密钥移至环境变量/密钥管理器引用:
- 创建环境变量映射表并更新配置计划(代码/工作流中不出现原始密钥)。
- 最小权限:
- 针对每个 API,枚举所需操作并相应缩减权限/角色范围。
- 轮换计划:
- 如支持,采用双密钥重叠机制;制定停机时间最短的轮换步骤及回滚方案。
- 可审计性:
- 定义记录哪些事件(认证失败、令牌刷新、密钥使用情况等,如可用)。
- 暂停并询问用户,如果:
- 所需操作未知,
- 密钥注入方式不明确,
- 轮换周期/所有者未指定。
输出格式
凭据映射表示例:
凭据映射表
- 集成:<名称>
- 环境变量:
- <变量名>:<用途>(密钥/非密钥)
- 权限/范围:<列表>
- 使用者:<服务/工作流>
- 存储位置:<密钥管理器/环境变量>
- 轮换:<周期> | <所有者> | <流程>
- 审计:<记录内容及位置>
如果提供模板,请输出仅包含占位符的 assets/dotenv-template.example 文件。
安全与边界情况
- 切勿输出真实的密钥、令牌或私钥。请使用占位符。
- 默认情况下为只读模式;除非明确要求修改文件,否则仅提出变更计划。
- 除非有文档记录的需求作为依据,否则避免使用过宽的权限/角色范围。
示例