tool_name_glob-Regeln,
die auf der mcp-Oberfläche ausgewertet werden.
Jeder tools/call, der das MCP-Gateway quert,
wird durch Ihre Firewall-Policy geführt, bevor er
den echten Server erreicht. Die Allow-List ist also nicht beratend — ein
Aufruf eines Tools, das Sie nicht erlaubt haben, dispatcht nie.
Das Bearbeiten der Policy ist eine Konsolen-Aktion. Die
/api/workspace/firewall/*-Routen authentifizieren mit Ihrer Session / Ihrem
Access-Token, nicht einem sk-orca-…-Relay-Key. Das Schreiben von Regeln
erfordert die Rolle Developer+; jedes Workspace-Mitglied (bis hinunter zu
Viewer) kann Policies und den Discovered-Tools-Feed lesen.1. Warum eine Default-Deny-Allow-List für sichere mcp-Tools
Eine Deny-List — „blockiere die gefährlichen Tools” — versagt in dem Moment, in dem ein Server ein neues Tool hinzufügt, eines umbenennt oder Sie einen zweiten Server verbinden. Der Satz gefährlicher Tools ist offen; der Satz, den Sie nutzen wollten, ist klein und bekannt. Eine Allow-List kehrt den Default um, sodass das Unbekannte verweigert wird, nicht zugelassen:- Neue Tools werden standardmäßig verweigert. Ein Server, dem nach Ihrer
Verbindung ein
delete_repo-Tool wächst, kann nicht aufgerufen werden, bis Sie es zur Allow-List hinzufügen. - Der Scope ist pro Server. Der
<server>.<tool>-Namespace lässt Siegithub.create_issueerlauben, während Sie alles andere untergithub.*verweigern. - Ein Engpass. Dieselbe Policy steuert den mitgelieferten Server und jeden BYO-Server hinter dem Gateway, sodass es einen Ort gibt, um die Allow-List zu lesen.
2. Die zwei Teile
Eine Allow-List ist eindefault_verdict plus ein geordneter Satz von Regeln.
default_verdict: deny
Der Fallback der Policy für jeden
tools/call, den keine Regel matcht.
Setzen Sie ihn auf deny, und alles, was Sie nicht explizit erlaubt
haben, wird blockiert. (Er akzeptiert auch allow und audit — audit
ist der Default.)allow-Regeln
Eine Regel pro Tool (oder pro Glob). Jede trägt einen
tool_name_glob und
ein Verdikt von allow. Ein tools/call, der den Glob matcht, löst zu
allow auf und dispatcht; alles andere fällt auf den deny-Default.github.create_issue, shell.exec. * matcht jedes Tool (verwenden Sie es
sparsam; eine allow-Regel mit * hebt die gesamte Allow-List auf). Ein
führendes <server>. scopt den Glob auf einen Server.
3. Ein konkretes Beispiel
Sie haben einengithub-Server verbunden und wollen, dass Agenten nur
lesen und Issues öffnen — nie etwas löschen oder administrieren. Öffnen Sie
in der Konsole Firewall → Policies, setzen Sie das Default-Verdikt der
Policy auf deny und fügen Sie zwei allow-Regeln hinzu:
| Reihenfolge | tool_name_glob | Verdikt |
|---|---|---|
| 1 | github.create_issue | allow |
| 2 | github.list_issues | allow |
deny:
github.create_issue→ matcht Regel 1 → allow, dispatcht.github.delete_repo→ matcht nichts → deny standardmäßig.
firewall deny: …) — dieselbe Form, die jedes fehlschlagende Tool zurückgibt
— sodass der Agent sich anpassen kann statt abzustürzen. (Auf der
inbound-Oberfläche ist ein deny stattdessen ein HTTP 400 mit dem Error-Code
firewall_blocked.)
4. Mit Argumenten verschärfen
Ein Tool-Name auf der Allow-List kann immer noch mit schlechten Argumenten aufgerufen werden. Engen Sie weiter ein, indem Sie eineargs_match-Klausel
(JSONPath + einen Operator wie eq, contains, regex, in oder
cidr_match) zur Regel hinzufügen, oder indem Sie eine deny-Regel über das
allow für eine spezifische Argument-Form schichten — zum Beispiel
github.create_issue erlauben, es aber denyen, wenn das Ziel-Repo nicht auf
einer genehmigten Liste steht. Siehe die
Firewall-Regel-Referenz für den vollständigen
Operator-Satz.
sanitize redigiert die Argumente eines Tool-Calls vor dem Weiterleiten
— es berührt nie, was ein Tool zurückgibt. Für das Trimmen
zurückgegebener Inhalte gibt es ein anderes Control; siehe
Tool-Ausgabe sanitisieren.5. Sicher ausrollen
Kippen Sie ein Whole-Server-Default-Deny in der Produktion, und Sie riskieren, einen Agenten zu brechen, der still von einem Tool abhing, das Sie vergessen haben. Zwei Einstellungen entschärfen das:shadow_mode — denies sehen, ohne durchzusetzen
shadow_mode — denies sehen, ohne durchzusetzen
Ein Pro-Policy-Flag, das durchsetzende Verdikte auf
audit herunterstuft.
Ihr deny-Default und Ihre deny-Regeln loggen [shadow] would deny … statt
zu blockieren, sodass Sie die Allow-List gegen echten Traffic validieren
können, bevor sie zubeißt. Mehr dazu in
Durchsetzungsmodi.observe-Modus — die Tools auftauchen, die Sie verpasst haben
observe-Modus — die Tools auftauchen, die Sie verpasst haben
Eine Workspace-Einstellung, die jeden nicht abgedeckten Aufruf als Lücke im
Discovered-Tools-Feed loggt. Lassen Sie ihn
laufen, bevor Sie die Allow-List schreiben, um genau zu lernen, welche
Tools Ihre Agenten aufrufen, und befördern Sie dann jedes zu einer
expliziten allow-Regel.
shadow_mode, und die Allow-List setzt durch.
6. Verifizieren, dass es funktioniert
Bestätigen Sie nach der Durchsetzung, dass verweigerte Tools tatsächlich abgelehnt werden:- Dry-run Sie einen
tools/callgegen die Policy (Developer+), um das Verdikt zu sehen und welche Regel — oder der Default — es erzeugt hat, ohne echten Traffic zu senden. Übergeben Sie einen Tool-Namen, eine Oberfläche und Beispiel-Args; die Engine wertet sie aus und gibt die Verdikt-Spur zurück, ohne ein Event aufzuzeichnen. - Beobachten Sie die Events. Jeder blockierte Aufruf zeichnet ein Firewall-Event auf, das ein Developer+ in der Konsole lesen kann; die Audit-Events-Seite behandelt den Feed und seine Felder.
Verwandt
Einen MCP-Server verbinden
Registrieren Sie einen Server, bevor Sie seine Tools per Allow-List
freigeben können.
Firewall: MCP-Server
Das Laufzeitverhalten des Gateways und Verdikte pro Aufruf.
Firewall-Regel-Referenz
Das vollständige Regel-DSL — Globs, args_match, egress, sanitize.
Gefährliche Tool-Calls
Die Bedrohung, die eine Allow-List eindämmen soll.
Egress-Limits
Steuern, wohin ein erlaubtes Tool reichen darf.
Guardrails vs. Firewall
Wann zur Content-Policy vs. zur Tool-Policy greifen.
