Bonnes pratiques de sécurité pour la CLI Cortex Code

Les pratiques de sécurité essentielles pour la CLI Cortex Code comprennent l’utilisation de méthodes d’authentification sécurisées, la protection des fichiers de configuration, la gestion appropriée des rôles et des accès, le traitement sécurisé de l’historique des conversations, la garantie de l’intégrité des serveurs MCP et le respect des protocoles de sécurité de production.

Important

Dans les environnements gérés, votre organisation peut déployer un fichier de paramètres gérés au niveau du système qui applique la politique (par exemple, restriction de l’accès aux outils, limitation des comptes autorisés ou désactivation des capacités de contournement). Pour plus de détails, voir Paramètres gérés (politique de l’organisation).

Identifiants de connexion

Utilisez l’authentification par navigateur lorsque cela est possible.

La méthode d’authentification par défaut pour la CLI Cortex Code est une authentification basée sur un navigateur. Utilisez authenticator = "externalbrowser" dans votre fichier connections.toml pour définir cette option manuellement.

Utilisez des jetons d’accès programmatiques (PATs) lorsque vous essayez de limiter l’accès à un rôle spécifique.

Générez les PATs dédiés dans Snowsight (voir Utilisation de jetons d’accès programmatique pour l’authentification). Fixez l’expiration ≤ 90 jours, utilisez des noms descriptifs et effectuez des rotations régulières.

Protéger les fichiers de configuration

Utilisez le mode 600 pour les fichiers de configuration et 700 pour les répertoires afin de restreindre l’accès à votre utilisateur uniquement.

chmod 600 ~/.snowflake/connections.toml
chmod 700 ~/.snowflake/cortex
Copy
Ne jamais enregistrer les identifiants de connexion

Ajoutez des fichiers de configuration sensibles à .gitignore.

echo "~/.snowflake/connections.toml" >> ~/.gitignore
Copy

Utilisez les variables d’environnement pour contenir les identifiants de connexion et les jetons, et intégrez-les dans vos fichiers de configuration en utilisant la syntaxe ${VARIABLE_NAME}.

Rôles et accès

Utiliser les rôles appropriés par environnement

Par exemple, utilisez un rôle en lecture seule pour la production et un rôle plus étendu pour le développement.

[dev]
role = "DEVELOPER"

[prod_readonly]
role = "ANALYST"
Copy

N’utilisez jamais ACCOUNTADMIN pour les opérations de routine. Accordez le moins de privilèges.

Historique de la conversation

Les conversations sont stockées dans ~/.snowflake/cortex/conversations/. Utilisez cortex --private lors du démarrage de Cortex Code pour désactiver l’enregistrement de session pour les travaux sensibles. Vous pouvez également utiliser la commande /clear pour effacer la session en cours avant de quitter la CLI Cortex Code.

Utilisez le mode 700 pour limiter l’accès à l’historique des conversations à votre utilisateur uniquement.

chmod 700 ~/.snowflake/cortex/conversations
Copy

Sécurité MCP

Installez uniquement des serveurs MCP de confiance

Vérifiez la source et l’intégrité des serveurs MCP avant de les ajouter. Utilisez les commandes suivantes pour obtenir une liste de serveurs et supprimer tous ceux qui ne sont pas fiables :

cortex mcp list
cortex mcp remove <server>
Copy
Ne jamais coder en dur les identifiants MCP

Utilisez les variables d’environnement. Tout d’abord, définissez dans votre shell :

export GITHUB_TOKEN="your_token"
Copy

Puis faites-en la référence dans votre configuration MCP :

{
   "mcpServers": {
      "github": {
         "env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
      }
   }
}
Copy

Sécurité de la production

Activer le mode planification

Utilisez la commande /plan pour vérifier les actions prévues avant leur exécution.

/plan
Drop and recreate the ANALYTICS schema
Copy

Si votre jeton d’accès personnel est compromis

Révoquez le PAT dans Snowsight immédiatement ! Générez ensuite un nouveau jeton et commencez à l’utiliser à la place. N’oubliez pas, n’utilisez pas le jeton dans les fichiers de configuration ; utilisez plutôt des variables d’environnement.

Examinez l’historique des requêtes pour identifier toute activité suspecte.

SHOW QUERIES IN ACCOUNT
Copy

Paramètres gérés (politique d’entreprise)

Dans certaines organisations, les administrateurs déploient des paramètres gérés qui appliquent la politique pour Cortex Code CLI. Les paramètres gérés peuvent contraindre ou remplacer la configuration au niveau de l’utilisateur (y compris les invites d’autorisation et le comportement de contournement).

Pour plus d’informations, voir Paramètres gérés (politique de l’organisation).

Autorisations

Cortex Code a trois modes de fonctionnement :

Mode

Indicateur

Commandes avec barre oblique

Description

Confirmation des actions

Bleu ⏵⏵

Mode par défaut

Demandes d’autorisation avant les actions potentiellement dangereuses.

Plan

Orange ⏸

/plan, /plan-off

Présente un plan avant de prendre toute action.

Contournement

Rouge >>

/bypass, /bypass-off

Tous les appels d’outils sont approuvés.

Appuyez sur Shift-Tab dans la CLI Cortex Code pour parcourir ces modes.

Avertissement

Le mode Contournement désactive toutes les invites de confirmation. Utilisez-le uniquement dans des environnements de confiance.

Types d’autorisation

Les niveaux d’autorisation suivants s’appliquent aux appels de l’outil Cortex Code :

Type

Description

EXECUTE_COMMAND

Exécuter des commandes bash/shell

FILE_READ

Lire le contenu des fichiers

FILE_WRITE

Créer/modifier des fichiers

FILE_EDIT

Modifier des fichiers existants

WEB_ACCESS

Opérations de recherche/d’extraction sur le Web

Modèle de confiance

Cortex Code classe les commandes et les opérations par risque, comme indiqué dans le tableau suivant :

Niveau

Exemples

Comportement

SAFE

ls, cat, echo, grep

Approuvé automatiquement

LOW

Créer un nouveau fichier (par ex., touch file.txt)

Généralement approuvé automatiquement

MEDIUM

Modifier des fichiers (par ex., nano file.txt), bash modéré

Invites en mode Confirmation

HIGH

rm, curl, wget, sudo

Invite systématique

CRITICAL

rm -rf, ops destructrices

Confirmation supplémentaire

Les commandes shell et SQL sont classées en fonction de leur impact potentiel.

Commandes shell

Les commandes sont analysées pour détecter les facteurs de risque courants.

Commandes à risque
  • rm, sudo, curl, wget, ssh

  • systemctl, chmod, chown

  • git push --force, git reset --hard

Indicateurs de danger
  • -rf, --force, --recursive

  • --no-preserve-root

Modèles dangereux
  • Canal vers shell : curl | bash

  • Télécharger et exécuter

  • Accès aux fichiers masqués (préfixe .)

  • Accès au chemin système (/etc, /var, /usr)

SQL requêtes

SQL est catégorisé par type d’opération :

Catégorie

Opérations

Comportement

READ_ONLY

SELECT, SHOW, DESCRIBE

Approuvé automatiquement

WRITE

INSERT, UPDATE, DELETE, CREATE

Invites

USE_ROLE

USE ROLE, USE WAREHOUSE

Invites

Autorisations sandbox

Lorsque le sandboxing est activé :

Mode sandbox

Comportement d’autorisation

Conteneur + automatique

Commandes sandbox approuvées automatiquement

Conteneur + standard

Invite de toutes les commandes

OS + automatique

Commandes sandbox approuvées automatiquement

OS + standard

Invite de toutes les commandes

Intégration du hook

Vous pouvez personnaliser la politique d’autorisation à l’aide de hooks. Voici un exemple de hook de pré-exécution qui approuve les commandes bash d’approbation automatique :

{
   "hooks": {
      "PreToolUse": [
         {
         "matcher": "Bash",
         "hooks": [
            {
               "type": "command",
               "command": "bash .claude/hooks/auto-approve.sh"
            }
         ]
         }
      ]
   }
}
Copy

Ce hook pourrait renvoyer une réponse JSON comme les suivantes pour approuver automatiquement les commandes bash.

{
   "hookSpecificOutput": {
      "hookEventName": "PreToolUse",
      "permissionDecision": "allow",
      "permissionDecisionReason": "Approved by policy"
   }
}
Copy

Invites d’autorisation et mise en cache

Lorsque Cortex Code nécessite votre autorisation pour procéder à une opération, il vous demande des détails sur la demande. Vous pouvez choisir d’approuver ou de refuser la demande. Vous pouvez également choisir de mémoriser votre choix pour les demandes similaires futures :

  • « Toujours autoriser (cette session) » mémorise jusqu’à ce que vous quittiez la CLI Cortex Code.

  • « Toujours autoriser (persistant) » mémorise indéfiniment.

Ces réponses sont mises en cache et liées au répertoire du projet, au type d’outil ou au modèle de commande, selon le cas.

Les autorisations persistantes sont stockées dans ~/.snowflake/cortex/permissions.json. Voici un exemple de cache :

{
   "/path/to/project": {
      "Bash": {
         "npm test": "allow",
         "make build": "allow"
      },
      "Write": {
         "*": "allow"
      }
   }
}
Copy

Supprimez ce fichier pour réinitialiser toutes les autorisations persistantes. Pour réinitialiser les autorisations pour un projet spécifique, supprimez l’entrée correspondante.

Pour réinitialiser le cache de session, utilisez la commande /new, qui démarre une nouvelle session, ou quittez et redémarrez la CLI Cortex Code.

Configuration

Définissez les variables d’environnement décrites ci-dessous pour contrôler le comportement des autorisations :

Variable

Description

CORTEX_PERMISSION_CACHE_TTL_SECONDS

Définit le délai d’expiration par défaut du cache d’autorisation de session (en secondes).

COCO_DANGEROUS_MODE_REQUIRE_SQL_WRITE_PERMISSION=true

Si défini sur 1, demandez toujours confirmation pour les opérations d’écriture SQL, même en mode contournement.

Liste de contrôle de sécurité

  • Utiliser des PATs dont la durée de validité ne dépasse pas 90 jours.

  • Définir les autorisations de fichier sur 600/700

  • Ne jamais valider les identifiants de connexion dans Git

  • Utiliser des rôles à privilèges minimaux

  • Ne jamais utiliser ACCOUNTADMIN pour les tâches de routine

  • Activer le mode de planification pour la production et le mode de contournement de réserve pour les environnements de confiance

  • Installez uniquement des serveurs MCP de confiance

  • Stocker les identifiants de connexion dans des variables d’environnement

  • Utiliser des hooks pour appliquer des politiques en automatisant les contrôles de sécurité personnalisés

  • Autorisations d’audit périodique