Przejdź do głównej treści
Polityka firewalla to uporządkowana lista reguł, a reguła to po prostu mały worek pól: które wywołania narzędzi dopasowuje, na której powierzchni i co z nimi zrobić. Gdy potrzebujesz odczytać regułę, którą ktoś inny napisał — lub precyzyjnie rozumować o tej, którą budujesz — chcesz listy pól w jednym miejscu. To ta strona. Piszesz reguły w edytorze reguł konsoli (zapisy wymagają Developer+); edytor zapisuje ustrukturyzowane pola poniżej. Ta strona to mapa na poziomie pól; głęboki silnik dopasowania żyje w Reguły Firewall.

1. Schemat reguły firewalla w skrócie

Każda reguła niesie te same pola. Tylko verdict jest zawsze wymagane — wszystko inne zacieśnia co reguła dopasowuje lub konfiguruje wybrany werdykt, a nieobecny dopasowywacz jest trywialnie prawdziwy.
PoleCel
priorityKolejność ewaluacji — niższy działa pierwszy.
verdictAkcja, gdy reguła dopasuje (wymagane).
stagePowierzchnia, do której ograniczyć; puste = wszystkie.
tool_name_globGlob na nazwie narzędzia.
args_match_jsonPredykat argumentu JSONPath, jako string zakodowany w JSON.
egress_jsonLista allow-deny host / CIDR (reguły egress), jako string zakodowany w JSON.
sanitize_jsonKonfiguracja redakcji (gdy verdict = sanitize), jako string zakodowany w JSON.
cap_cost_centsLimit kosztu uruchomienia w centach USD (gdy verdict = cap_cost).
sequence_jsonPredykat uporządkowanego wielokrokowego łańcucha (reguły sekwencji), jako string zakodowany w JSON.
label / notesNazwa dla człowieka i uzasadnienie — pokazywane w zdarzeniach, ignorowane przez silnik.
Reguła odpala, gdy wszystkie jej zadeklarowane dopasowywacze zachodzą naraz — etap dopasowuje (lub jest pusty), glob narzędzia dopasowuje, klauzule argumentów dopasowują (lub są nieobecne), a zakres egress dopasowuje (tylko reguły egress). Silnik przechodzi reguły w kolejności priorytetów i wygrywa pierwsze dopasowanie; jeśli nic nie pasuje, stosuje się default_verdict polityki.

2. priority — kolejność ewaluacji

Liczba porządkowa całkowita. Niższy działa pierwszy; dwie reguły o tym samym priorytecie rozstrzygają remis po id reguły (kolejność wstawienia). Umieść swoje konkretne wykrojenia ponad szerokimi catch-all — allow dla jednego zaufanego narzędzia przy priorytecie 10 bije deny * przy priorytecie 100.
Zostaw luki (10, 20, 30), byś mógł wstawić nową regułę między dwie istniejące później bez przenumerowywania całej polityki. Zobacz Priorytet reguł dla strategii porządkowania.

3. verdict — akcja

Jedyne wymagane pole. Gdy reguła dopasuje, jej werdykt decyduje, co dzieje się z wywołaniem:
WerdyktEfekt
allowPrzepuść wywołanie, zalogowane.
auditZezwól i zarejestruj do przeglądu — zwykły default_verdict.
denyZablokuj wywołanie.
sanitizeZredaguj dopasowane podłańcuchy z argumentów narzędzia, potem prześlij.
pending_approvalWstrzymaj wywołanie dla recenzenta-człowieka.
cap_costOdmów, gdy zakumulowane wydatki uruchomienia agenta przekroczą limit.
deny zwraca HTTP 400 firewall_blocked na powierzchni inbound lub błąd narzędzia na powierzchni mcp. Wstrzymane wywołanie zwraca HTTP 400 firewall_approval_pending z id, na którym agent odpytuje. W trybie cienia każdy egzekwujący werdykt jest degradowany do audit, a powód jest poprzedzony przedrostkiem [shadow] would …. Zobacz Werdykty dla pełnej tabeli i kształtów bloku.

4. stage — powierzchnia egzekwowania

Przypina regułę do jednej z powierzchni firewalla. Zostaw je puste, a reguła dotyczy wszystkich powierzchni:
Narzędzia, które agent ogłasza modelowi w żądaniu. Zablokuj niebezpieczne narzędzie, zanim model będzie mógł je w ogóle wybrać.
tool_calls, które model emituje w swojej odpowiedzi.
tools/call kierowane przez bramę Firewall MCP.
Wychodzący host / IP / CIDR, do którego sięga narzędzie — powierzchnia SSRF i eksfiltracji danych.
Niektóre połączenia werdykt + etap są odrzucane przy zapisie, ponieważ werdykt nie może tam odpalić: cap_cost to limit kosztu uruchomienia przed-dyspozycją, bezwładny na response i egress; pending_approval kiedykolwiek wstrzymuje tylko na inbound, więc wyraźne przypięcie response/egress jest odmawiane. Edytor ukrywa te kombinacje; API je odrzuca. Zobacz Etapy.

5. tool_name_glob — które narzędzie

Mały, z rozróżnianiem wielkości liter glob na nazwie narzędzia — shell.* dla całej rodziny, *.delete dla czasownika w różnych serwerach, http_fetch dla jednego dokładnego narzędzia. Puste lub * dopasowuje każde narzędzie. Opcjonalny glob nazwy skilla (ta sama gramatyka) łączy AND drugi warunek na skillu właścicielu, więc możesz zaufać narzędziu z wbudowanego skilla i bramkować je ze społecznościowego. Pełna gramatyka — przedrostek, sufiks, wrostek, dokładny i brzegi, które ludzi potykają — to własna referencja: Składnia wzorców glob.

6. args_match_json — z jakimi argumentami

Glob odpowiada, które narzędzie; args_match_json odpowiada, z jakimi argumentami — różnica między „zablokuj shell.exec” a „zablokuj shell.exec tylko, gdy polecenie to rm -rf”. Jego wartość to string zakodowany w JSON niosący zestaw klauzul JSONPath, wszystkie połączone AND. Zdekodowany obiekt klauzul wygląda tak:
{
  "clauses": [
    { "path": "$.command",    "op": "regex",      "value": "rm -rf|drop table" },
    { "path": "$.connection", "op": "in",         "value": ["prod", "replica"] },
    { "path": "$.ip",         "op": "cidr_match", "value": "10.0.0.0/8" }
  ]
}
W ciele żądania pole niesie ten obiekt jako escapowany string, np. "args_match_json": "{\"clauses\":[{\"path\":\"$.command\",\"op\":\"regex\",\"value\":\"rm -rf\"}]}". Operatory to eq, contains, regex, in, cidr_match, gt i lt. Nieobecne args_match_json jest trywialnie prawdziwe — reguła dopasowuje na samym globie. Pełny język predykatów, składnia ścieżki i zachowanie fail-closed zepsutej klauzuli są w Waliduj argumenty i książce kucharskiej argumentów.

7. egress_json — które cele

Używane na powierzchni egress: string zakodowany w JSON zawierający listę allow-i-deny host / CIDR dopasowaną wobec wychodzącego celu, do którego sięga narzędzie. Zdekodowany obiekt wygląda tak:
{
  "deny":  ["169.254.169.254", "10.0.0.0/8"],
  "allow": ["api.openai.com"]
}
Wpisy dopasowują jako CIDR, literał IP lub nazwa hosta bez rozróżniania wielkości liter. Polaryzacja idzie za werdyktem — przy egzekwującym werdykcie lista deny definiuje, co jest blokowane, a allow wykrawa z niej wyjątki.
Szablon firewalla Baseline dostarcza regułę deny egress z gotową listą odmów SSRF / metadanych chmury (IP metadanych 169.254.169.254, zakresy RFC-1918, loopback, link-local i metadata.google.internal), więc nie musisz ich pisać ręcznie. Dodaj własne cele na wierzchu dla wszystkiego innego, co chcesz bramkować. Zobacz Kontrola egress dla pełnego przepisu i Eksfiltrację danych dla tego, dlaczego ma to znaczenie.

8. sanitize_json — redaguj argumenty

Używane, gdy verdict = sanitize: string zakodowany w JSON nazywający, które presety / niestandardowe regexy redagują dopasowane podłańcuchy z argumentów narzędzia, zanim oczyszczone wywołanie zostanie przesłane — przydatne do usunięcia sekretu lub wartości PII, którą agent wrzucił do argumentu, bez blokowania całej akcji. Zdekodowany obiekt wygląda tak:
{ "presets": ["email", "ssn_us"], "custom": ["foo-\\d+"] }
Sanitize redaguje wyłącznie argumenty — nigdy treści, którą narzędzie zwraca. Reguła sanitize musi nazwać co najmniej jeden preset lub wzorzec niestandardowy (pusty sanityzator jest odrzucany). Na powierzchni inbound nie ma argumentów czasu wywołania do zredagowania, więc werdykt sanitize tam eskaluje do deny.
Zobacz Sanityzacja odpowiedzi dla biblioteki presetów i kształtów redakcji.

9. cap_cost_cents — limit wydatków

Używane, gdy verdict = cap_cost: limit kosztu uruchomienia per reguła, liczba całkowita w centach USD. Gdy reguła dopasuje, wywołanie jest odmawiane, gdy zakumulowane wydatki uruchomienia agenta przekroczą limit — bezpiecznik dla rozbieganej pętli, rozwiązujący się do allow lub deny w zdarzeniach. Limit musi być jawny i nieujemny, a reguły nie da się przypiąć do response ani egress (gdzie werdykt jest bezwładny). Pełne zachowanie w Limicie kosztu.

10. Jedna kompletna reguła

Składając pola razem — odmów shell.exec, ale tylko gdy polecenie wygląda destrukcyjnie, ograniczone do wyemitowanych przez model wywołań narzędzi:
{
  "priority": 10,
  "label": "block destructive shell",
  "stage": "response",
  "tool_name_glob": "shell.exec",
  "args_match_json": "{\"clauses\":[{\"path\":\"$.command\",\"op\":\"regex\",\"value\":\"rm -rf|mkfs|:\\\\(\\\\)\\\\{\"}]}",
  "verdict": "deny",
  "notes": "fork bombs and recursive deletes only — plain shell.exec audits"
}
Etap dopasowuje powierzchnię response, glob wybiera shell.exec, pojedyncza klauzula zacieśnia do destrukcyjnego polecenia, a werdykt odmawia. Każdy shell.exec, którego polecenie nie dopasowuje regexa, spada do następnej reguły lub domyślnej polityki. Przypnij klucz do polityki (firewall_policy_id na kluczu), a jest na żywo przy następnym wywołaniu — bez ponownego wdrożenia.
Potwierdź, że reguła odpala na dokładnie tym, czego oczekujesz, zanim na niej polegniesz: Testowanie reguł robi dry-run polityki wobec przykładowego wywołania narzędzia i zwraca werdykt, dopasowaną regułę i powód bez dyspozytowania czegokolwiek.

11. Jak łączą się pola

verdict. Wszystko inne jest opcjonalne: pusty stage dopasowuje wszystkie powierzchnie, pusty tool_name_glob (lub *) dopasowuje każde narzędzie, a nieobecne args_match_json dopasowuje dowolne argumenty. Gołe { "verdict": "audit" } to poprawny catch-all.
Łączą się AND. Reguła odpala tylko, gdy jej etap, glob narzędzia, glob skilla, klauzule argumentów i zakres egress wszystkie zachodzą. Aby wyrazić OR, napisz osobne reguły.
sanitize_json jest odczytywane tylko dla werdyktu sanitize; cap_cost_cents tylko dla cap_cost; egress_json tylko na powierzchni egress. Konsola waliduje te połączenia przy zapisie, więc reguła, która wyświetla jedno zachowanie, ale nigdy nie może go wyegzekwować, nie może być persystowana.
Wygrywa niższy priority (remisy rozstrzyga id reguły) — wygrywa pierwsze dopasowanie, a ewaluacja zatrzymuje się tam. Zobacz Priorytet reguł.

Powiązane

Utwórz politykę

Napisz swoją pierwszą politykę i przypnij klucz.

Składnia globów

Pełna gramatyka globów nazw narzędzi.

Werdykty

Każdy werdykt i jak wygląda block.

Waliduj argumenty

Klauzule argumentów JSONPath w głąb.

Zarządzaj politykami

Edytuj, wersjonuj i przywracaj polityki.

Reguły Firewall

Kompletna referencja silnika dopasowania.
Nowy w płaszczyźnie akcji? Zacznij od Przeglądu Firewall lub zobacz, jak łączy się z prześwietlaniem tekstu w Guardrails vs Firewall.