跳轉到主要內容
一個攜帶 AKIA... 金鑰的提示、一份貼上的 .env、一個回顯自己 sk-... 權杖的代理——其中任何一個都可能把一個有效憑證以明文送到 OpenAI、Anthropic 或 Google,並落入他們與你的日誌中。Secrets Blocker 在閘道處阻止這件事:一個一鍵式的防護欄預設,會掃描請求中的憑證形狀,並在單一位元組離開你的閘道之前以 HTTP 400 拒絕呼叫。 這是密鑰洩漏使用情境的一個聚焦落地頁。完整的防護欄引擎——每種規則類型、欄位與路由——請見 防護欄參考

1. 一個預設預防 LLM API 金鑰洩漏流程

預防 LLM API 金鑰洩漏 配管的整個重點是在上游呼叫之前捕捉憑證,而不是在它已經進入某個供應商的請求日誌之後。Secrets Blocker 預設正是做這件事。它是一個由輸入階段 block 規則組成的小型防護欄,每一條都是針對一個知名憑證形狀的正規表示式:
AKIA 後接 16 個大寫字母數字字元——典型的 AWS access-key-id 形狀。
一個 sk- 前綴後接一個長權杖主體——OpenAI 與數個相似供應商金鑰所使用的形狀。
一個 ghp_ 前綴後接一個 36 字元的主體。
當任何規則匹配時,請求就會被封鎖——閘道永不轉送它。政策存在於閘道中,而不是你的應用程式中,所以你的應用程式像以前一樣繼續呼叫 /v1/chat/completions,無需修改 SDK,無需重新部署。
輸入階段,計量之前。 Secrets Blocker 審查你發送的內容。一個匹配會在模型被呼叫之前拒絕呼叫,所以憑證永不抵達供應商,而被封鎖的請求不消耗配額。若要也捕捉一個模型發出回客戶端的密鑰,把它與一個輸出封鎖預設配對——參見 §5

2. 在主控台中套用預設

這裡的每個步驟都是託管閘道上你自己工作階段下的一個主控台動作。建立與編輯防護欄需要工作區中的 Developer+。只有最後的 /v1/* 呼叫使用 sk-orca-... 中繼金鑰。
1

開啟範本

在主控台中開啟 Guardrails,按一下 New guardrail 分割按鈕,並從 Secrets 範本類別選擇 Secrets & API-Key Blocker。它會植入輸入階段封鎖規則。
2

命名並儲存

給它一個名稱(≤ 64 字元),例如 secrets-blocker,並儲存。預設是種子,不是鎖——之後可自由新增或編輯規則(參見 §4)。
3

測試它

開啟 Test 分頁,在 input 階段貼上一個樣本憑證,並在本機執行政策——沒有上游呼叫,不消耗配額(參見 §3)。
4

綁定一把金鑰

編輯一個 API 金鑰並從 Guardrail 下拉選單選擇 secrets-blocker(在金鑰上設定 guardrail_id),或將它標記為工作區預設值。參見 綁定到金鑰帳戶預設值

3. 綁定前先測試

在任何金鑰指向它之前,先證明規則會觸發。開啟編輯器內的 Test 分頁,貼上一個假憑證,選擇 input 階段,然後執行:
Here is my key: AKIAIOSFODNN7EXAMPLE
沙盒會在本機評估目前的政策——不會向上游傳送任何東西,也不會計量任何東西——並傳回指名觸發規則的 block 裁決。若要針對一個洩漏密鑰與良性樣本的語料庫進行 A/B 網格測試,評測工具 就在隔壁分頁。

4. 擴展覆蓋範圍

Secrets Blocker 涵蓋了三種流量最高的形狀。Secrets 類別出貨時帶有你可以與它並排套用的同類預設,而你也可以為你的技術堆疊簽發的任何權杖撰寫你自己的 regex 規則:

Private Keys & Cloud Tokens

一個配套的 Secrets 預設,會在請求上封鎖 PEM 私鑰、Slack 與 Stripe 權杖、Google API 金鑰,以及 JWT。

Crypto Wallet Block

當 BTC 與 ETH 風格錢包地址絕不該抵達供應商時,在請求上封鎖它們。
若要匹配一個內部權杖格式,在 input 階段以動作 block 新增一條 regex 規則——RE2 模式、線性時間、無回溯參照。壞模式在儲存時就會被拒絕,所以一個你能儲存的防護欄總是可編譯。
比起封鎖,你想遮罩一個洩漏的密鑰並以淨化後的形式讓請求通過?使用一條帶有 mask 動作的 pii 規則——內建偵測器集合包含 aws_access_keyapi_key_openaijwt,各自渲染為一個像 [AWS_ACCESS_KEY] 的具型別標籤。block 對 mask 請見 動作

5. 也捕捉回應中的密鑰

Secrets Blocker 審查請求。一個獨立的 Secrets 預設 Code Secret in Output 會審查模型的回應中是否有私鑰與 AWS/OpenAI 風格的權杖,並在有一個洩漏回來時封鎖呼叫。 輸出 block 在兩種情況下都會強制執行:在非串流回應上,答案會在回傳前被審查;在串流回應上,一個掃描器會在任何被封鎖的內容抵達客戶端之前切斷串流。一個輸出階段的封鎖會退還已預先扣除的配額。參見 輸出階段規則串流覆蓋

6. 一個封鎖長什麼樣

一個被封鎖的請求會傳回 HTTP 400,錯誤代碼為 guardrail_blocked,並附上指名觸發的防護欄與規則的訊息:
{
  "error": {
    "code": "guardrail_blocked",
    "message": "request blocked by guardrail \"secrets-blocker\": regex(...)"
  }
}
該請求不消耗配額——輸入階段封鎖在計量之前觸發——並被標記為 skip-retry,因為針對另一個通道重跑同一個提示只會再次封鎖。參見 guardrail_blocked 錯誤

7. 查看觸發了什麼

每條觸發的規則都會記錄一個 match——規則類型、動作、階段,以及一個詳情字串——呈現在工作區 Matches 動態中。匹配到的子字串本身(憑證)Log raw content 開啟時才會記錄,而它預設為關閉
對一個密鑰控制而言,讓 Log raw content 保持關閉通常就是重點:擷取匹配到的子字串會把洩漏的憑證直接重寫進你自己的遙測。除非你有狹窄的分流需求,否則讓它保持關閉,並輪替任何被捕捉到的憑證——一個被封鎖的請求意味著密鑰曾暴露在一個提示中,而不是它安全。參見 匹配動態日誌與隱私

8. 下一步去哪裡

正規表示式偵測器

用 RE2 正規表示式規則撰寫你自己的憑證模式。

動作

為每條規則選擇 block、mask、flag、annotate 或 spotlight——並為每個實體選擇 block、mask、flag 或 annotate。

PII Shield

在模型看到之前把電子郵件、SSN 與卡號遮罩為具型別標籤。

調校誤報

從 Matches 動態標記誤報並收緊偵測器。
Secrets Blocker 讓憑證不進入你發送的內容。若要阻止一個代理透過一次工具呼叫洩漏密鑰——外洩到攻擊者控制的主機——請使用 防火牆 並閱讀 資料外洩威脅密鑰洩漏威脅。完整的防護欄引擎請見 防護欄參考