跳轉到主要內容
你有一個代理在 api.orcarouter.ai 上使用的金鑰,而你想讓該金鑰 發出的每一次工具呼叫都被治理——封鎖、稽核、淨化,或保留待 審批——而無需動到你的代理程式碼。這就是一個兩步的代理防火牆 設定:先建立一個防火牆政策,然後將 金鑰指向它。從下一次呼叫起,該金鑰發出的每個工具都會在閘道處 對照該政策檢查。 本頁是建立並綁定的路徑。完整的政策模型(介面、裁決、解析)請參見 防火牆總覽;規則文法請參見 防火牆規則
所有政策與金鑰設定都發生在主控台中(或 /api/workspace/firewall/* 管理路由,後者使用你的工作階段/ 存取權杖——而非中繼 sk-orca-… 金鑰)。只有你代理的 /v1/* 呼叫使用中繼金鑰。建立並綁定一個政策是一項 Developer+ 動作。

1. 代理防火牆設定一覽

一個防火牆政策是一個命名的、工作區範圍的物件:一份有序的規則 清單,加上一個套用於沒有任何規則匹配之一切的預設裁決。一個 金鑰透過它的 firewall_policy_id 欄位選擇加入一個政策。你技術堆疊 中的其他一切都不變。

建立政策

為它命名、挑選一個預設裁決、加入規則——或從一個自主等級/ 預設集播種然後編輯。

綁定一個金鑰

將金鑰的 firewall_policy_id 設為該政策,或將該政策標記為工作區 預設值,這樣每個未綁定的金鑰都會繼承它。

2. 在主控台建立政策

  1. 開啟 Security → Firewall → Policies 並選擇 New policy
  2. 為它命名(工作區內唯一)並讓 Enabled 保持開啟。
  3. 挑選一個預設裁決——參見 §3
  4. 在規則編輯器中加入規則,或從空白開始,稍後讓 Discovered tools 從真實流量 驅動撰寫。
  5. 儲存。政策已存在,但在某個金鑰指向它或你將它設為工作區預設值 之前,它不會治理任何東西。
不想先手動撰寫規則?套用一個 自主等級balanced 是建議的 起點)——它會具體化出真實、可編輯的政策與防護欄列,你接著就能 調校。或者從一個內建預設集開始一條規則並編輯它。無論哪種 方式,你最終都會到達同一個地方:一個你綁定到金鑰的命名政策。

3. 挑選預設裁決

預設裁決是當沒有任何規則匹配某工具呼叫時政策所做的事。它是 你姿態的底線。它恰好接受三個值:
default_verdict當無規則匹配時…
audit (預設)允許呼叫,但記錄它。觀察一切、封鎖無物——最安全的起點。
allow允許並記錄,無審查記錄。
deny封鎖任何規則未明確允許的東西——一個你與 allow 規則搭配的 default-deny 姿態。
denydefault-deny:你的規則未明確允許的任何工具呼叫都會被 封鎖。很強大,但它會擋下你忘了加入允許清單的呼叫。先在 影子模式下推出一個 default-deny 政策,並在強制執行它之前觀察事件動態。
一條規則可以產生的裁決(allowauditdenysanitizepending_approvalcap_cost)涵蓋於 裁決——預設裁決僅限於上述三者。

4. 將政策綁定到金鑰

一個金鑰透過它的 firewall_policy_id 選擇加入一個政策。在主控台中:
  1. 開啟 Keys,編輯你代理使用的金鑰。
  2. Firewall policy 設為你建立的政策(這會寫入 firewall_policy_id)。
  3. 儲存。該金鑰發出的下一次呼叫就會被治理。
綁定存在於金鑰上、於閘道中——你的代理繼續傳送相同的 Authorization: Bearer sk-orca-… 與相同的請求主體。你代理的工具 呼叫程式碼沒有任何變更。
# Your agent's relay call is unchanged. The attached policy is enforced
# at the gateway before any tool call in the response is dispatched.
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "messages": [{"role": "user", "content": "delete the staging table"}],
    "tools": [{"type": "function", "function": {"name": "db.query"}}]
  }'
如果一條規則在 inbound 介面上拒絕一次工具呼叫,該呼叫會以 HTTP 400、代碼 firewall_blocked 回來,指名工具與原因——參見 封鎖的樣子

5. 解析:綁定 → 工作區預設值

對任何工具呼叫,閘道會按此順序解析哪個政策套用:
如果呼叫金鑰的 firewall_policy_id 指向一個存在且已啟用的 政策,則套用該政策。
否則套用工作區已啟用的 is_default 政策(若有設定)。每個工作區 最多只能有一個政策作為預設值;晉升一個新的預設值會在同一交易中 降級舊的那個。
沒有綁定且沒有預設值即代表沒有政策。在 觀察模式開啟時,呼叫會被允許 並記錄為一個涵蓋缺口;在它關閉時,呼叫會被靜默允許。
一個已停用的綁定政策會回退到工作區預設值——它並不會關閉強制 執行。(這與防護欄 不同,後者中一個已停用的綁定會解析為。)要將一個金鑰移出 防火牆範圍,請解除它的綁定(將 firewall_policy_id 設為 0),不要 只是停用它的政策。
要讓一個政策成為每個未綁定金鑰的預設值,請編輯它並將它設為工作區 預設值,而不是一個一個地綁定金鑰——參見 管理政策

6. 驗證它已生效

在依賴它之前,確認該政策以你預期的方式觸發:
  • 測試它——沙盒 Test 分頁會對照一個樣本工具呼叫乾跑該政策, 並傳回裁決、匹配到的規則與原因。不派發、不持久化任何東西。參見 測試規則
  • 觀察事件動態——一旦該金鑰承接即時流量, Events 會顯示每一次評估, 可按裁決、介面、工具與執行篩選。
先在影子模式後方推出任何 強制執行的政策:它會像在生產環境中那樣完全相同地評估並記錄,但 會將每個強制執行的裁決降級為 audit,並將原因加上前綴 [shadow] would …。一旦事件動態顯示它在你預期的事物上觸發、在你 不預期的事物上不觸發,就關閉影子模式。

接下來去哪裡

撰寫規則

完整的匹配語言——工具 glob、引數子句、egress 清單、淨化器。

工具允許清單

將一個 deny 預設裁決與明確的 allow 規則搭配。

管理政策

預設值、啟用/停用、版本控制與還原。

為何零信任

為何治理動作——而不只是文字——對代理很重要。
要了解一個政策意在阻止的威脅,參見 危險的工具呼叫過度代理權