Autorisations Claude Code : protéger .env, Git et les commandes dangereuses
Guide pratique pour limiter les droits de Claude Code : isoler les secrets, encadrer les commandes Git et shell, et vérifier les garde-fous avant tout accès à un dépôt de production.
Lors de la configuration de Claude Code, les développeurs se heurtent souvent à un faux dilemme : confirmer sans cesse des commandes de lecture anodines, ou activer le contournement complet (--dangerously-skip-permissions) et risquer une fuite depuis .env, un git push --force accidentel ou un environnement de projet endommagé.
Ces deux extrêmes sont inefficaces. Une configuration sûre applique le principe du moindre privilège : les droits de lecture, d'écriture, d'exécution shell et de contrôle de version doivent être clairement séparés.
1. Carte des autorisations : de la lecture à l'impact externe
Répartissez les fichiers et les commandes dans quatre niveaux d'accès :
2. Isoler les fichiers .env et les secrets du projet
Transport Layer Security (TLS) chiffre le trafic API pendant son transport. Il n'empêche toutefois pas des identifiants confidentiels d'entrer dans la fenêtre de contexte du modèle, les journaux d'erreurs ou les synthèses de handoff.
Pour que Claude Code n'ingère pas d'identifiants privés :
- Ajoutez à
.gitignoretous les fichiers d'environnement contenant des secrets. - Fournissez un modèle
.env.examplepropre, avec des valeurs fictives ; l'agent comprend ainsi les noms de variables sans voir les valeurs d'exécution. - Ajoutez une règle de frontière stricte dans
CLAUDE.mdouAGENTS.md:
Règle de protection des secrets
- Ne jamais inspecter, afficher ou transmettre le contenu de
.env,.env.localou de fichiers de clés privées. - Pour vérifier les clés de configuration requises, examiner
.env.example.
3. Checklist priorisée pour Git et les commandes
Pour chaque tâche exécutée avec Claude Code, appliquez d'abord cette hiérarchie :
Garde-fous étape par étape
- Étape 1 : bloquer les mutations Git. N'autorisez jamais un push automatisé direct vers
mainsansgit diff --checkmanuel et sans exécution des tests. - Étape 2 : isoler l'installation de paquets. Les commandes telles que
npm install <package>ou les scripts curl distants doivent être vérifiés manuellement afin d'éviter les dépendances non fiables et les risques de chaîne d'approvisionnement. - Étape 3 : limiter le périmètre des répertoires. Restreignez le workspace de l'agent à un dossier de fonctionnalité précis ou à un Git worktree dédié.
4. Valider les autorisations dans un workspace de test
Avant d'accorder à Claude Code l'accès à un dépôt critique, effectuez une validation en sandbox :
- Créez une branche de test temporaire :
git checkout -b test/permission-check. - Ajoutez un fichier
.envfactice contenant un faux secret de test. - Demandez à l'agent de refactorer le module d'authentification.
- Vérifiez que :
- l'agent n'a pas lu le fichier
.envfactice lors de l'exploration ; - aucun token secret n'apparaît dans les journaux d'erreurs, les commentaires ou
git diff; - les tests unitaires s'exécutent sans accéder à des fichiers non autorisés.
- l'agent n'a pas lu le fichier
- Nettoyez la branche de test une fois les limites validées.
Cette frontière de permissions protège les identifiants tout en conservant une exécution autonome rapide.