跳转到主要内容
一个密钥出现在了一次公开提交、一份 CI 日志、一张截图,或一次 供应商泄露中。时钟在走:任何持有那个 sk-orca-… 字符串的人都能 花你的余额、驱动你的智能体,直到你切断它。本页是事故运行手册 ——先切断凭据,然后审计它做了什么——面向在控制台中自行 管理密钥的客户。 生命周期机制(禁用 vs. 删除、密钥状态、角色)见于 管理密钥;本页是正在遭受攻击时的 序列,以及——至关重要地——在止血之后在审计追踪中检查什么
在你调查之前先停止花费。 一个带有 credit_limit_usd 上限和 一个 allow_ips 列表的限定范围密钥能限定损害,但一个无任何 上限的泄露密钥只要还活着就能持续烧余额。先吊销;取证其次。

1. 吊销泄露的 api 密钥(先做这个)

你有两个切断动作,都在控制台 Keys 界面(/console/token)中。 两者都需要 Developer 角色或以上——该操作运行在你的会话 / 访问令牌上,永远不在一个中继密钥上。

禁用 —— 可逆暂停

把密钥的状态翻转为 Disabled。它发出的每个请求都被立即 拒绝,但密钥、它的限制、它的策略附加项以及它的使用历史全部 保持完好。当你在深入调查时需要保留配置和日志,就用这个。

删除 —— 永久吊销

对该密钥选择 Delete。该凭据再也无法授权一个请求,且不可 恢复。一旦泄露已确认且你已从追踪中捕获了所需内容,就用这个。
一个常见模式:在你怀疑暴露的那一刻立即禁用(零延迟遏制, 没有损失),运行 §3–§4 的审计,然后在你限定了影响半径后 删除。无论你做什么,都为替换签发一个全新密钥——永远不要 重新启用一份已经在野外被看到的凭据。零停机交接见于 密钥轮换
禁用或删除在下一次请求时生效——没有重新部署、没有传播延迟。

2. 趁此之机,收紧替换密钥

一次泄露是修复那个让它造成伤害的范围的时刻。替换密钥应当携带 工作负载实际需要的最狭窄身份,使下一次泄露成为一桩非事件:
一个 IP 允许列表 意味着一个 泄露密钥从你之外的任何地址都无用。来自未列出 IP 的请求在认证层 被拒绝,在它们花费任何东西之前。
一个 花费上限0 = 无限) 限定最坏情况。一个带有收紧的每周天花板的泄露密钥无法耗尽你的 工作区余额。
模型限制 阻止一个窃贼把你的 廉价密钥切换到你最贵的模型上。
一个 到期-1 = 永不)意味着 一个逃过你注意的密钥仍会自行停止授权。
关于完整的一个智能体一个密钥的姿态,参见 最小权限检查清单

3. 审计请求日志——这个密钥调用了什么?

凭据被切断后,限定损害。那个密钥发起的每一次中继调用都被记录在 你的工作区请求日志中,而每一行都携带你重构事故所需的字段:
字段它告诉你什么
token_name / token_id哪个密钥——确认你看的是那个泄露的。
ip每次调用的源地址。一个来自你不认识 IP 的突发就是确凿证据。
模型 + 用量哪些模型被命中以及它们花了多少——你的花费暴露。
把日志视图过滤到泄露的密钥并按时间排序。两个问题最快回答 “有多糟”:
  1. 是否有来自一个不属于你的 IP 的流量? 那是已确认的滥用, 而非一次误报。
  2. 花费或调用模式是否在泄露窗口前后出现尖峰? 一次突然的 跳升就是攻击者的足迹。
如果该密钥携带了一个 allow_ips 列表,来自它之外的调用一开始 就从未被授权——因此外部 IP 行的缺失本身就是一份干净的健康 证明。这正是为什么钉住源 (§2)会把一次泄露 变成一桩非事件。

4. 读取策略追踪——它试图什么?

请求日志告诉你密钥调用了什么;策略平面告诉你它试图让模型什么,以及你的防护栏和防火墙是否捕获到它。两者都是工作区 限定的。防护栏匹配可被任何工作区成员读取;防火墙 Events / Runs 视图需要 Developer 角色或以上(防火墙策略和 设置对每个成员保持开放)。

防护栏匹配

每当该密钥的流量命中一条防护栏规则时,一条匹配记录就落在 GET /api/guardrail/match——携带规则类型、action (block / mask / flag)、stage 和违规细节。过滤到泄露密钥的 窗口,看看它推送通过了什么内容(PII、密钥、越狱尝试)。

防火墙事件

该密钥发出的每一次工具调用都是一个防火墙事件——allowauditdenysanitize 或被挂起。一连串 deny 事件是一个 试图做它不被允许之事的智能体。在 Events / Runs 视图中按运行 汇总它们。
读取追踪时值得知道的几个具体点:
  • 防护栏匹配只在 “记录原始内容” 对那个防护栏开启时才记录被 匹配的子串(它默认关闭)——所以一条匹配行可能显示规则 和动作而没有原始文本。类型 / 动作 / 阶段始终都在。
  • mark-fp 标记一次匹配(POST /api/guardrail/match/:id/mark-fpAdmin)让你把一次命中标记为误报,使它不再扭曲你的事故视图 ——不要用它来掩埋真实的滥用。
  • 防火墙拒绝是工具前的。 一个 deny 事件意味着攻击者的工具 调用在它到达工具之前就被拦截——防火墙已经遏制了那个动作。 该事件是它曾尝试过的证据。
在同一个时间窗口上交叉引用这三条追踪: 请求日志 中的一个 外部 IP、一波防护栏匹配的尖峰,以及一簇防火墙 deny 事件,合在 一起描绘出完整图景——攻击者拥有什么、他们尝试了什么、以及什么 被阻止了。

5. 事故之后

重新检查 Keys 列表:泄露的密钥应当读作 Disabled 或完全 消失。如果你只是禁用了它,在你完成审计后安排删除——参见 管理密钥
在退役旧密钥之前把流量移到新的、范围更紧的密钥上,使永远不会 有一个无可用密钥的缺口。完整交接: 密钥轮换
如果泄露的密钥没有 allow_ips、没有 credit_limit_usd,且 model_limits 很宽,那才是真正的发现。给每个智能体它自己的 范围狭窄的密钥—— 最小权限检查清单范围与密钥 走完整个姿态。

6. 相关

管理密钥

禁用 vs. 删除、密钥状态,以及每个操作背后的角色门控。

密钥轮换

从一个被攻陷密钥到一个干净密钥的零停机交接。

IP 允许列表

把一个密钥钉到你的源地址,使一次泄露无法在别处被使用。

数据外泄

一个泄露密钥最常喂养的威胁,以及防火墙的 egress 执行面如何 限定它。
整个序列刻意保持简短:吊销,然后审计。每个密钥一开始的范围 越窄,你需要运行的审计就越小——而一份泄露凭据从紧急情况变成 一个脚注也越快。