Die Matching-Sprache hinter einer Firewall-Policy. Matchen Sie Tool-Calls nach Name, Skill, Argumenten und Ziel — dann allow, audit, deny, sanitize, zur Freigabe zurückhalten oder Kosten begrenzen. Deterministisch, fail-closed und sicher auf dem heißen Pfad.
Eine Firewall-Policy ist eine geordnete Liste von
Regeln. Diese Seite ist die vollständige Referenz dafür, was eine Regel
ausdrücken kann — die Matching-Sprache, die Verdikte und wie die Engine sie
auswertet.Regeln werden im Regel-Editor der Konsole verfasst, der strukturierte
JSON-Match-Objekte schreibt. Alles Folgende beschreibt dieses Vokabular,
sodass Sie eine Regel präzise lesen, durchdenken und verifizieren können —
ganz gleich, ob Sie sie in der UI bauen oder über die
API posten.
Eine Regel matcht einen Tool-Call, wenn alle ihrer deklarierten
Bedingungen zutreffen: die Stage matcht (oder ist leer), der Tool-Glob matcht,
der Skill-Glob matcht (oder ist leer), die Argument-Klauseln matchen (oder
fehlen) und der Egress-Scope matcht (nur Egress-Regeln). Die Engine durchläuft
die Regeln in Prioritätsreihenfolge, und der erste Treffer gewinnt.
Eine bewusst kleine, Groß-/Kleinschreibung beachtende Grammatik — keine
Regex-Überraschungen, lineare Zeit, sicher auf dem heißen Relay-Pfad:
Muster
Matcht
"" oder *
Jedes Tool.
foo.*
Präfix — foo.bar, foo.exec (nicht das blanke foo).
*.exec
Suffix — shell.exec, db.exec (nicht das blanke exec).
*.shell.*
Infix — local.shell.exec (braucht ≥1 Zeichen auf jeder Seite).
alles andere
Exakter String-Match (einschließlich foo.*.bar).
Tools werden konventionell als server.tool oder category.action
namespaced, sodass shell.* eine ganze Familie erfasst und *.delete ein
Verb über Server hinweg erfasst.
Dieselbe Glob-Grammatik, gematcht gegen den besitzenden Skill des
Tool-Calls (z. B. community.*, builtin.send). Sie wird mit
tool_name_glob AND-verknüpft, also:
matcht http.fetchnur dann, wenn es einem community.*-Skill gehört —
vertrauen Sie demselben Tool aus einem eingebauten Skill, gaten Sie es aus
einem Community-Skill. Ein leerer Skill-Glob matcht jeden Owner. Wie ein
Tool-Call einem Skill zugeordnet wird, ist in
Skills behandelt.
Tool-Namen-Matching beantwortet welches Tool; Argument-Klauseln beantworten
mit welchen Argumenten — der Unterschied zwischen „shell.exec blockieren”
und „shell.exec nur dann blockieren, wenn das Kommando rm -rf ist”.args_match ist ein Satz von Klauseln, alle miteinander AND-verknüpft:
Eine kleine JSONPath-Teilmenge über das Argument-Objekt des Tools:
$.foo, $.foo.bar — Feldzugriff
$.foo[0], $.arr[1].k — Array-Indexierung
$ — das gesamte Arguments-Objekt
Keine Wildcards, Filter, Slices oder rekursiver Abstieg.
Argument-Klauseln failen closed — die Regel, nicht der Request. Wenn ein
Path nicht auflöst, die Argumente fehlerhaft sind oder eine Regex/CIDR
ungültig ist, wertet die Klausel zu false aus und die Regel feuert
einfach nicht — der Aufruf fällt zur nächsten Regel oder zum Default-Verdikt
durch. Eine kaputte Klausel auto-denied nie und stürzt das Relay nie ab.
Schreiben Sie Ihre „alles Gefährliche abfangen”-Regel als ein explizites
deny mit eigenem Glob, statt sich darauf zu verlassen, dass eine Klausel auf
eine bestimmte Weise failt.
Die Konsole validiert Klauseln beim Speichern strikt (unbekannte Operatoren,
schlechte Paths, Nicht-Array-in-Werte, nicht-kompilierbare Regexes und
ungültige CIDRs werden allesamt abgelehnt), sodass eine fehlerhafte Klausel gar
nicht erst persistiert werden kann.
Ein sanitize-Verdikt redigiert gematchte Teilstrings aus den
Tool-Argumenten und leitet den bereinigten Aufruf weiter — nützlich, um
Secrets oder PII zu entfernen, die ein Agent in ein Tool-Argument gesetzt hat,
ohne die gesamte Aktion zu blockieren.
Preset-Treffer werden durch [redacted:<preset>] ersetzt;
Custom-Regex-Treffer durch [redacted:custom]. Die eingebaute
Preset-Bibliothek:aws_access_key, aws_secret_key, openai_key, anthropic_key,
bearer_token, email, ssn_us, credit_card (mit einer Luhn-Prüfung).Eine Sanitize-Regel muss mindestens ein Preset oder Custom-Muster deklarieren
— ein leerer Sanitizer wird beim Speichern abgelehnt. Auf der
inbound-Surface gibt es keine Aufruf-Argumente zu redigieren, sodass ein
Sanitize-Verdikt dort zu einem Block eskaliert.
Einträge matchen als CIDR, IP-Literal oder Groß-/Kleinschreibung-ignorierender
Hostname; Hostnames werden best-effort aufgelöst und gegen IP-/CIDR-Einträge
neu geprüft. Die Polarität folgt dem Verdikt: Bei einem allow-Verdikt
definiert die allow-Liste, was im Scope ist, und deny schneidet Ausnahmen
heraus; bei einem durchsetzenden Verdikt (deny) definiert die deny-Liste,
was blockiert ist, und allow schneidet Ausnahmen heraus.169.254.169.254 (der Cloud-Metadata-Endpunkt) und RFC-1918-Bereiche sind die
kanonischen Dinge, die man denyen sollte — das block_ssrf_egress-Preset und
die tight-Autonomie-Stufe
liefern genau das.
Manche Risiken sind nur über mehrere Aufrufe hinweg sichtbar — 50
CRM-Datensätze lesen, dann exportieren, dann einen externen Host erreichen.
Eine sequence-Regel matcht eine geordnete Kette statt eines einzelnen
Aufrufs:
Jeder Step ist ein Tool-Glob mit einem optionalen min_count (Default 1) und
einem optionalen egress: true (der Step muss ein Egress-Aufruf sein). Steps
müssen in Reihenfolge auftreten — Verschachtelung mit anderen Aufrufen ist in
Ordnung — und die gesamte Kette muss innerhalb von window_seconds abschließen
(0 = keine Grenze).
Sequenzen werden reaktiv von einem asynchronen Matcher durchgesetzt, nicht
inline bei jedem Aufruf — eine Sequenz mit einem *-Step würde sonst jeden
einzelnen Tool-Call matchen. Sie leuchten im Events-Feed auf und können
Folgeaktionen auslösen, aber sie blockieren nicht den einzelnen Aufruf, der die
Kette in Echtzeit abschließt.
Starten Sie von einem Preset statt von einer leeren Regel. Sie werden
serverseitig verfasst, sodass die Konsole und diese Doku identisches Verhalten
beschreiben:
Preset
Was es tut
block_destructive_shell
Denyt destruktive Shell-Kommandos (rm -rf, mkfs, dd, Fork-Bombs, …) über einen Satz von Deny-by-Glob-Regeln.
block_ssrf_egress
Auditiert Egress zum Metadata-Endpunkt und zu RFC-1918-Bereichen.
block_secrets_in_args
Erkennungsorientiert — flaggt Credentials, die in Tool-Argumenten auftauchen.
block_pii_in_tool_results
Erkennungsorientiert — bringt PII in Tool-Ergebnissen ans Licht.
Wenden Sie ein Preset als Keim an und bearbeiten Sie dann frei — ein Preset
ist ein Ausgangspunkt, keine Sperre.
Erster Treffer gewinnt. Regeln laufen in priority ASC, id ASC-Reihenfolge;
die erste Regel, deren Bedingungen alle zutreffen, entscheidet das Verdikt.
Keine Regel matcht → das default_verdict der Policy.
Deterministisch und ohne Abhängigkeiten. Glob- und Klausel-Matching sind
reine String-/JSON-Operationen ohne Netzwerkaufruf, sicher bei jedem
Tool-Call auszuführen. Regexes sind RE2 — lineare Zeit, kein katastrophales
Backtracking.
Fail-closed-Klauseln. Eine Klausel, die nicht ausgewertet werden kann,
lässt ihre Regel nicht feuern statt auto-zu-denyen
(§4).
Strikte Validierung beim Speichern. Verdikt/Stage-Paarungen,
Sanitizer-Nicht-Leere, cap_cost_cents-Vorhandensein, Klausel-Form und
Ref-Auflösung werden alle beim Speichern geprüft — ungültige Regeln können
nicht persistiert werden.
Auditiert. Jedes Erstellen/Aktualisieren/Löschen einer Regel schreibt
eine Audit-Zeile, nachdem die Änderung committed ist; Regel-Blobs und Secrets
werden nie in das Audit-Log geschrieben.
Regeln leben unter einer Policy und sind workspace-bezogen; Schreiben
erfordert Developer+.
Methode & Pfad
Rolle
Zweck
POST /api/workspace/firewall/rules
Developer+
Eine Regel erstellen.
PUT /api/workspace/firewall/rules
Developer+
Eine Regel aktualisieren (ID im Body).
DELETE /api/workspace/firewall/rules/:id
Developer+
Eine Regel löschen.
GET /api/workspace/firewall/presets
Member
Eingebaute Presets auflisten.
POST /api/workspace/firewall/test
Developer+
Eine Policy (Regeln inklusive) gegen einen Beispiel-Tool-Call dry-runnen.
Um eine Regel vorzuschauen, bevor Sie sich auf sie verlassen, verwenden Sie
Test — es gibt das Verdikt, die gematchte Regel und den Grund zurück, ohne
etwas zu dispatchen.
Sie möchten tiefer in die Agentensicherheit einsteigen? Die Leitfäden Secure Your Agents (Zero Trust) ordnen dieses Feature in einen Zero-Trust-Workflow ein.
Eine Firewall-Policy aufbauen
Verfassen Sie Schritt für Schritt eine Zero-Trust-Policy und schatten Sie sie, bevor Sie sie durchsetzen.
Regel-Schema-Referenz
Jedes Regelfeld — Globs, Argument-Prädikate, Egress und Kostenobergrenzen.