pending_approval 時,工具呼叫會被保留,而你的
代理等待。預設情況下,一位審查者從主控台清除那個保留。防火牆
審批 webhook把同一個閘門接進你的系統:閘道在一個呼叫被保留的
那一刻 POST 一個簽署的通知到你的端點,而你的系統 POST 一個 HMAC
簽署的決定回來以釋放它——無需主控台席位、無需向一個人類輪詢。
這是人工介入的非同步(回呼)那一半。被保留的呼叫、裁決,以及主控台
解決路徑涵蓋於
解決審批與
防火牆參考;本頁
只是 webhook 的接線。
該 webhook 是一個快速路徑的提醒,而非記錄系統。中繼對被保留呼叫
的 long-poll 才是權威的閘門——如果一個通知被丟棄或你的接收器當機,
保留仍然成立,而一位審查者可以從主控台清除它。設定該 webhook 只是
增加了一個以程式方式解決它的途徑。
1. 何時使用一個防火牆審批 webhook
當一個人工介入的防火牆閘門必須由人類點擊一個按鈕以外的東西來解決 時,去拿它:路由到你自己的審批 UI
把被保留的工具呼叫推進 Slack、PagerDuty 或一個內部審查佇列,並在
你的團隊已經工作的地方解決它們。
程式化政策
自動批准一個對著讀取副本的被保留
db.query、自動拒絕一個對著
prod 的——你的程式碼決定,閘道強制執行。2. 在主控台中設定它
兩半都存在於一個工作區設定上。開啟 Firewall → Settings 並填入 兩個欄位(一項 Developer+ 動作——設定寫入是角色把關的):審批 webhook URL — 我們在哪裡通知你
審批 webhook URL — 我們在哪裡通知你
我們在一個呼叫被保留時 POST 到的
https:// 端點。HTTP 會被拒絕,
而該 URL 在儲存時會經過一個 SSRF 預檢,所以一個 loopback、私有
範圍,或 cloud-metadata 目的地會在它能被儲存之前被拒絕。將它留空
以完全停用非同步路徑。共享密鑰 — 兩側如何驗證
共享密鑰 — 兩側如何驗證
一個唯寫的 HMAC 密鑰(最多 255 字元)。它簽署我們的對外通知
並驗證你的對內回呼。主控台絕不回傳它——一旦儲存,你只看見
一個密鑰已設定;透過寫入一個新值來輪替。
3. 我們發送給你的通知
當一個呼叫被保留時,我們 POST 一個簽署的 JSON 信封到你的 URL:approval_id 與用來關聯的識別碼,絕不攜帶工具引數。引數細節存在於
Approvals 佇列與防火牆
事件記錄中。
4. 你 POST 回來的回呼
要釋放(或拒絕)保留,把你的決定連同通知中的approval_id POST 到
回呼端點:
decision 是 approved 或 rejected——不接受其他值。reason 是可選
的,並顯示在已解決審批的稽核軌跡上。
回呼是先決定者勝出且冪等的:無論誰先解決——你的 webhook 還是
一位主控台審查者——都設定結果,而對一個已解決審批的重複回呼會
傳回 200,讓你的系統停止重試。
5. 釋放被保留的呼叫
解決該審批不會為你重放工具呼叫——它抬起閘門,讓你的代理能重新 發出它。代理執行期:- 在
GET /api/v1/firewall/approvals/:id(一個 防火牆閘道範圍的金鑰,而非 你的中繼金鑰或主控台工作階段)輪詢保留的狀態,直到它離開pending。 - 在
approved時,重新提交原始工具呼叫,攜帶一個一次性的X-OrcaRouter-Firewall-Approval標頭——閘道讓那一個呼叫通過,而 該權杖被花掉。
如果底層規則在呼叫被保留後被編輯,
Approvals 佇列會標記
該規則自此已改變,並抑制現已過時的「held because…」子句,所以一位
主控台審查者不會根據一個不再相符於保留了該呼叫的東西的來源行動。
6. 驗證接線
在你依賴它之前一個快速的端到端檢查:| 步驟 | 該做什麼 | 預期 |
|---|---|---|
| 保留一個呼叫 | 觸發一條帶有 pending_approval 裁決的規則 | 400 firewall_approval_pending |
| 通知 | 觀察你的端點 | 簽署的 firewall.approval.pending POST 抵達 |
| 回呼 | POST 一個簽署的 { "decision": "approved" } | 200 帶有已解決狀態 |
| 重放防護 | 再次 POST 該回呼 | 200,已解決(不重複套用) |
7. 這如何契合
解決審批
主控台審查者路徑與完整的被保留呼叫生命週期。
裁決
pending_approval 從何而來,以及它如何與其他裁決組合。閘道金鑰
鑄造輪詢 + 重新提交流程所需的防火牆閘道範圍金鑰。
過度代理權
人工介入閘門意在遏制的威脅。
