Ne pas laisser Claude lire .env — permissions deny et limites¶
Resume¶
Tweet viral (849K vues, 5K bookmarks) montrant comment empecher Claude Code de lire les fichiers .env en ajoutant une regle deny dans .claude/settings.json :
Contexte : quote tweet de @Tech_girlll (3.8M vues) qui repete 5 fois "DON'T LET CLAUDE READ YOUR ENV FILE".
Analyse critique¶
Le conseil est correct mais insuffisant.
Le deny sur Read .env bloque l'outil Read de Claude Code. Mais comme le souligne un commentaire pertinent : "It will create a python script, load .env and bypass permissions". C'est vrai — un deny sur Read n'empeche pas : - cat .env via le tool Bash - Un script Python/Node qui lit le fichier - Un grep dans le repertoire courant qui capture des lignes du .env
Protections reelles (par ordre de robustesse) :
| Protection | Niveau | Limite |
|---|---|---|
.claude/settings.json deny | Faible | Contournable via Bash |
.claudeignore | Moyen | Empeche la lecture mais pas les commandes shell |
.gitignore + pas de .env sur disque | Fort | Pas de fichier = pas de risque |
| Vault (HashiCorp, AWS Secrets Manager) | Maximum | Secrets jamais sur disque |
Le vrai probleme : les secrets ne devraient pas etre dans des fichiers en clair sur le disque. La bonne pratique est d'utiliser un gestionnaire de secrets (Vault, 1Password CLI, AWS SSM) et d'injecter les variables d'environnement au runtime.
Pertinence ProbatioVault¶
ProbatioVault utilise HashiCorp Vault pour tous les secrets (GitLab token, AWS credentials). Pas de .env dans les repos. Le risque est donc mitige par design.
Points de vigilance : - CLAUDE.local.md contient des credentials (Jira API token, Vault token) — ce fichier est dans .gitignore mais lisible par Claude Code. C'est necessaire pour le workflow mais constitue une surface d'attaque - Les tokens dans CLAUDE.local.md sont des tokens d'API, pas des mots de passe root — le blast radius est limite - Le Vault token a un TTL et peut etre revoque
Rappel : ne jamais commiter CLAUDE.local.md. Verifier regulierement que .gitignore le couvre.