跳轉到主要內容
一把金鑰出現在一次公開 commit、一條 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 的爆發就是鐵證。
model + usage哪些模型被觸及以及它們的成本——你的花費暴露。
把日誌檢視篩選到外洩金鑰並按時間排序。兩個問題 最快回答「有多糟」:
  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-fp, Admin)讓你把一次命中標記為誤報,使它停止扭曲 你的事故檢視——別用它來掩埋真實的誤用。
  • 防火牆拒絕是工具前的。 一個 deny 事件意味著攻擊者的 工具呼叫在它抵達工具之前就被封鎖——防火牆 已經收束了那個動作。該事件就是它嘗試過的證據。
在同一個時間窗口上交叉參照這三條軌跡: 請求日誌中的一個外來 IP、 一陣防護欄匹配的尖峰,以及一叢防火牆 deny 事件 合在一起描繪出完整圖景——攻擊者擁有什麼、他們 嘗試了什麼,以及什麼被擋下了。

5. 事故之後

重新檢查 Keys 清單:外洩金鑰應讀為 Disabled 或 已完全消失。如果你只停用了它,在你 完成稽核之後安排刪除——參見管理金鑰
在讓舊金鑰退役之前把流量移到新的、範圍更緊的 金鑰,使永遠不會有一個沒有可用金鑰的空檔。完整交接: 金鑰輪替
如果外洩金鑰沒有 allow_ips、沒有 credit_limit_usd,且有寬泛的 model_limits,那才是真正的發現。給每個代理它自己的 狹窄範圍限定金鑰—— 最小自主檢查清單範圍與金鑰 走過整個姿態。

6. 相關

管理金鑰

停用 vs. 刪除、金鑰狀態,以及每個動作背後的角色閘。

金鑰輪替

從一把被入侵金鑰到一把乾淨金鑰的零停機交接。

IP 允許清單

把一把金鑰固定到你的來源位址,使一次外洩無法在他處被使用。

資料外洩

一把外洩金鑰最常餵養的威脅,以及防火牆的 egress 介面如何界定它。
整個順序刻意簡短:撤銷,然後稽核。每把金鑰 一開始的範圍越狹窄,你必須執行的稽核就越小——而 一張外洩憑證從緊急狀況變成註腳的速度也越快。