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 开启预算的“达到预算后立即停止”作为第二道止损,参见预算管理。
处置时注意两个易踩的误区:
- 仅创建新 Key不会使旧 Key 自动失效,旧 Key 必须单独处置。
- 不要把新 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 状态与操作历史,再结合调用日志排查具体行为。
第五步:定损、取证与恢复
- 汇总定损:异常时间窗(用量曲线)加上调用来源与状态(审计日志)加上金额(账单),形成影响面结论。
- 圈定影响面:按 Key 的授权范围评估。持有百炼 API Key 不等同于获得账号密码或全部云资源权限,实际影响限于该 Key 的授权调用范围。注意百炼 API Key 与阿里云 AccessKey(AK)不是同一种凭据:若泄漏的是 AK,应走 RAM 的 AK 处理流程。
- 留存脱敏证据:保存截图与 Request ID 清单时,对 Key 值、账号 ID 做脱敏,不再在任何渠道传播完整 Key。
- 核对异步任务:删除 Key 不取消已提交的异步任务,需终止可取消任务并跟踪不可取消任务的费用。
- 确定轮换范围:已确认泄漏的 Key 尽快失效并替换;其余 Key 按暴露范围判断,与多个 Key 保存在同一已暴露环境中的,一并轮换并修复环境。
- 恢复顺序:参照高危位置清单修复泄漏源后,在可信环境创建新 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 身份认证,权限由账号与授权配置决定。先确认泄漏的凭据类型,再进入对应产品的管理入口处理,不要混用流程。