Passer au contenu principal
Chaque requête qui atteint OrcaRouter porte une clé API. Cette clé n’est pas seulement un identifiant — c’est une déclaration de portée : quels modèles l’appelant peut utiliser, quelles IPs peuvent la présenter, combien elle peut dépenser, et exactement quel guardrail et quelle politique firewall gouvernent son trafic. Cette page explique la hiérarchie à trois niveaux et comment les politiques se résolvent au moment de la requête.

1. Les trois portées

Trois concepts s’emboîtent les uns dans les autres :
  • Espace de travail — la frontière du tenant. Chaque membre d’un espace de travail partage le même catalogue de guardrails et de politiques firewall. Rien ne franchit les frontières d’espace de travail — une politique rédigée dans l’espace de travail A est invisible pour l’espace de travail B.
  • Politique — un ensemble de règles nommé, à portée d’espace de travail (guardrail ou politique firewall). Modifier une politique prend effet sur chaque clé qui y est attachée à la prochaine requête, sans redéploiement.
  • Clé — identité plus attachements. Une clé porte ses propres contraintes et pointe vers les politiques qui la gouvernent.
L’espace de travail est la frontière externe ; les politiques sont des ressources partagées à l’intérieur ; les clés sont les identités par agent qui lient contraintes et politiques ensemble.

2. Ce qu’une clé transporte

Chaque clé API est un ensemble de limites et d’attachements. Définissez-les dans l’éditeur de clé (/console/token) — la création ou la modification de clés nécessite le rôle Developer ou supérieur.
ChampCe qu’il limiteRôle minimum pour définir
model_limitsRestreint la clé à une liste spécifique de modèles — tout appel en dehors de cette liste est rejeté avant de quitter la passerelle.Developer
allow_ipsListe blanche d’IP. Les requêtes depuis toute adresse non répertoriée sont rejetées à la couche d’authentification. Vide signifie que toutes les IPs sont autorisées.Developer
credit_limit_usdPlafond de dépenses en USD. 0 signifie illimité. La passerelle l’applique contre les dépenses à vie de la clé.Developer
expired_timeHorodatage d’expiration absolu. -1 signifie que la clé n’expire jamais.Developer
environmentUne étiquette libre (ex. prod, staging, dev) pour organiser les clés et filtrer les journaux.Developer
guardrail_idAttache un guardrail spécifique à cette clé. Chaque appel que cette clé effectue est filtré par ce guardrail.Developer
firewall_policy_idAttache une politique firewall spécifique à cette clé. Chaque appel d’outil que cette clé émet est évalué par cette politique.Developer
is_firewall_gatewayMarque la clé comme token scopé à la passerelle — requis pour appeler les routes de dispatch MCP et de hook d’évaluation. Une clé ordinaire obtient 403 sur ces routes. La lecture du texte en clair d’une clé de passerelle nécessite Admin.Admin (pour activer et lire le texte en clair)
Les clés sont masquées dans la console. Le texte en clair est affiché une fois à la création ; les clés scopées passerelle nécessitent Admin pour le récupérer à nouveau.

3. Ordre de résolution des politiques

Pour toute requête, OrcaRouter résout le guardrail actif et la politique firewall indépendamment :
  1. Attachement de clé — si la clé a un guardrail_id explicite (ou firewall_policy_id) et que cette politique existe et est activée, elle s’applique.
  2. Défaut de l’espace de travail — si la clé n’a pas d’attachement, le guardrail (ou la politique) is_default activé de l’espace de travail s’applique.
  3. Aucune application — si aucun des deux n’est défini, la requête passe sans filtrage de contenu ni application des appels d’outils.
Les deux plans diffèrent quand une politique attachée est désactivée :
  • Un attachement de guardrail désactivé ou supprimé signifie que la clé n’a aucun guardrail — le désactiver est l’interrupteur d’arrêt ; il ne revient pas sur le défaut de l’espace de travail.
  • Un attachement de firewall désactivé revient à la politique firewall par défaut de l’espace de travail — donc désactiver un attachement firewall ramène la clé au défaut de l’espace de travail, ça ne désactive pas l’application.
Un attachement manquant (0/non défini) revient toujours sur le défaut de l’espace de travail ; ni l’un ni l’autre défini signifie aucune application.
Au plus un guardrail et une politique firewall par espace de travail peuvent être le défaut à tout moment. Promouvoir un nouveau défaut rétrograde l’ancien dans la même transaction — vous ne pouvez jamais accidentellement avoir deux défauts.

4. Clés à moindre agence — une clé par agent

La configuration la plus sûre est de donner à chaque agent sa propre clé étroitement scopée plutôt que de partager une seule clé d’espace de travail entre tous les appelants. Une clé bien scopée pour un agent qui n’appelle qu’un seul modèle et exécute des tâches planifiées pourrait ressembler à :
  • model_limits : ["openai/gpt-4o-mini"] — l’agent ne peut pas passer à un modèle plus cher ou plus capable.
  • allow_ips : le CIDR d’egress du planificateur — aucune autre source ne peut présenter cette clé.
  • credit_limit_usd : un plafond budgétaire hebdomadaire — une boucle incontrôlée ne peut pas épuiser le solde de votre espace de travail.
  • expired_time : la fin du sprint ou du cycle de déploiement — la clé expire automatiquement et ne peut pas être réutilisée.
  • guardrail_id : un guardrail spécifique à la sensibilité des données de cet agent — plus strict que le défaut de l’espace de travail.
  • firewall_policy_id : une politique qui autorise uniquement les outils dont cet agent a légitimement besoin.
Quand cet agent est compromis via une injection de prompt, le rayon d’impact est borné : il peut seulement appeler un modèle, depuis une seule plage d’IP, seulement jusqu’à son plafond de dépenses, et seulement les outils que sa politique firewall autorise. Le reste de l’espace de travail n’est pas affecté.
Créez des clés scopées passerelle (is_firewall_gateway) uniquement pour la surface de dispatch MCP ou de hook d’évaluation — jamais pour le trafic d’inférence général. Une clé de passerelle sur le chemin d’inférence donne à l’appelant accès aux routes /api/v1/firewall/*, ce qui est une capacité plus large que nécessaire. Une clé, un but.

5. Où les politiques sont rédigées

Les Guardrails et les politiques firewall sont tous deux à portée d’espace de travail et partagés entre tous les membres, mais les changements nécessitent le bon rôle :
  • Lire tout guardrail, politique ou clé — tout membre de l’espace de travail.
  • Créer ou modifier des guardrails, des politiques firewall, des serveurs MCP, des niveaux d’autonomie, des actions d’approbation et des clés API ordinaires — Developer+.
  • Activer is_firewall_gateway sur une clé ; lire le texte en clair d’une clé de passerelle — Admin+.
L’espace de travail est la frontière de collaboration : tout le monde peut voir le catalogue de politiques ; seuls les Developers et supérieurs peuvent le modifier ; seuls les Admins peuvent émettre des identifiants de passerelle.

6. Prochaines étapes

Référentiel Secure Agents

La posture de départ recommandée — un interrupteur de niveau d’autonomie, puis ajustez à partir du trafic réel.

Obtenir une clé API

Créez votre première clé et attachez un guardrail ou une politique firewall dans la console.
La portée est le fondement de la pile de contrôle. Plus la portée de chaque clé est étroite, plus le rayon d’impact si l’un de vos agents est compromis est petit — et plus la piste d’audit est claire sur ce que chaque agent était autorisé à faire.