首页/AI/AI 应用速查/API Key 管理:绝不进前端

API Key 管理:绝不进前端

密钥泄露是最高频的 AI 事故:Key 只存服务端(环境变量/密钥管理服务),按环境与用途拆分、配最小额度、定期轮换、监控异常用量,并扫描代码库防误提交。

AI 应用速查AI更新于 2026-10-13

API 密钥管理是什么

密钥泄露是 AI 应用最常见的安全事故:把密钥写进前端代码、提交进仓库、打进镜像层,都会让它对全网可见。正确做法是密钥只存在服务端环境变量或密钥管理服务里,按环境与用途拆分,逐个设置额度上限,定期轮换,并在提交前扫描防止误提交。已经泄露过的密钥必须立即作废重发,只改文件里的那一处并不安全。

基本信息

存放位置服务端环境变量或密钥管理服务,绝不进前端与移动端
拆分原则按环境与用途分别签发,一个用途一把密钥
额度控制每把密钥设置用量上限,异常时可快速熔断
轮换节奏定期轮换,人员变动与疑似泄露时立即执行
防误提交提交前扫描代码库,仓库历史与镜像层同样要检查
泄露处置直接作废并重新签发,同时排查调用记录

常见泄露场景与后果

场景成因后果
前端直连接口密钥写进网页或小程序的请求里任何人打开调试工具都能看到并使用
密钥进仓库本地配置文件未加入忽略清单仓库历史与分支长期留痕,扫描工具可批量发现
密钥进镜像构建阶段把密钥写进镜像层镜像分发范围越大泄露面越广
日志记录请求头日志系统未对鉴权头脱敏运维与日志平台都能看到密钥明文
多环境共用测试与生产共用一把密钥测试侧误操作直接影响生产额度与数据

治理要点

  • 前端只调自有后端,由后端持有并注入真实密钥
  • 把配置文件加入忽略清单,同时在提交前做密钥特征扫描
  • 网关统一持有上游密钥,业务侧只携带内部令牌
  • 按功能统计用量,突增时能定位到具体密钥与调用方
  • 离职与转岗时把相关密钥纳入回收清单

安全使用与自查

安全使用与自查
# .env 只放服务端,并加入忽略清单
OPENAI_API_KEY=sk-...            # 通过环境变量读取,不写进代码
# 提交前扫描常见密钥前缀,避免误提交
grep -rn "sk-[A-Za-z0-9]\{20,\}" . --exclude-dir=node_modules --exclude-dir=.git
# 检查仓库历史:已提交过的密钥必须作废,仅修改文件不够
git log -p | grep -n "api[_-]key" | head
# 镜像构建阶段不要通过构建参数传密钥,改由运行时注入

密钥治理清单

环节做法检查方式
签发按环境与用途拆分,最小权限核对每把密钥的实际用途
存储环境变量或密钥管理服务确认代码与镜像里不含明文
使用服务端注入,日志脱敏抽查日志中的请求头字段
监控按密钥统计用量与异常配置用量突增告警
回收定期轮换,人员变动即换核对已失效密钥是否仍可调用
把密钥统一放在网关上是常见做法:业务侧不接触上游密钥,轮换时只改网关配置,影响面小且便于审计。
怀疑泄露时先作废再排查:留着有效密钥去分析调用日志,等于给攻击者留了一张仍在生效的门票。

易错点

  • 前端直连接口并携带密钥:密钥对全网公开,被扫描后直接刷量盗用
  • 密钥提交进仓库后只改文件不换密钥:历史记录里的旧密钥依然有效
  • 一把密钥走天下:一处泄露全线失守,也无法按功能定位异常用量
  • 日志里记录完整请求头:日志平台与值班人员都能看到密钥明文
  • 发现异常用量却不作废密钥:损失随时间线性扩大

数据来源与参考

  • OWASP LLM Top 10(LLM02 敏感信息泄露);厂商密钥安全指南

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌