1. 最小自主檢查清單
讓每把金鑰——新的或現有的——在金鑰編輯器 (/console/token)中走過這六道閘門。設定其中任一道都需要 Developer 角色或
以上;兩個政策平面(§5–6)是分開撰寫的,並在此處綁定。
model_limits — 固定模型
model_limits — 固定模型
把
model_limits 設為這個代理所需的精確清單(並啟用
model_limits_enabled)。對清單外任何模型的呼叫會在它離開閘道
之前被拒絕,所以一個被劫持的代理無法升級到一個
更貴或更強大的模型。
**檢查:**清單是否如工作所允許的那般短——理想情況下一個模型?
深入:模型限制。allow_ips — 固定來源
allow_ips — 固定來源
把
allow_ips 設為代理實際呼叫所來自的來源位址或 CIDR。
一把從其他任何地方出示的外洩金鑰會在驗證
層被拒絕。空意味著所有 IP 都被允許。
**檢查:**對一個固定主機或排程代理,清單是否非空且
範圍限定到那個 egress?深入:
IP 允許清單。credit_limit_usd — 為花費設上限
credit_limit_usd — 為花費設上限
把
credit_limit_usd 設為代理一生中絕不應跨越的一個
上限。閘道對照金鑰的花費強制執行它。0 意味著
無限制——一個失控的迴圈能耗盡你整個餘額。
**檢查:**上限是不是一個真實的預算,而非 0?深入:
配額、上限與到期。expired_time — 給它一個期限
expired_time — 給它一個期限
把
expired_time 設為一個絕對到期——sprint 的結束、
部署,或 CI 執行。-1 意味著永不到期。一把短命金鑰
無法作為被遺忘的攻擊表面而滯留。
**檢查:**一把短暫或承包商金鑰是否有一個真實的到期,而非
-1?深入:到期金鑰。guardrail_id — 綁定一份內容政策
guardrail_id — 綁定一份內容政策
透過
guardrail_id 附掛一份防護欄,使
請求(以及在支援之處的回應)文字在抵達模型之前被審查
PII、密鑰與注入意圖。
**檢查:**一把處理敏感提示的金鑰是否綁定了一份防護欄,
或繼承一個工作區預設值?參見 §5。firewall_policy_id — 綁定一份工具政策
firewall_policy_id — 綁定一份工具政策
透過
firewall_policy_id 附掛一份防火牆政策,使
這把金鑰發出的每一次工具呼叫、MCP 派發與 egress 都對照
一份代理合理所需之事的允許清單被評估。
**檢查:**一個呼叫工具的代理是否綁定了一份防火牆政策,或
繼承工作區預設值?參見 §6。2. 什麼 / 多常 / 在哪裡
三個問題把這份檢查清單從一次性的雜務變成一種姿態。什麼
上方的六道閘門,按順序:
model_limits → allow_ips →
credit_limit_usd → expired_time → guardrail_id →
firewall_policy_id。多常
在每把金鑰建立時,以及在一次定期審查中——當一個
代理的範圍改變時、當你輪替一把金鑰時,
以及對長壽金鑰按固定節奏。
在哪裡
在主控台金鑰編輯器(
/console/token)中,作為 Developer+。兩個
政策在它們自己的主控台中撰寫,然後在金鑰上綁定。3. 一把具體的最小自主金鑰
一個用一個便宜模型、從一個主機摘要支援工單的排程 代理,幾乎不需要任何自主。一把完全硬化的金鑰:| 欄位 | 值 | 為何 |
|---|---|---|
model_limits | 一個摘要模型 | 無法升級到前沿模型 |
allow_ips | 排程器的 egress CIDR | 外洩的金鑰在他處毫無用處 |
credit_limit_usd | 每週上限 | 失控的迴圈無法耗盡餘額 |
expired_time | 部署結束時 | 自動到期,無法滯留 |
guardrail_id | 一份遮罩 PII 的防護欄 | 請求文字會被審查 |
firewall_policy_id | 只允許清單它的工具 | 沒有意外的工具呼叫 |
4. /v1 中繼呼叫 vs 主控台
這份檢查清單是在主控台中用你的工作階段(一個 Developer+ 使用者)設定的。你的代理從不觸及那些設定路由——它在/v1/* 推論呼叫上出示它的範圍限定中繼金鑰(sk-orca-…),而上方的
限制與綁定政策在每一個上面強制執行。
model_limits 不包含 openai/gpt-4o-mini,這次呼叫會在
它離開閘道之前被拒絕。如果呼叫者的 IP 不在
allow_ips 中,它會在驗證層被拒絕。代理程式碼保持不變;
金鑰決定波及範圍。
5. 閘門 5 — 綁定的防護欄
guardrail_id 把一份工作區範圍限定、有序的內容政策綁定到
金鑰。解析方式是金鑰的明確防護欄(如果它存在且已啟用),
否則是工作區預設值,否則是無。
防護欄在被停用時是一個嚴格的關閉開關:一個已停用或已刪除的
guardrail_id 意味著金鑰得到無防護欄——它不會回退
到工作區預設值。這與防火牆平面(§6)相反,所以
驗證綁定的防護欄是已啟用,而非只是已附掛。block、mask 或 flag。例如,
PII Shield 預設集在請求抵達模型之前就遮罩請求中的
PII。以 Developer+ 撰寫並附掛防護欄——參見
防護欄與
綁定政策。
6. 閘門 6 — 綁定的防火牆政策 + 閘道範圍
firewall_policy_id 綁定一份工作區範圍限定的工具呼叫政策。它治理
一個代理採取的動作——公告的工具、模型發出的 tool_calls、
MCP 派發,以及外送 egress——對照一份有序的規則清單,其
裁決為 allow、audit、deny、sanitize、pending_approval,或
cap_cost。
防火牆平面的解析方式與防護欄不同:一個已停用的
附掛防火牆政策會回退到工作區預設值,它不會把
強制執行關閉。所以綁定一份政策並停用它會把金鑰還原回
工作區預設值——它永遠不會靜默地變得無防護。
tight / balanced / permissive),並支援一鍵還原。參見
防火牆 §8。
7. 檢查清單之後
安全代理基準
建議的起始姿態——一個自主開關,然後從真實流量
調校。
綁定政策
guardrail_id 與 firewall_policy_id 如何附掛與解析。過度自主
這份檢查清單所要收束的威脅。
外洩金鑰
一把範圍限定金鑰暴露的當下該怎麼做。
