deny, attaché à une clé — et dès lors la passerelle refuse cet
outil à chaque appel, sans aucun changement de code dans votre agent.
Cette page couvre le cas d’usage de la deny-list et la seule décision qu’elle
impose : sur quelle surface bloquez-vous — les outils que vous annoncez
(inbound) ou les appels d’outils que le modèle émet (response). Pour
le vocabulaire de correspondance complet et la sémantique des verdicts, voir
Schéma de règle et
Verdicts.
1. Bloquer un appel d’outil qu’un agent IA effectue
Une règle de deny-list est la chose la plus simple qu’une politique firewall puisse exprimer : faire correspondre un outil par nom, renvoyerdeny.
Utilisez-la lorsqu’un outil ne devrait jamais se déclencher pour une clé
donnée — shell.exec, *.delete, un plugin communautaire en lequel vous
n’avez pas confiance — quels que soient les arguments.
Dans la console de votre espace de travail, ouvrez une politique (ou
créez-en une) et ajoutez une règle :
tool_name_glob est un petit glob sensible à la casse — shell.*
attrape toute une famille, *.delete attrape un verbe à travers les serveurs,
* attrape tout. Aucune clause d’argument n’est nécessaire : un glob nu +
deny bloque l’outil sans condition. Ajoutez une
clause d’argument seulement
lorsque vous voulez autoriser l’outil en général mais refuser une forme
d’appel.
2. Inbound vs response : choisir la surface
Un deny peut atterrir sur deux points différents du cycle de vie de la requête, et la différence compte. Épinglez la règle avec le champstage, ou
laissez-le vide pour couvrir les deux.
inbound
Les outils que votre agent annonce au modèle sur la requête (les
définitions d’outils). Un deny ici retire l’outil avant que le modèle
puisse même le choisir — le modèle ne le voit jamais comme une option.
response
Les
tool_calls que le modèle émet dans sa réponse. Un deny ici
attrape l’appel que le modèle a déjà décidé de faire, avant qu’il
n’atteigne l’outil.inbound lorsque vous voulez qu’un outil soit invisible — le
modèle ne peut pas appeler ce qui ne lui a jamais été proposé, donc vous
évitez les tours gaspillés où il choisit un outil pour se voir refuser.
Utilisez response (ou laissez stage vide) lorsque l’outil apparaît
légitimement dans certaines requêtes et que vous voulez attraper l’appel
réellement émis, ou lorsque vous ne contrôlez que la boucle d’agent et pas
l’ensemble d’outils annoncé.
Une règle sans
stage s’applique à toutes les surfaces — le même deny
couvre un outil qu’il soit annoncé, émis ou
dispatché à travers MCP. C’est le défaut
ceinture-et-bretelles ; n’épinglez une surface que lorsqu’un deny doit être
scopé à une seule. Voir Stages.3. Attacher la politique et la voir se déclencher
Une politique ne fait rien jusqu’à ce qu’une clé s’y résolve. Attachez dans la console en définissantfirewall_policy_id sur la
clé, ou faites de la politique le défaut
de l’espace de travail. La résolution est : la politique attachée de la clé
(lorsqu’elle existe et est activée), sinon le défaut de l’espace de travail.
(Une politique attachée mais désactivée retombe sur le défaut — voir
Gérer les politiques.)
Une fois attachée, un appel refusé sur la surface inbound renvoie HTTP
400 avec le code d’erreur firewall_blocked et une raison nommant l’outil —
par ex. tool "shell.exec" blocked by firewall. L’erreur est marquée
skip-retry (ré-exécuter l’appel identique ne ferait que bloquer à nouveau)
et ne coûte aucun token de modèle, puisqu’un block inbound se déclenche avant
l’appel amont. Un deny dispatché à travers la passerelle MCP
apparaît plutôt comme une erreur d’outil, de sorte que le modèle voit le
rejet et peut réagir.
4. Deny est l’un de plusieurs verdicts
Deny est l’outil le plus brutal de la deny-list. Quand un block dur est de trop, le même glob peut porter un verdict plus doux :| Verdict | Quand y recourir au lieu de deny |
|---|---|
audit | Vous voulez voir l’outil se déclencher mais pas encore le bloquer. |
sanitize | L’outil est correct mais ses arguments peuvent porter des secrets/PII — redacte les args, jamais les résultats d’outils. |
pending_approval | Un humain devrait approuver chaque appel hors-bande. |
cap_cost | Autorise jusqu’à ce que la dépense d’une exécution d’agent franchisse un plafond en centimes. |
deny. Pour une
posture de liste blanche (refuser tout, permettre un ensemble nommé), passez
le default_verdict de la politique à deny et ajoutez des règles allow
étroites — voir Liste blanche d’outils.
5. Le déployer en toute sécurité
Dry-run avant de vous y fier
Dry-run avant de vous y fier
L’onglet Test de la console exécute une politique en dry-run contre un
appel d’outil d’échantillon et renvoie le verdict, la règle correspondante
et la raison — rien n’est dispatché, rien n’est persisté. Confirmez que
votre glob correspond à l’outil que vous visiez (et seulement cet outil)
avant d’attacher une clé. Voir
Tester les règles.
Le mode shadow pour une mesure en live
Le mode shadow pour une mesure en live
Activez le mode shadow sur la
politique et chaque verdict appliquant — y compris votre deny — est
rétrogradé en
audit, raison préfixée [shadow] would …. Vous mesurez
exactement ce que le deny bloquerait contre le trafic réel, puis
désactivez le shadow pour appliquer.Trouvez les noms d'outils à partir du trafic réel
Trouvez les noms d'outils à partir du trafic réel
Pas sûr du nom d’outil exact à globber ? La vue Discovered Tools
liste chaque outil que l’espace de travail a vu, marqué covered ou gap.
Rédigez votre deny directement à partir des noms qui sont réellement
apparus. Voir Analytics.
Confirmez le block dans le journal d'événements
Confirmez le block dans le journal d'événements
Chaque évaluation écrit un événement firewall avec le verdict, la
surface, l’outil et la règle correspondante. Après avoir appliqué,
filtrez le journal d’événements par
verdict
deny pour voir la règle se déclencher sur les appels que vous
attendiez.6. Qui peut faire quoi
Toute la configuration de deny-list s’exécute dans la console sous votre session (/api/workspace/firewall/*) :
| Action | Rôle |
|---|---|
| Lire les politiques, presets, outils découverts, Simulate | Member |
| Dry-run d’une politique (Test) | Developer+ |
| Créer / éditer / supprimer des règles et des politiques | Developer+ |
| Lire le journal d’événements et les agrégations d’exécutions | Developer+ |
Connexe
Syntaxe glob
Exactement comment
shell.*, *.exec et *.shell.* correspondent.Liste blanche d'outils
La posture inverse : default-deny, permettre un ensemble nommé.
Valider les arguments
Refuser une seule forme d’appel, pas tout l’outil.
Appels d'outils dangereux
La menace qu’une deny-list traite.
Verdicts
Ce que font deny et ses frères plus doux sur le fil.
Référence du Firewall
La référence complète des règles + correspondance.
