Crazyrouter

API Key 安全和用量监控:从防泄露到异常告警

更新于 2026-10-23 · crazyrouter.cyou

简答:API Key 不应放进前端、移动端、公开仓库、日志或 URL 查询参数。更稳妥的做法是由后端或密钥管理器保存 Key,按应用、环境和成员拆分,并同时监控请求数、Token、模型、错误率、来源 IP 与时间段;一旦发现异常,立即撤销旧 Key、检查用量并完成轮换。

定义:API Key 安全和用量监控,是通过安全存储、权限限制、用量统计、预算告警和轮换应急,降低密钥泄露、未授权调用与意外费用风险的一套管理方法。

先做这张自查表:API Key 应该放在哪里

本站为第三方指南,非某服务官方,以其官网为准。截至2026年10月23日,具体平台的控制台名称、字段和限额能力可能不同;如果你使用的是第三方 API Router 或 OpenAI Compatible 网关,应以该平台当前界面和文档为准,未核实的控制台路径不要直接套用。

场景推荐做法应避免的做法
本地开发使用环境变量或本地密钥文件,并把密钥文件加入忽略规则把 Key 直接写进源码、Notebook 或截图
后端服务使用环境变量、Secret Manager 或其他密钥管理服务把 Key 编译进程序或写入容器镜像
浏览器、移动端由自己的后端转发请求,客户端只拿业务侧短期凭证把长期 API Key 放在 JavaScript、APK 或 App 配置中
团队协作按成员、项目、应用或环境创建独立 Key多人共用个人 Key,导致无法区分用量和责任
请求传输优先使用 HTTPS 和服务商要求的认证请求头把 Key 放进 URL 查询参数、日志或错误上报内容

Google Cloud 官方建议为 API Key 添加 API 限制和应用限制,删除不再使用的 Key,隔离不同成员或应用,并定期轮换;OpenAI 官方也明确建议不要把 Key 部署在浏览器或移动端,而应通过后端服务器保存和调用。可分别查看 Google Cloud API Key 管理建议 与 OpenAI API Key 安全建议。

按环境和用途拆分 Key,再设置最小权限

不要只创建一个“万能 Key”供所有工具使用。建议至少拆分为开发、测试和生产三个环境;如果同时接入 Claude、GPT、Gemini、DeepSeek 或其他模型,再按照应用或团队继续拆分。这样做的直接价值是:异常调用时可以快速定位范围,撤销一个 Key 时不会同时影响所有服务。

  1. 开发 Key:只用于本地调试,设置较短有效期,避免连接生产数据。
  2. 测试 Key:只开放测试所需的模型或接口,并设置较低的日、月预算。
  3. 生产 Key:仅由后端服务使用,限制来源 IP、模型范围或项目范围,并设置轮换负责人。
  4. 团队 Key:不要多人复制同一串密钥;如果平台支持项目、成员和服务账号,应使用平台提供的隔离机制。

能限制时,优先同时限制“能访问哪些 API”与“从哪里访问”。Google Cloud 文档将这两类限制分别称为 API restrictions 和 application restrictions,并建议生产环境尽量配置限制。对于第三方路由平台,是否支持模型白名单、IP 白名单、项目隔离或有效期,需要逐项查看其当前文档,不能默认具备。

如果你使用 OpenAI API,官方文档还建议为项目 Key 设置过期时间并建立替换流程:先创建新 Key,更新服务并验证调用成功,再撤销旧 Key。具体能力和权限以当前账户界面为准。

用量监控要看哪些指标:不要只看余额

“还有多少余额”只能回答预算问题,不能判断 Key 是否被盗用。建议为每个 Key、项目或应用建立一份最小监控清单:

OpenAI 的 Usage Dashboard 支持按项目查看用量,并可导出活动或费用数据;部分接口响应也会返回输入、输出和总 Token。流式 Chat Completions 请求可以通过 stream_options.include_usage 请求最终用量块,但如果流被中断,可能收不到最后的用量块,因此不能把“缺少最终统计”理解为“没有消耗”。详情可参考 OpenAI API 用量与成本查看说明。

如何建立正常基线和告警规则

没有统一适用于所有项目的异常阈值,建议先连续观察一段时间,再按自己的业务基线配置告警。可以采用下面的低成本方法:

  1. 记录工作日和非工作日的每小时请求数、Token、错误率和来源 IP。
  2. 为每个项目分别记录常用模型和平均请求规模,不把所有应用混在一起计算。
  3. 先配置四类告警:预算达到阈值、请求量突增、出现陌生 IP、401/403/429 或 5xx 错误率升高。
  4. 告警信息只包含项目名、脱敏 Key 标识、时间、指标和处理链接,不包含完整密钥或完整 Authorization 头。
  5. 每次告警都记录“确认正常”“限流调整”“撤销 Key”或“误报”等处理结果,用于之后调整阈值。

预算告警和硬限制不是一回事。以 OpenAI 项目设置为例,官方说明显示,消费告警用于通知,硬限制才可能在达到已跟踪的消费额度后停止受影响的请求,而且执行并非瞬时完成,记录的消费可能略高于配置值。使用其他平台时,也应确认它的“额度”“软提醒”“硬停止”分别代表什么。

如果没有现成监控面板,可以在自己的后端记录结构化日志,并将请求数、Token、错误率和延迟汇总到监控系统。Google Cloud 的官方监控文档支持基于指标或日志创建告警策略,可作为自建监控方案的参考,但不代表第三方 API Router 一定提供相同功能。

发现 Key 泄露后的应急流程

一旦 Key 出现在公开仓库、前端代码、聊天记录、工单、日志或截图中,不要等待确认是否已经被调用,按“止损优先”的顺序处理:

  1. 立即撤销或禁用:在服务商控制台删除泄露 Key;如果支持禁用,先禁用再准备替换。
  2. 检查用量:查看泄露时间之后的请求数、Token、模型、IP、地域、错误率和费用变化,保存必要记录。
  3. 创建替代 Key:使用新的 Key 更新后端、环境变量、部署平台和 CI/CD 密钥。
  4. 验证服务:用最小请求验证认证、模型权限和额度,再恢复业务流量。
  5. 清理传播路径:从仓库历史、构建产物、日志、截图和工单中移除密钥;仅删除当前文件不等于历史记录已经安全。
  6. 复盘权限:重新检查 IP、模型、项目、有效期、预算和告警设置,并为下一次轮换指定负责人。

OpenAI 官方给出的处理建议包括删除受影响的 Key、检查 API 用量并联系支持;Google Cloud 官方则建议保留正在使用的 Key、删除不再需要的 Key,并通过监控和日志发现未授权使用。应急过程中不要把完整 Key 贴到工单、截图或聊天中。

一套可以今天执行的最小方案

如果你目前没有专门的密钥管理系统,可以先完成以下六步:

如果使用第三方网关或 API Router,重点核对四件事:Key 是否能单独撤销、是否能按项目查看用量、是否支持模型或 IP 限制、额度告警是提醒还是硬停止。当前无法从公开资料核实 crazyrouter.cyou 的具体控制台字段和监控能力,因此不对其页面路径、套餐、价格或状态作推断。

需要把多个模型接口统一到一个兼容入口时,可在完成 Key 分组、预算和日志脱敏后,再根据实际工具需求选择犀速 AI;使用前仍应以其官网公开说明和当前控制台为准。

常见问题

API Key 可以直接放在前端 JavaScript 里吗?

不建议。浏览器代码、移动端安装包和前端网络请求都可能被用户查看或提取。更安全的方式是让前端请求自己的后端,由后端保存 Key 并调用 AI API。

多人可以共用一个 API Key 吗?

不建议。共用 Key 会降低用量追踪和责任定位能力,也会让轮换和撤销影响范围变大。应按成员、项目、应用或环境创建独立 Key;具体平台是否支持项目级 Key,以其官方文档和当前界面为准。

只设置月度预算,就能保证不会超支吗?

不能直接假设。预算可能只是提醒,也可能支持硬限制;有的平台还会存在统计和执行延迟。设置后应确认它是软阈值还是硬停止,并同时监控请求数、Token 和模型。

发现 Key 泄露后,先改代码还是先删 Key?

先撤销或禁用泄露 Key,再创建新 Key 更新后端和部署环境。随后检查泄露时间后的用量、来源 IP、模型和费用,最后清理仓库历史、日志和截图中的敏感内容。

用量监控至少要记录哪些字段?

至少记录时间、项目或应用、脱敏 Key 标识、模型、请求数、输入和输出 Token、错误码、延迟、来源 IP 或地域。不要记录完整 API Key、Authorization 头或用户隐私内容。

相关阅读

参考资料

  1. Google Cloud:Best practices for managing API keys(docs.cloud.google.com)
  2. Google Cloud:Manage API keys(docs.cloud.google.com)
  3. OpenAI Help:Best Practices for API Key Safety
  4. OpenAI Help:Reviewing API usage and costs
  5. OpenAI Help:Managing projects in the API platform
  6. Google Cloud:View and manage metric usage(docs.cloud.google.com)
  7. Google Cloud:Manage alerting policies by API(docs.cloud.google.com)