Skip to content

API Key 安全与账单防爆指南:分组、限流与逐笔对账实操(2026)

LLM 应用的两类高频事故——密钥泄漏账单失控——绝大多数不是被攻击,而是工程习惯问题:密钥硬编码进仓库、所有项目共用一把 key、从不看账单明细。本文以汕拓智算的密钥体系为例,给出一套可以直接照做的清单。

理解密钥分组:平台隔离的第一层

汕拓智算的每把密钥都属于一个分组,分组的平台(OpenAI / Anthropic / Google)决定这把密钥走哪套协议面:

  • OpenAI 分组 → /v1/chat/completions/v1/responses(Codex、Cursor、Cline)
  • Anthropic 分组 → /v1/messages(Claude Code)
  • Google 分组 → /v1beta(Gemini CLI)

这个设计天然形成了用途隔离:一把密钥只服务一类工具。排错时它也是第一检查点——401/404 的头号原因就是分组平台与端点不匹配。

密钥管理四原则

1. 按项目 × 环境拆分密钥

不要用一把"万能钥匙"跑所有东西。最小可行拆法:

text
项目 A - 开发    sk-...(openai 分组)
项目 A - 生产    sk-...(openai 分组)
Claude Code 个人 sk-...(anthropic 分组)

粒度决定两件事:泄漏时的爆炸半径(只作废一把,不影响其它业务),以及台账里的消费归因(哪个项目烧钱一目了然)。

2. 密钥只活在环境变量里

bash
# ~/.zshrc 或 CI 的 secret 管理
export SWATOWAPI_KEY="sk-..."

代码里只引用 os.environ["SWATOWAPI_KEY"]。任何形式的硬编码——包括"临时测试一下"——都是泄漏的起点。配合 .gitignore 排除 .env 文件,并给仓库装上密钥扫描(gitleaks 类工具)作为最后防线。

3. 泄漏处置:先作废,再清理

发现泄漏的处理顺序是固定的:

  1. 立即控制台作废该密钥;
  2. 创建新密钥,更新到环境变量 / secret 管理;
  3. 最后才是清理 Git 历史、撤回消息等善后。

顺序不能反。扫描机器人抓取公开仓库里的密钥是分钟级的事,先堵漏再擦地。

4. 定期轮换

对长期运行的生产密钥设一个轮换周期(例如每季度)。轮换的前提还是第 1 条——密钥拆得足够细,换起来才不伤筋动骨。

账单防爆:把对账变成习惯

接入即对账

每接入一个新工具,先跑一个小任务,然后到用量台账核对这笔调用的模型、输入/输出 token 与费用。知道"单次任务大概花多少钱",是一切成本直觉的基础——尤其 Cline 这类 Agent 工具,单次任务的 token 消耗可能远超你的想象。

每周台账巡检

台账逐笔记录、带 trace id,巡检只需要看三件事:

  • 调用量有没有无法解释的突增(可能是泄漏或代码里的循环 bug);
  • 有没有陌生的模型 id 出现(配置漂移或密钥被盗用);
  • 大额消费集中在哪些任务上(优化的靶子,见成本优化实战)。

计费规则里有两条对排查很友好:失败/超时不计费(异常重试不会滚雪球),充值与消费同账(对账不需要在多个系统间跳)。

客户端侧:429 与超时的正确姿势

  • 429 用指数退避 + 随机抖动,不要裸重试;
  • 设置合理的客户端超时,超时的请求不会计费,但你的用户体验需要兜底逻辑;
  • 限额与套餐相关,业务扩量前先在控制台确认配额。

清单版总结

  • [ ] 密钥按项目 × 环境拆分,分组平台与工具协议面匹配
  • [ ] 密钥只存在于环境变量 / secret 管理,仓库装密钥扫描
  • [ ] 泄漏处置流程演练过:先作废、再轮换、后善后
  • [ ] 新工具接入当天完成首次对账
  • [ ] 每周台账巡检:量、模型、大额任务
  • [ ] 客户端实现指数退避与超时兜底

相关阅读

常见问题

密钥不小心提交到 Git 仓库了怎么办?

立即到控制台作废这把密钥并创建新密钥,然后再清理 Git 历史。顺序不能反——历史一旦被拉取或被扫描机器人抓到,清理仓库已经来不及。泄漏处置的速度取决于你是否为每个项目使用独立密钥。

一个项目应该用几把密钥?

至少按环境分(开发/生产各一把),团队规模大时按成员或服务再细分。粒度越细,泄漏时的爆炸半径越小,台账里的消费归因也越清晰。

遇到 429 应该立刻重试吗?

不应该。429 表示触发限流,立刻重试只会加剧拥塞。正确做法是指数退避(例如 1s、2s、4s 递增,加随机抖动)。另外失败与超时的请求不计费,重试策略只需要考虑时延,不用担心重复扣费。

怎么及早发现账单异常?

养成两个习惯:接入新工具后第一时间到用量台账核对单次调用成本;每周扫一眼台账,关注调用量突增与陌生模型出现。逐笔记录带 trace id 的台账让异常定位可以精确到单次请求。

一个入口,接入 50+ 大模型。按成本与可用性自动路由,调用与扣费逐笔可查。