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 fichierconnections.tomlpour 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
600pour les fichiers de configuration et700pour les répertoires afin de restreindre l’accès à votre utilisateur uniquement.chmod 600 ~/.snowflake/connections.toml chmod 700 ~/.snowflake/cortex
- Ne jamais enregistrer les identifiants de connexion
Ajoutez des fichiers de configuration sensibles à
.gitignore.echo "~/.snowflake/connections.toml" >> ~/.gitignore
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"
N’utilisez jamais
ACCOUNTADMINpour 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
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>
- 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"
Puis faites-en la référence dans votre configuration MCP :
{ "mcpServers": { "github": { "env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" } } } }
Sécurité de la production¶
- Activer le mode planification
Utilisez la commande
/planpour vérifier les actions prévues avant leur exécution./plan Drop and recreate the ANALYTICS schema
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
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 ⏸ |
|
Présente un plan avant de prendre toute action. |
Contournement |
Rouge >> |
|
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 |
|
Approuvé automatiquement |
LOW |
Créer un nouveau fichier (par ex., |
Généralement approuvé automatiquement |
MEDIUM |
Modifier des fichiers (par ex., |
Invites en mode Confirmation |
HIGH |
|
Invite systématique |
CRITICAL |
|
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,sshsystemctl,chmod,chowngit push --force,git reset --hard
- Indicateurs de danger
-rf,--force,--recursive--no-preserve-root
- Modèles dangereux
Canal vers shell :
curl | bashTé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"
}
]
}
]
}
}
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"
}
}
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"
}
}
}
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 |
|---|---|
|
Définit le délai d’expiration par défaut du cache d’autorisation de session (en secondes). |
|
Si défini sur |
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