API Key 泄漏排查

更新时间:
复制 MD 格式

API Key 疑似泄漏后的排查路径:定位并处置泄漏 Key 止损,查用量与费用锁定异常时段,查审计日志与推理日志确认调用行为,通过操作审计核对管理操作,完成定损取证与轮换恢复。

排查思路

若已确认泄漏,请先前往API Key 管理页面重置或删除泄漏的 Key 立即止损,再按本页步骤排查影响面;尚不确定是否泄漏时,从第二步的用量核对开始。

泄漏排查要回答五个问题,每个问题对应一个控制台信息源:

要回答的问题

查询入口

能得到什么

泄漏的是哪个 Key?谁创建的?现在什么状态?

API Key 管理页面

Key ID、脱敏 Key、描述、归属账号、创建时间;重置、编辑、删除、查看费用操作

这个 Key 被调用了多少、花了多少钱?

模型用量、费用概览与账单

按 API Key 分组的调用次数、Token 用量、按天粒度的用量曲线、金额

调用从哪来、调用了什么模型、成功还是失败?

审计日志

Request ID、时间、模型、Token 用量、延迟、状态码、错误码;可按 API Key 筛选

调用的输入输出内容是什么?

推理日志(需事先开启)

完整 Prompt 与 Response(长度上限 128K)

这个 Key 经历过哪些管理操作?

操作审计 ActionTrail

控制台与 OpenAPI 层面的操作事件记录

建议按以下顺序推进:

疑似泄漏
  ├─ 第一步:定位 Key,立即重置或删除(止损)
  ├─ 第二步:按用量与费用曲线锁定异常时间段
  ├─ 第三步:按审计日志确认调用来源与行为(已开启推理日志时可查输入输出内容)
  ├─ 第四步:核对 Key 的创建、删除等管理操作
  └─ 第五步:汇总定损,轮换凭证并修复泄漏源

第一步:定位并处置泄漏的 Key

前往阿里云百炼API Key页面,在右上角选择地域:各地域的 Key 相互独立,不能跨地域混用。

已确认泄漏时,优先重置或删除该 Key 立即止损;编辑收窄权限仅适合尚无法确认泄漏、需要观察期的场景。在 API Key 列表中找到目标 Key,在其操作列执行:

  • 重置:为该 Key 换发新值,旧值随即失效。
  • 编辑:收窄权限(IP 白名单、模型范围),参见API Key 防泄漏最佳实践。
  • 删除:立即失效、不可恢复。
  • 查看费用:跳转到该 Key 的费用与用量视图。

该页面可查到 Key 的身份信息:Key ID、脱敏后的 API Key(如 sk-ws-H.YHXL****PgonKozeC4RM-Nm)、描述、归属账号、创建时间。描述与归属账号是定位 Key 归属应用或负责人的第一线索;完整明文通常无法查看:新版 Key 仅创建时完整显示一次,部分旧版 Key 仍可在列表中直接复制,以列表实际提供的能力为准。排查时用脱敏值、ID 与描述比对。

说明删除 Key 不会取消已关联的异步任务:未执行完的异步任务仍会继续执行并产生费用,需另行终止,参见异步任务欠费计费说明。排查期间也可为该 Key 开启预算的“达到预算后立即停止”作为第二道止损,参见预算管理。

处置时注意两个易踩的误区:

  1. 仅创建新 Key不会使旧 Key 自动失效,旧 Key 必须单独处置。
  2. 不要把新 Key 放回尚未排查完成的可疑环境,否则等于把新凭证再次交出去。

第二步:查用量与费用,锁定异常时段

泄漏最直接的信号是不该出现的调用量或费用。在百炼控制台费用用量 > 模型用量页面,将分组维度设为 API Key,即可对比各 Key 的调用量,一眼看出哪个 Key 异常:

  • 时间粒度:分钟(最多查 1 天)、小时(最多 7 天)、天(最多 31 天)、月(最多 12 个月);定位突发高额调用用小时粒度。
  • 数据延迟:调用次数延迟约 1 分钟内,Token 用量与费用约延迟 10 分钟;刚发生的滥用可能稍后才体现,不要因暂时无数据排除嫌疑。
  • 明细行可点击查看费用关联金额;费用概览与账单核算参见查看费用概览与查询账单。

指标口径与操作详情参见查看模型用量。

排查时先排除正常业务波动:将异常时间、模型、调用量与业务的发布、批处理、压测、定时任务对照,并核查使用该 Key 的服务部署地域、出口 IP 与第三方工具是否发生变化。境外 IP、新 IP、用量突增都是需要核查的信号,不是泄漏的定案证据。处置力度与怀疑程度匹配:仅有告警通知或轻度异常时,先用审计日志核对调用来源;用量曲线确认存在陌生来源调用后,立即重置或删除该 Key 再继续取证。

建议以泄漏确认时间为终点,向前回看 7 天(小时粒度)与 31 天(天粒度),对比该 Key 的历史基线;锁定的异常时间窗即后续日志排查的范围。

第三步:查调用日志,确认调用行为

百炼的调用日志分为审计日志与推理日志两类,能力边界不同,排查时要分清。

审计日志

审计日志默认开启、存储在平台侧,无需配置,是排查主力,可在模型监控页面查看:

  • 记录字段:Request ID、时间、模型、Token 用量、延迟、状态、错误码,不包含输入输出内容。
  • 筛选与搜索:按时间(最长 30 天)、模型、API Key ID、状态、推理类型筛选,或按 Request ID 搜索。
  • 用途:确认泄漏窗口内该 Key 的调用是否来自预期行为,例如大量 4xx/5xx、异常的调用节奏、陌生模型的调用记录。

使用方法参见日志。

推理日志

推理日志包含完整的 Prompt 与 Response 及中间步骤(长度上限 128K),需要事先在数据投递中开启并投递到您自有日志服务(SLS,开启涉及云产品授权与日志服务费用),只对未来数据生效:开启前的历史调用无法追溯,关闭期间产生的日志不补录。开启方法与地域支持参见开启推理日志。未开启推理日志时,此前的调用只能通过审计日志的字段级信息排查。

溯源边界

平台可基于调用日志协助核查异常行为,但调用 IP、模型与时间信息通常不足以直接确认真实使用者或最初泄漏渠道,进一步溯源需要您侧的代码仓库、服务器、终端与第三方服务证据。排查的交付物是证据链与影响面,而不是定责结论;涉及违法行为的,依法保留证据并通过适当渠道处理。

第四步:查管理操作历史

API Key 的创建、删除等生命周期操作统一归集到阿里云操作审计(ActionTrail)。前往操作审计事件查询页面,按服务(百炼)与时间范围筛选:

  • 查找 Key 的创建事件,确认这个 Key 是谁、在什么时间创建的,核对归属责任。
  • 查找 Key 的删除事件,确认泄漏窗口前后是否有人删除过 Key,例如攻击者或内部人员试图抹除痕迹。

先通过操作审计确认 Key 状态与操作历史,再结合调用日志排查具体行为。

第五步:定损、取证与恢复

  1. 汇总定损:异常时间窗(用量曲线)加上调用来源与状态(审计日志)加上金额(账单),形成影响面结论。
  2. 圈定影响面:按 Key 的授权范围评估。持有百炼 API Key 不等同于获得账号密码或全部云资源权限,实际影响限于该 Key 的授权调用范围。注意百炼 API Key 与阿里云 AccessKey(AK)不是同一种凭据:若泄漏的是 AK,应走 RAM 的 AK 处理流程。
  3. 留存脱敏证据:保存截图与 Request ID 清单时,对 Key 值、账号 ID 做脱敏,不再在任何渠道传播完整 Key。
  4. 核对异步任务:删除 Key 不取消已提交的异步任务,需终止可取消任务并跟踪不可取消任务的费用。
  5. 确定轮换范围:已确认泄漏的 Key 尽快失效并替换;其余 Key 按暴露范围判断,与多个 Key 保存在同一已暴露环境中的,一并轮换并修复环境。
  6. 恢复顺序:参照高危位置清单修复泄漏源后,在可信环境创建新 Key 并重新配置权限与预算,更新各服务端、任务与第三方集成的凭证引用,确认新 Key 调用正常,最后核对旧 Key 已失效。

警告异常费用未查清前,不要简单提高预算或关闭止损配置后恢复调用,应先完成上述排查确认泄漏源已修复。

常见问题

泄漏的 Key 已经删除了,为什么还会收到告警?

检测与通知存在时间差,不能仅凭通知时间判断异常是否仍在持续;历史事件也可能在后续核查时才被发现并通知。收到通知不等同于旧 Key 仍能成功调用:如已处置旧 Key 且近期用量无异常,可核对通知对应的调用时间与 Key 标识后忽略。

同一个 Key 重复收到告警,是否等于确认泄漏?

不能仅凭重复次数确认泄漏。请核对每次告警对应的调用时间、Key 标识与异常内容,区分新发生的调用、同一事件的再次通知与历史记录。

为什么控制台看不到完整 Key,能否请客服查明文?

不能。新版 Key 仅创建时完整显示一次,之后无法再查看或复制完整明文(部分旧版 Key 仍可在列表中直接复制,以列表实际提供的能力为准)。

刚开启推理日志,为什么查不到昨天的输入输出?

推理日志只对未来数据生效,历史数据不可追溯。此前的调用只能通过审计日志的字段级信息排查。

用量页数据和实际调用对不上?

Token 用量与费用约有 10 分钟延迟;且用量页仅统计按 Token 后付费的调用,模型训练、预置吞吐(PTU)等不在其中。失败次数、限流错误等指标在模型监控页查看。

调用返回 429,是被限流还是被预算停止?

两者都返回 429。预算耗尽的错误信息为“您在‘预算管理’中设置的预算额度已用尽……”,参见错误码;限流 429 由限流或额度限制触发,可在模型监控中查看限流错误次数指标区分。

能否把日志批量导出做自己的分析?

自有分析需求请通过日志投递到您自有的 SLS 日志库,在日志库中检索与导出,参见数据投递。

怎么确认泄漏的是百炼 API Key 还是阿里云 AccessKey?

两者不是同一种凭据:百炼 API Key 仅用于访问其授权范围内的模型服务;阿里云 AccessKey 用于云 API 身份认证,权限由账号与授权配置决定。先确认泄漏的凭据类型,再进入对应产品的管理入口处理,不要混用流程。