tool_name_glob évaluées sur
la surface mcp.
Chaque tools/call qui traverse la passerelle MCP
passe par votre politique firewall avant d’atteindre
le vrai serveur. Donc la liste d’autorisation n’est pas consultative — un appel
à un outil que vous n’avez pas autorisé ne se dispatche jamais.
L’édition de politique est une action console. Les routes
/api/workspace/firewall/* s’authentifient avec votre token de session /
d’accès, pas une clé relais sk-orca-…. Écrire des règles requiert le rôle
Developer+ ; tout membre d’espace de travail (jusqu’à Viewer) peut lire
les politiques et le flux des outils découverts.1. Pourquoi une liste d’autorisation à refus par défaut pour des outils mcp sécurisés
Une liste de refus — « bloquer les outils dangereux » — échoue à l’instant où un serveur ajoute un nouvel outil, en renomme un, ou que vous connectez un second serveur. L’ensemble des outils dangereux est ouvert ; l’ensemble que vous vouliez utiliser est petit et connu. Une liste d’autorisation inverse le défaut de sorte que l’inconnu est refusé, pas admis :- Les nouveaux outils sont refusés par défaut. Un serveur qui se dote d’un
outil
delete_repoaprès que vous l’avez connecté ne peut pas être appelé tant que vous ne l’avez pas ajouté à la liste d’autorisation. - La portée est par serveur. Le namespace
<server>.<tool>vous laisse autorisergithub.create_issuetout en refusant tout le reste sousgithub.*. - Un seul point d’étranglement. La même politique gouverne le serveur intégré et chaque serveur BYO derrière la passerelle, donc il y a un seul endroit pour lire la liste d’autorisation.
2. Les deux pièces
Une liste d’autorisation est undefault_verdict plus un ensemble ordonné de
règles.
default_verdict: deny
Le repli de la politique pour tout
tools/call qu’aucune règle ne fait
correspondre. Réglez-le sur deny et tout ce que vous n’avez pas
explicitement autorisé est bloqué. (Il accepte aussi allow et audit —
audit est le défaut.)règles allow
Une règle par outil (ou par glob). Chacune porte un
tool_name_glob et un
verdict allow. Un tools/call correspondant au glob se résout en allow
et se dispatche ; tout le reste retombe sur le défaut deny.github.create_issue,
shell.exec. * correspond à n’importe quel outil (utilisez-le avec
parcimonie ; une règle d’autorisation avec * défait toute la liste
d’autorisation). Un <server>. en tête cadre le glob à un seul serveur.
3. Un exemple concret
Vous avez connecté un serveurgithub et vous voulez seulement que les agents
lisent et ouvrent des issues — jamais supprimer ni administrer quoi que ce
soit. Dans la console, ouvrez Firewall → Policies, réglez le verdict par
défaut de la politique sur deny, et ajoutez deux règles d’autorisation :
| Ordre | tool_name_glob | Verdict |
|---|---|---|
| 1 | github.create_issue | allow |
| 2 | github.list_issues | allow |
deny :
github.create_issue→ correspond à la règle 1 → allow, se dispatche.github.delete_repo→ ne correspond à rien → deny par défaut.
firewall deny: …) — la même forme que renvoie n’importe quel outil
défaillant — de sorte que l’agent peut s’adapter au lieu de planter. (Sur la
surface inbound un deny est plutôt un HTTP 400 avec le code d’erreur
firewall_blocked.)
4. Resserrer avec les arguments
Un nom d’outil sur la liste d’autorisation peut quand même être appelé avec de mauvais arguments. Resserrez davantage en ajoutant une clauseargs_match
(JSONPath + un opérateur comme eq, contains, regex, in, ou
cidr_match) à la règle, ou en superposant une règle deny au-dessus de
l’allow pour une forme d’argument spécifique — par exemple, autorisez
github.create_issue mais deny-le quand le dépôt cible n’est pas sur une liste
approuvée. Voir la
référence des règles du firewall pour
l’ensemble complet des opérateurs.
sanitize redacte les arguments d’un appel d’outil avant transmission — il
ne touche jamais à ce qu’un outil renvoie. Pour rogner le contenu renvoyé,
c’est un contrôle différent ; voir
assainir la sortie des outils.5. Le déployer en sécurité
Basculez un refus par défaut à l’échelle du serveur en production et vous risquez de casser un agent qui dépendait discrètement d’un outil que vous avez oublié. Deux réglages dé-risquent :shadow_mode — voir les refus sans appliquer
shadow_mode — voir les refus sans appliquer
Un drapeau par politique qui rétrograde les verdicts enforcing en
audit.
Votre défaut deny et vos règles deny journalisent [shadow] would deny … au
lieu de bloquer, de sorte que vous pouvez valider la liste d’autorisation
contre le trafic réel avant qu’elle ne morde. En savoir plus dans
modes d’application.mode observe — faire remonter les outils que vous avez manqués
mode observe — faire remonter les outils que vous avez manqués
Un réglage d’espace de travail qui journalise chaque appel non couvert comme
une lacune dans le flux des
Outils Découverts. Exécutez-le avant
d’écrire la liste d’autorisation pour apprendre exactement quels outils vos
agents appellent, puis promouvez chacun en règle d’autorisation explicite.
shadow_mode et la liste d’autorisation s’applique.
6. Vérifier que ça marche
Après l’application, confirmez que les outils refusés sont réellement écartés :- Dry-run d’un
tools/callcontre la politique (Developer+) pour voir le verdict et quelle règle — ou le défaut — l’a produit, sans envoyer de trafic réel. Passez un nom d’outil, une surface, et des arguments d’exemple ; le moteur les évalue et renvoie la trace de verdict sans enregistrer d’événement. - Surveillez les événements. Chaque appel bloqué enregistre un événement firewall qu’un Developer+ peut lire dans la console ; la page événements d’audit couvre le flux et ses champs.
Connexe
Connecter un serveur MCP
Enregistrer un serveur avant de pouvoir lister ses outils autorisés.
Firewall : serveurs MCP
Le comportement d’exécution de la passerelle et les verdicts par appel.
Référence des règles du firewall
Le DSL de règle complet — globs, args_match, egress, sanitize.
Appels d'outils dangereux
La menace qu’une liste d’autorisation est conçue pour contenir.
Limites d'egress
Gouverner où un outil autorisé peut atteindre.
Guardrails vs. firewall
Quand recourir à la politique de contenu vs. la politique d’outils.
