返回指南
安全阅读约 9 分钟

API Key 安全最佳实践

API Key 生成、存储、轮换、权限范围、限流、日志和泄露响应实践。

把 API Key 当作生产凭证

API Key 属于持有者凭证,拿到 Key 的人通常可以持续调用服务,直到它被撤销、到期或受到限制。因此 Key 安全是产品能力,而不只是文档备注。

安全体系需要结合预防、检测和恢复:减少泄露概率、快速识别异常用量,并让客户能够顺利轮换和撤销凭证。

使用足够随机的 Key

Key 应足够长,并通过密码学安全随机源生成。可以使用简短前缀识别环境或产品,但密钥部分不可预测。

  • 测试与生产使用不同前缀。
  • 完整密钥只在创建时展示一次。
  • 服务端只保存密钥部分的哈希。

限制每个 Key 能做什么

权限范围和环境限制能够缩小泄露后的影响。报表 Key 不应修改数据,浏览器 Key 应限制域名和权限,服务器 Key 也应设置配额与轮换规则。

控制项作用示例
权限范围限制操作read:usage、write:messages
配额控制成本每月 5 万次请求
IP 白名单限制来源仅允许后端 IP
域名限制降低浏览器滥用仅 app.example.com
到期时间强制轮换90 天临时 Key

谨慎记录日志

日志应记录 Key ID、前缀、工作区、路由、用量、状态和耗时,但不能保存完整 Key。请求体、Header、链路追踪和客服导出都应清理敏感信息。

准备凭证泄露响应流程

Key 泄露后,客户需要快速撤销并创建替代凭证。产品应展示近期用量、受影响权限和可疑流量。自动检测可以监控公开代码、日志和异常峰值,但手动撤销仍必须简单。

  • 允许新旧 Key 短时重叠后再撤销。
  • 高权限 Key 变更时通知工作区管理员。
  • 说明确认泄露后的账单争议处理方式。