SFEIR

Politiques d'outils et approbations d'exécution dans OpenClaw : configurer une posture d'entreprise

SFEIR
Politiques d'outils et approbations d'exécution dans OpenClaw : configurer une posture d'entreprise

OpenClaw offre un système de contrôle à plusieurs couches (tool policy, exec approvals, sandbox modes, elevated), mais son défaut reste permissif : le mode « trusted single-operator » fixe security=full et ask=off. Voici comment régler chaque couche pour une posture d'entreprise.

Comment fonctionnent les tool policies d'OpenClaw ?

La tool policy décide quels outils sont disponibles pour l'agent, via tools.allow / tools.deny (globaux, par agent, par canal), des profils (tools.profile: "messaging") et des groupes (group:fs, group:runtime, group:sessions, group:plugins).

  • La tool policy s'applique avant l'appel au modèle (hard stop) : si un outil est retiré, le modèle ne reçoit même pas son schéma pour ce tour.
  • Elle est le verrou dur : /exec ne peut pas outrepasser un outil exec refusé.
  • Elle filtre par nom, pas par effet de bord : autoriser exec mais refuser write/edit/apply_patch ne rend pas les commandes shell read-only.
  • Les entrées d'audit agents/tool-policy dans les logs de la gateway indiquent quelle règle a retiré quel outil.

Qu'est-ce que les exec approvals (ask / auto / deny) ?

Les exec approvals autorisent un agent sandboxé à exécuter des commandes sur un hôte réel (gateway ou node) : « commands are allowed only when policy + allowlist + (optional) user approval all agree ».

  • tools.exec.mode (le bouton normalisé) → dérive security et ask : deny (bloque tout host exec), allowlist (uniquement les commandes en liste blanche), full (tout autorisé).
  • ask : off / on-miss (demande en cas de non-correspondance) / always (à chaque commande).
  • askFallback (par défaut deny) : résolution quand un prompt est requis mais qu'aucune UI n'est joignable.
  • Presets : yolo, cautious, deny-all (appliquent host/security/ask/askFallback ensemble).
  • Effective policy = la plus stricte entre tools.exec.* et les défauts d'approbations.

Le défaut est permissif par conception : « No-approval host exec is the default for gateway and node (security="full", ask="off") ». C'est de l'UX pour un opérateur unique de confiance, non une posture d'entreprise. Le fichier d'approbations local (~/.openclaw/exec-approvals.json) montre qu'un défaut plus sûr est possible (security: "deny", ask: "on-miss", askFallback: "deny").

OpenClaw présente le mode auto comme « the mode that fits Enterprise environments best » : la politique s'exécute d'abord, un reviewer LLM (mappé sur Codex Guardian via le harness Codex) juge les commandes qui manquent la politique, et tout ce qui reste incertain remonte à un humain. On peut fixer un modèle reviewer plus fort (tools.exec.reviewer.model openai/gpt-5.5).

Sandbox mode, elevated et strictInlineEval : quelles interactions ?

  • Sandbox tool policy (tools.sandbox.tools.allow/deny) : seconde grille quand l'agent est sandboxé.
  • Elevated (tools.elevated.*) : escape hatch exec-only pour sortir du sandbox. /elevated full saute les approbations pour la session, sans outrepasser le tool allow/deny.
  • strictInlineEval : traite les formes d'éval inline (python -c, node -e, osascript -e…) comme approval-only même si l'interpréteur figure en allowlist. Défense en profondeur pour les loaders sans correspondance nette avec un fichier.
  • File binding : pour les scripts, OpenClaw lie une opérande fichier locale ; si le fichier change après approbation mais avant exécution, le run est refusé (« best-effort, pas un modèle complet »).

Comment configurer une posture d'entreprise ?

  • deny-all par défaut, puis allowlist explicite minimale (openclaw exec-policy preset deny-all, puis approvals allowlist add).
  • ask: "always" sur host exec pour les opérateurs, ou mode auto avec reviewer fort et fallback humain.
  • Sandbox obligatoire (host=sandbox échoue en fermé plutôt que de retomber en silence sur la gateway).
  • strictInlineEval: true.
  • Multi-tenant : séparez les périmètres de confiance par utilisateur OS / hôte et faites tourner des gateways distinctes. Les exec approvals « are guardrails for operator intent, not hostile multi-tenant isolation ».
  • Hard-block si besoin : tools.deny: ["exec"] + group:fs.

FAQ

Le défaut d'OpenClaw est-il sûr pour l'entreprise ? Non. Le défaut security=full, ask=off convient à un opérateur unique de confiance. En entreprise, resserrez via deny-all / allowlist / auto.

Refuser write rend-il l'exec read-only ? Non. La tool policy filtre par nom, pas par effet de bord. Il faut refuser exec ou passer par le sandbox filesystem.

Le mode auto remplace-t-il l'humain ? Non : le reviewer LLM ne peut qu'approuver des commandes à faible risque ; l'humain reste l'autorité finale quand le reviewer ne peut pas dire oui en sécurité.


Sources

SFEIR Auteur

Articles similaires