pending_approval, wywołanie narzędzia jest
wstrzymane, a twój agent czeka. Domyślnie recenzent czyści to wstrzymanie z
konsoli. Webhook zatwierdzeń firewalla okablowuje tę samą bramę w twój
system: brama wysyła POST z podpisanym powiadomieniem na twój endpoint w
momencie wstrzymania wywołania, a twój system wysyła POST z podpisaną HMAC
decyzją z powrotem, by je zwolnić — bez fotela w konsoli, bez odpytywania
człowieka.
To asynchroniczna (callback) połowa człowieka w pętli. Wstrzymane wywołanie,
werdykt i ścieżka rozstrzygania w konsoli są omówione w
Rozstrzygaj zatwierdzenia i
referencji Firewall; ta strona
to tylko okablowanie webhooka.
Webhook to szybkościeżkowe uprzedzenie, nie system rekordu. Długie
odpytywanie relay na wstrzymanym wywołaniu to autorytatywna brama — jeśli
powiadomienie zostanie zgubione lub twój odbiornik jest wyłączony,
wstrzymanie wciąż obowiązuje, a recenzent może je wyczyścić z konsoli.
Skonfigurowanie webhooka tylko dodaje programowy sposób na rozstrzygnięcie
go.
1. Kiedy używać webhooka zatwierdzeń firewalla
Sięgnij po niego, gdy brama firewalla człowieka w pętli musi być rozstrzygnięta przez coś innego niż człowieka klikającego przycisk:Kieruj do własnego UI zatwierdzeń
Wypchnij wstrzymane wywołania narzędzi do Slacka, PagerDuty lub
wewnętrznej kolejki przeglądu i rozstrzygaj je tam, gdzie twój zespół już
pracuje.
Polityka programowa
Auto-zatwierdź wstrzymane
db.query wobec repliki do odczytu,
auto-odrzuć wobec prod — twój kod decyduje, brama egzekwuje.2. Skonfiguruj to w konsoli
Obie połowy żyją na jednym ustawieniu przestrzeni roboczej. Otwórz Firewall → Settings i wypełnij dwa pola (akcja Developer+ — zapis ustawień jest bramkowany rolą):URL webhooka zatwierdzeń — gdzie cię powiadamiamy
URL webhooka zatwierdzeń — gdzie cię powiadamiamy
Endpoint
https://, na który wysyłamy POST, gdy wywołanie jest
wstrzymane. HTTP jest odmawiane, a URL jest przepuszczany przez preflight
SSRF przy zapisie, więc cel loopback, prywatnego zakresu lub metadanych
chmury jest odrzucany, zanim będzie mógł zostać zapisany. Zostaw je
puste, aby całkowicie wyłączyć ścieżkę asynchroniczną.Współdzielony sekret — jak uwierzytelniają się obie strony
Współdzielony sekret — jak uwierzytelniają się obie strony
Tylko-do-zapisu sekret HMAC (do 255 znaków). Podpisuje nasze wychodzące
powiadomienie oraz uwierzytelnia twój przychodzący callback. Konsola
nigdy nie odbija go z powrotem — po zapisie widzisz tylko, że sekret
jest ustawiony; rotuj, zapisując nową wartość.
3. Powiadomienie, które ci wysyłamy
Gdy wywołanie jest wstrzymane, wysyłamy POST z podpisaną kopertą JSON na twój URL:approval_id,
którego potrzebujesz do rozstrzygnięcia, i identyfikatory do korelacji, nigdy
argumenty narzędzia. Szczegół argumentów żyje w
kolejce Approvals i
logu zdarzeń firewalla.
4. Callback, który wysyłasz z powrotem
Aby zwolnić (lub odrzucić) wstrzymanie, wyślij POST ze swoją decyzją na endpoint callbacku zapproval_id z powiadomienia:
decision to approved lub rejected — żadna inna wartość nie jest
akceptowana. reason jest opcjonalny i pojawia się na śladzie audytu
rozstrzygniętego zatwierdzenia.
Callback jest wygrywa-pierwsza-decyzja i idempotentny: kto rozstrzyga
pierwszy — twój webhook czy recenzent konsoli — ustawia wynik, a powtórzony
callback dla już-rozstrzygniętego zatwierdzenia zwraca 200, więc twój
system przestaje ponawiać.
5. Zwalnianie wstrzymanego wywołania
Rozstrzygnięcie zatwierdzenia nie odtwarza wywołania narzędzia za ciebie — podnosi bramę, by twój agent mógł je ponownie wystawić. Środowisko uruchomieniowe agenta:- Odpytuje stan wstrzymania pod
GET /api/v1/firewall/approvals/:id(klucz w zakresie firewall-gateway, nie twój klucz relay ani sesja konsoli), aż opuścipending. - Na
approvedponownie wysyła oryginalne wywołanie narzędzia niosące jednorazowy nagłówekX-OrcaRouter-Firewall-Approval— brama przepuszcza to jedno wywołanie, a token jest zużyty.
Jeśli reguła podstawowa została edytowana po wstrzymaniu wywołania,
kolejka Approvals flaguje, że
reguła od tego czasu się zmieniła, i tłumi teraz-nieaktualną klauzulę
„wstrzymane, ponieważ…”, więc recenzent konsoli nie działa na proweniencji,
która już nie pasuje do tego, co wstrzymało wywołanie.
6. Zweryfikuj okablowanie
Szybkie sprawdzenie end-to-end, zanim na nim polegniesz:| Krok | Co zrobić | Oczekiwane |
|---|---|---|
| Wstrzymaj wywołanie | Uruchom regułę z werdyktem pending_approval | 400 firewall_approval_pending |
| Powiadomienie | Obserwuj swój endpoint | Przybywa podpisany POST firewall.approval.pending |
| Callback | Wyślij POST podpisany { "decision": "approved" } | 200 z rozstrzygniętym stanem |
| Strażnik powtórzeń | Wyślij callback ponownie | 200, już rozstrzygnięte (bez podwójnego zastosowania) |
7. Gdzie to pasuje
Rozstrzygaj zatwierdzenia
Ścieżka recenzenta w konsoli i pełny cykl życia wstrzymanego wywołania.
Werdykty
Skąd bierze się
pending_approval i jak komponuje się z innymi
werdyktami.Klucze gateway
Wybij klucz w zakresie firewall-gateway, którego potrzebuje przepływ
odpytaj + wyślij ponownie.
Nadmierna sprawczość
Zagrożenie, które bramy człowieka w pętli mają powstrzymywać.
