Sandbox de la CLI de Code Cortex¶
La CLI de Code Cortex peut exécuter des commandes shell dans un environnement sandbox pour restreindre l’accès au système de fichiers, l’accès au réseau et les capacités de traitement. L’exécution en sandbox ajoute une couche d’isolation, de sorte que l’agent ne puisse pas modifier accidentellement des fichiers ou accéder à des ressources en dehors de votre projet.
Important
La prise en charge de cette fonctionnalité est expérimentale et peut être soumise à modifications.
Prise en charge de plateforme¶
Le sandbox utilise les fonctions d’isolation intégrées du système d’exploitation pour restreindre les commandes.
Plateforme |
Mise en œuvre |
Dépendances |
|---|---|---|
macOS |
|
|
Linux |
|
|
Windows |
Jetons restreints natifs |
Aucun(e) |
Installation des dépendances¶
macOS :
Debian/Ubuntu :
Fedora / RHEL :
Activation du sandbox¶
Utilise la commande barre oblique /sandbox dans la CLI de Cortex Code :
Vous pouvez également activer le sandbox dans votre fichier de paramètres. Ajoutez un objet sandbox à ~/.snowflake/cortex/settings.json (au niveau de l’utilisateur) ou``.snowflake/cortex/settings.json`` (au niveau du projet) :
Le mode d’autorisation par défaut est "regular". Pour utiliser le mode d’autorisation automatique, définissez`` »mode »: « autoAllow »`` explicitement. Voir Modes d’autorisation.
Modes d’autorisation¶
Le sandbox dispose de deux modes d’autorisation qui contrôlent la manière dont les commandes sont approuvées :
Mode |
Définition de la valeur |
Comportement |
|---|---|---|
Autorisation automatique |
|
Les commandes qui peuvent être exécutées en sandbox s’exécutent automatiquement sans invite. Les commandes qui ne peuvent pas être exécutées en sandbox (par exemple, celles nécessitant un accès réseau à des domaines non autorisés) reviennent au flux d’autorisation normal. |
Standard |
|
Toutes les commandes demandent une approbation, même lorsqu’elles sont exécutées dans le sandbox. |
Réglez le mode avec la commande /sandbox ou dans les paramètres :
Restrictions du système de fichiers¶
Le sandbox contrôle les chemins que les commandes peuvent lire et écrire.
Comportement par défaut¶
Répertoire de travail : Toujours autorisé pour la lecture et l’écriture.
Répertoire des connaissances (
~/.snowflake/cortex/skills) : autorisé.Répertoire contextuel (
~/.snowflake/cortex/.ctx) : autorisé lorsquectxAvailableest activé.
Chemins protégés (toujours refusés en écriture)¶
Les chemins suivants sont toujours protégés, quelle que soit votre configuration :
Fichiers de configuration shell :
~/.bashrc~/.bash_profile,~/.zshrc,~/.zprofile,~/.profile,~/.bash_loginet~/.bash_logout.Hooks Git :
~/.git/hooks,.git/hooksConfiguration SSH :
~/.ssh/authorized_keys,~/.ssh/configRépertoires et fichiers de paramètres gérés :
/Library/Application Support/Cortex/(macOS ),/etc/cortex/(Linux),``%ProgramData%Cortex`` (Windows)
Règles du système de fichiers personnalisé¶
Configurez l’accès au système de fichiers dans les paramètres :
Réglage |
Par défaut |
Description |
|---|---|---|
|
|
Chemins que le sandbox peut lire. Un tableau vide signifie que tous les chemins sont autorisés (sauf ceux dans |
|
|
Chemins que le sandbox ne peut pas lire. A priorité sur |
|
|
Chemins dans lesquels le sandbox peut écrire. |
|
|
Chemins dans lesquels le sandbox ne peut pas écrire. A priorité sur |
Important
Les règles de refus ont toujours la priorité sur les règles d’autorisation. Si un chemin correspond à allowWrite et``denyWrite``, le chemin est refusé.
Restrictions réseau¶
Le sandbox peut restreindre les domaines auxquels les commandes peuvent accéder sur le réseau.
Réglage |
Par défaut |
Description |
|---|---|---|
|
|
Domaines auxquels le sandbox peut accéder. Un tableau vide signifie que tous les domaines sont autorisés (sauf ceux de la section |
|
|
Domaines auxquels le sandbox ne peut pas accéder. A priorité sur |
|
|
Si les commandes exécutées en sandbox peuvent être liées à des ports locaux. |
Repli pour les commandes hors sandbox¶
Certaines commandes peuvent ne pas être compatibles avec le sandbox. Le paramètre allowUnsandboxedCommands contrôle ce qui se passe lorsqu’une commande ne peut pas s’exécuter à l’intérieur du sandbox.
Réglage |
Comportement |
|---|---|
|
L’agent peut demander l’exécution de la commande sur l’hôte. Vous êtes invité à approuver. |
|
Les commandes doivent être exécutées dans le sandbox ou être listées dans |
Commandes exclues¶
Vous pouvez spécifier des commandes qui doivent toujours s’exécuter sur l’hôte, en dehors du sandbox :
Les commandes exclues contournent le sandbox et suivent le flux d’autorisation normal.
Référence des paramètres¶
L’objet de paramètres sandbox complet :
Réglage |
Par défaut |
Description |
|---|---|---|
|
|
Activer ou désactiver le sandbox. |
|
|
Mode d’autorisation : |
|
|
Autorisez le retour à l’exécution de l’hôte lorsqu’une commande ne peut pas être mise en sandbox. |
|
|
Commandes qui s’exécutent toujours sur l’hôte, en dehors du sandbox. |
|
|
Règles d’autorisation de haut niveau. Prend en charge des modèles tels que |
|
|
Règles d’interdiction de haut niveau. Même syntaxe de modèle que |
|
|
Liste d’autorisation de domaine réseau (vide = tout autoriser). Prend en charge les caractères génériques. |
|
|
Liste d’interdiction du domaine du réseau. A la priorité sur la liste d’autorisation. |
|
|
Autoriser les commandes exécutées en sandbox à se lier à des ports locaux. |
|
|
Liste d’autorisation de lecture (vide = autoriser tout sauf refuser). |
|
|
Lire la liste d’interdiction. A priorité. |
|
|
Écrire une liste d’autorisation. |
|
|
Écrire une liste d’interdiction. A priorité. |
|
|
Autoriser l’accès des sandbox au répertoire de contexte ( |
Périmètres de configuration¶
Les paramètres sandbox suivent la même priorité que les autres paramètres de Cortex Code :
Niveau projet (priorité la plus élevée) :
.snowflake/cortex/settings.jsonNiveau utilisateur :
~/.snowflake/cortex/settings.jsonGéré/Exécuté : Les administrateurs peuvent appliquer des politiques de sandbox via le fichier de paramètres géré. Voir Paramètres gérés (politique de l’organisation).