Crew donne à un agent d'IA un accès réel aux outils — lecture de fichiers, commandes shell, navigation Web. Le modèle de sécurité repose sur la défense en profondeur : plusieurs couches indépendantes, chacune appliquée à la limite de l'environnement d'exécution plutôt que de s'appuyer uniquement sur des instructions dans les requêtes.
Chaque appel d'outil passe par ces vérifications, dans l'ordre :
Le journal des événements de sécurité enregistre chaque décision à chaque étape. Il est transversal, et non une porte séquentielle.
Le bac à sable du système d'exploitation masque les chemins d'identifiants aux sous-processus de l'agent. Configurez à partir de Paramètres → Sécurité ou via kirocrew config set agent.sandbox <mode>.
| Mode | Ce qui est masqué | Ce qui est accessible | Idéal pour |
|---|---|---|---|
auto (par défaut) | .gnupg, .gcloud, .azure, .docker | .aws, .ssh, .kube | La plupart des utilisateurs — permet le git par SSH et l'AWS CLI |
strict | Tout ce qui précède + .aws, .ssh, .kube | Seulement ~/.ssh/known_hosts | Déploiements verrouillés |
off | Rien | Tout | Lorsque vous comprenez le compromis |
Sur Linux, le bac à sable utilise des espaces de noms utilisateur et de montage. Sur macOS, il utilise des profils Seatbelt.
Le bac à sable adopte une position de refus lorsque Crew ne peut pas l'appliquer. Sous Linux, cela comprend armv7l, riscv64, ppc64le et s390x, ou une libc sans prctl. Sous Windows, cela s'applique lorsque le bac à sable interne de Kiro CLI est désactivé. Dans ces cas, Crew refuse de démarrer l'agent, sauf si vous définissez explicitement agent.sandbox sur off ou agent.sandbox_allow_unsandboxed_exec sur true.
Contrôlez la façon dont l'agent obtient la permission d'exécuter des outils. Configurez à partir de Paramètres → Sécurité ou du bouton Autopilot propre à la session. Lorsque Crew bloque un appel, son refus indique à l'agent quelle action est permise au lieu de le laisser réessayer la même requête.
| Niveau | Ce qui se passe |
|---|---|
| Automatique (par défaut) | Les appels d'outils qui passent les contrôles de refus, de gouvernance et de bac à sable s'exécutent sans demande individuelle |
| Interactif | Les appels d'outils demandent une approbation sur une surface qui peut afficher la demande |
| Faire confiance à cette commande | Approbation automatique limitée à la session pour cet outil et ces arguments exacts |
| Faire confiance à cet outil | Approbation automatique limitée à la session pour l'outil, avec n'importe quels arguments |
| Autopilot | Tous les outils sont approuvés automatiquement pour cette session (les règles de refus s'appliquent toujours) |
Les commandes refusées et les blocages de chemins sensibles ne sont jamais contournés — même en mode Autopilot.
Lorsque plusieurs appels d'outils attendent votre réponse à la fois, un clic les approuve ou les rejette tous. La confirmation énumère chaque commande qu'elle couvre.
Vous pouvez aussi rejeter un seul appel et continuer à examiner les autres, plutôt que de refuser tout le lot. Un refus ne s'applique qu'à cet appel, de sorte que l'agent peut le réviser et le soumettre de nouveau.
Si un redémarrage met fin à une autorisation active et limitée dans le temps, Crew indique que l'autorisation a été abandonnée. Si l'hôte refuse un appel d'outil plutôt qu'une personne, Crew nomme la cause, comme une approbation expirée, un budget de tour épuisé ou l'échec de la livraison Slack.
Les longues commandes shell affichent un résumé facile à lire de ce qu'elles font. La commande complète est accessible en un survol.
Lorsque vous utilisez le harness Claude Code, un outil déjà préapprouvé dans les paramètres de Claude contourne le flux d'approbation de Crew. Les règles de refus et le journal d'audit de Crew n'observent pas cet appel. Codex refuse de démarrer lorsque agent.sandbox est défini sur off, car Crew demeure sa limite de bac à sable du système d'exploitation.
kirocrew chat affiche les invites d'autorisation des outils en ligne. Les tours ne restent plus bloqués silencieusement jusqu'à l'expiration du délai dans le terminal.
Les modèles intégrés bloquent les opérations destructrices et les voies courantes d'exfiltration d'identifiants avant l'approbation. Exemples :
rm -rf /, rm -rf ~git push vers des branches protégées (main, mainline)cat ~/.aws/credentials, cat ~/.ssh/id_rsacurl 169.254.169.254 (métadonnées IMDS)aws ec2 terminate-instances, cdk destroy, DROP TABLEecho $AWS_SECRET*, commandes révélant des identifiantsLe moteur de correspondance continue d'appliquer les règles de refus malgré les guillemets shell, les caractères d'échappement, la substitution de commandes et les noms de programmes écrits avec des caractères génériques. Il ne bloque plus le travail normal simplement parce qu'il ressemble à une commande risquée : un grep récursif dans un espace de travail, un cd suivi d'un tube et les here-documents contenant des accents graves s'exécutent normalement.
Gérez les règles à partir de Paramètres → Sécurité → Commandes refusées. Vous pouvez désactiver par ID les règles individuelles admissibles, désactiver toutes les règles non épinglées ou ajouter des modèles personnalisés. Les règles fournies par votre édition portent une étiquette dans la liste et peuvent aussi être désactivées par ID.
Les identifiants sont protégés à plusieurs niveaux :
.aws, .ssh, .gnupg, .env, et d'autres fichiers d'identifiants par des appels d'outilsLes secrets sont stockés dans un coffre-fort chiffré plutôt que dans votre fichier de configuration. Gérez-les à partir de Paramètres → Secrets dans le tableau de bord : les valeurs restent masquées dans l'interface et ne sont jamais envoyées au navigateur, de sorte que le tableau de bord n'affiche que le nom de chaque secret.
L'environnement d'un serveur MCP peut nommer un secret stocké sous la forme secret://NAME. La valeur est résolue à partir du coffre-fort au moment du lancement, de sorte que le secret ne se trouve jamais dans la configuration sur disque :
{ "mcpServers": { "example": { "command": "example-server", "env": { "API_TOKEN": "secret://EXAMPLE_API_TOKEN" } } } }
Si le secret nommé est absent du coffre-fort, le lancement échoue plutôt que de démarrer le serveur sans lui.
Chaque canal de messagerie est verrouillé aux utilisateurs autorisés :
KIROCREW_OWNER_ID (propriétaire unique)allow_all_users)whatsapp.dm_policy; les groupes configurés n'acceptent que l'opérateur et les numéros dans whatsapp.allowed_wa_ids. Les autres expéditeurs autorisés utilisent des sessions distinctes sans outils sur le backend Kiro; les autres backends d'agent refusent leurs tours.Les messages non autorisés sont silencieusement rejetés et enregistrés dans le journal d'audit.
Des fichiers de politique et de profil facultatifs se combinent selon un modèle où le plus strict l'emporte. Une application ou un agent en cours d'exécution peut restreindre la portée autorisée, mais ne peut pas assouplir le plafond. Dans tous les modes de bac à sable, la politique de sécurité, la politique d'admission, les profils et la liste des commandes refusées sont montés en lecture seule, de sorte qu'un script, Hook ou cron de commande exécuté dans le bac à sable ne peut pas réécrire ces contrôles.
~/.kiro/crew/security_policy.json)~/.kiro/crew/profiles/)Les administrateurs peuvent publier un security_policy.json à une URL et faire en sorte que chaque hôte le récupère, le mette en cache et l'actualise périodiquement. Une modification de politique prend effet dans tout le parc sans redémarrage ni visite d'un hôte. Si la source est inaccessible, les hôtes continuent d'utiliser la copie en cache. Un document qui ne passe pas la validation est rejeté plutôt que d'abaisser le plafond en vigueur.
Sur un compte Kiro d'entreprise doté d'un registre MCP configuré par un administrateur, les contrôles MCP au niveau de l'organisation, y compris les versions épinglées, s'appliquent. Les comptes personnels ne sont pas concernés.
Les administrateurs peuvent autoriser leurs propres fournisseurs OAuth par configuration, sans attendre qu'une version en ajoute un.
Inspectez à partir de l'interface en ligne de commande :
kirocrew policy show # display effective policy kirocrew policy validate # check policy files for errors kirocrew policy explain # explain how a tool call would be evaluated
Lorsque file_send détecte du contenu qui ressemble à un identifiant, il refuse la livraison et indique le processus de vérification. Le propriétaire du tableau de bord peut armer une approbation unique sous Paramètres → Sécurité, vérifier la destination et le fichier, puis exécuter cette commande directement sur l'hôte de la passerelle :
kirocrew file-delivery approve
L'agent ne peut pas accomplir lui-même cette étape sur l'hôte. La commande est refusée lorsque Computer Use est activé, afin d'empêcher un agent de simuler l'approbation de l'opérateur par automatisation du clavier. L'approbation se limite à la requête armée; elle ne contourne pas les contrôles pour les fichiers suivants.
Git sur SSH et la signature de commits par SSH peuvent utiliser le SSH_AUTH_SOCK de l'opérateur dans le bac à sable d'un agent uniquement après un consentement explicite. Le socket permet d'utiliser les clés détenues par l'agent SSH; il ne copie pas les clés privées dans le bac à sable. Le code exécuté par l'agent peut utiliser toute identité offerte par ce socket, donc le transfert est désactivé par défaut.
Créez ~/.kiro/crew/ssh_auth_sock_consent.json depuis votre propre terminal, à l'extérieur du bac à sable de l'agent :
{"enabled": true}
Aucun paramètre ni commande destinée à l'agent ne peut accorder cette autorisation. Les autres variables d'environnement sensibles demeurent supprimées, et le mode de bac à sable strict continue de masquer les fichiers de clés.
Chaque appel d'outil, approbation, refus et événement de sécurité est enregistré. Inspectez à partir de l'interface en ligne de commande :
kirocrew security events # view recent security events kirocrew security audit # view the audit trail kirocrew security verify # verify audit-log integrity
Le journal d'audit peut être consulté à partir du tableau de bord, sous Paramètres → Sécurité.
agent.sandbox à auto ou strict — n'exécutez pas avec off sans raison précisePour l'architecture de sécurité complète, y compris les détails d'implémentation, consultez le dépôt KiroCrew.
Sécurité