Complete Claude Code Guide: From Installation to Advanced Usage

Complete Claude Code Guide: From Installation to Advanced Usage

A comprehensive tutorial covering everything you need to know about Claude Code - from basic installation and setup to advanced features like MCP integration, automation, and security best practices.

Leçon 4 2025-07-03 08:03

Guide des Bonnes Pratiques en Sécurité du Code Claude

Guide de sécurité et des bonnes pratiques pour Claude Code

La sécurité est primordiale lorsque l'on utilise des outils d'IA capables d'exécuter des commandes et de modifier des fichiers. Ce guide complet couvre les fonctionnalités de sécurité de Claude Code, les bonnes pratiques à adopter et la manière de l'utiliser en toute sécurité dans divers environnements.

Comprendre le modèle de sécurité de Claude Code

Claude Code met en œuvre une approche de sécurité multi-couches :

  1. Système de permissions : Contrôle granulaire de l'accès aux outils.
  2. Isolation de l'environnement : Bornes configurables de l'espace de travail.
  3. Pistes d'audit : Journalisation et surveillance complètes.
  4. Communication sécurisée : Communication API chiffrée.
  5. Gestion de la configuration : Manipulation sécurisée des identifiants.

Zoom sur le système de permissions

Niveaux de permission

Claude Code opère sur trois niveaux de permission principaux :

Niveau Description Risque Cas d'utilisation
Interactif Demande de confirmation pour chaque opération Faible Travail de développement
Liste d'autorisation Uniquement les outils pré-autorisés Moyen Scripts d'automatisation
Dangereux Ignore toutes les permissions CRITIQUE Uniquement dans les conteneurs

Mode interactif (recommandé)

En mode interactif, Claude demande la permission avant chaque opération potentiellement dangereuse :

# Valeur par défaut sûre - demande les permissions
claude "Aide-moi à déboguer cette application"

Lorsque Claude demande une permission : - Lisez attentivement la demande de permission. - Comprenez quel outil sera utilisé. - Évaluez l'impact potentiel. - Accordez uniquement les permissions nécessaires.

Mode liste d'autorisation

Pré-approuvez des outils spécifiques pour les flux de travail automatisés :

# Autorise uniquement les outils sûrs
claude --allowedTools "Edit,View" "Revois le code pour les problèmes de sécurité"

# Autorise des scopes de commande spécifiques
claude --allowedTools "Bash(git:*)" "Analyse le dépôt Git"

# Permissions combinées
claude --allowedTools "Edit,View,mcp__git__status,mcp__git__log" "Session de révision de code"

Mode dangereux ⚠️

N'utilisez JAMAIS le mode dangereux sur des systèmes de production ou des systèmes contenant des données importantes !

# DANGEREUX - À utiliser uniquement dans des conteneurs isolés
claude --dangerously-skip-permissions

Cas d'utilisation sûrs pour le mode dangereux : - ✅ Conteneurs Docker isolés - ✅ Machines virtuelles éphémères - ✅ Environnements sandbox - ✅ Systèmes de test sans données importantes

NE JAMAIS utiliser le mode dangereux sur : - ❌ Systèmes de production - ❌ Machines de développement partagées - ❌ Systèmes avec des données sensibles - ❌ Votre ordinateur personnel

Gestion des identifiants et des secrets

Sécurité de la clé API

Votre clé API Anthropic est l'identifiant le plus critique à protéger :

# âś… Bon : Variable d'environnement
export ANTHROPIC_API_KEY="sk-votre-clé-ici"

# ❌ Mauvais : En dur dans les commandes
# claude --api-key "sk-votre-clé-ici" "requête"

# ✅ Bon : Permissions de fichier sécurisées
chmod 600 ~/.bashrc  # Assurez-vous que seul vous pouvez lire les fichiers d'environnement

Sécurité des fichiers de configuration

Protégez la configuration de Claude Code :

# Définir les permissions de fichier appropriées
chmod 600 ~/.claude.json

# Vérifier les permissions actuelles
ls -la ~/.claude.json

# Exemple de sortie : -rw------- (seul le propriétaire peut lire/écrire)

Bonnes pratiques pour les variables d'environnement

# âś… Utilisez les variables d'environnement pour tous les secrets
export GITHUB_TOKEN="votre-jeton"
export DATABASE_URL="postgresql://utilisateur:motdepasse@hĂ´te/bd"
export API_SECRET="votre-secret"

# ✅ Utilisez des environnements séparés pour différents contextes
# Développement
export ANTHROPIC_API_KEY="sk-clé-dev"
# Production
export ANTHROPIC_API_KEY="sk-clé-prod"

# ❌ Ne jamais encoder les secrets en dur dans les fichiers de configuration

Pratiques de configuration sécurisées

Configuration hiérarchique

Utilisez la hiérarchie de configuration de Claude Code pour la sécurité :

# 1. Paramètres globaux (moins spécifiques)
cat ~/.claude.json
{
  "allowedTools": ["View"],
  "disallowedTools": ["Bash"]
}

# 2. Paramètres de projet (plus spécifiques)
cat ./settings.json
{
  "allowedTools": ["Edit", "View", "Bash(git:*)"],
  "systemPrompt": "Vous travaillez sur une application sécurisée"
}

# 3. Drapeaux de ligne de commande (les plus spécifiques)
claude --allowedTools "View" "Analyse le code pour les vulnérabilités"

Configuration sécurisée du MCP

Lors de la configuration des serveurs MCP, suivez ces pratiques de sécurité :

{
  "mcpServers": {
    "database": {
      "command": "postgres-mcp-server",
      "env": {
        "POSTGRES_URL": "${DATABASE_URL}",  // âś… Variable d'environnement
        "POSTGRES_SSL": "require"           // âś… Force le SSL
      }
    },
    "github": {
      "command": "github-mcp-server",
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}",  // âś… Variable d'environnement
        "GITHUB_ORG": "votre-organisation-sécurisée"     // ✅ Limite la portée
      }
    }
  }
}

Sécurité réseau

Configurez Claude Code pour un accès réseau sécurisé :

# Paramètres du proxy d'entreprise
export HTTP_PROXY="http://proxy.entreprise.com:8080"
export HTTPS_PROXY="https://proxy.entreprise.com:8443"
export NO_PROXY="localhost,127.0.0.1,*.entreprise.com"

# Point de terminaison API personnalisé (si déploiement privé)
export ANTHROPIC_BASE_URL="https://votre-point-de-terminaison-privé.com"

# Vérification SSL (dans les environnements d'entreprise)
export NODE_TLS_REJECT_UNAUTHORIZED=1  # Gardez la vérification SSL activée

Sécurité de l'espace de travail

Isolation des répertoires

Contrôlez les répertoires auxquels Claude Code peut accéder :

# ✅ Limite à des répertoires spécifiques
claude --add-dir ./src ./tests "Revois le code de l'application"

# ✅ Espace de travail spécifique au projet
cd /chemin/vers/le/projet
claude "Travaille uniquement sur ce projet"

# ❌ Évitez de travailler depuis des répertoires sensibles
# cd /etc && claude "aide à configurer le système"  # NE LE FAITES PAS

Modèles de permissions de fichiers

# ✅ Bon : Permissions d'outil spécifiques
claude --allowedTools "Edit(*.py),View(*.py)" "Travaille sur les fichiers Python"

# ✅ Bon : Accès bash limité en portée
claude --allowedTools "Bash(git:*),Bash(npm:test)" "Flux de travail de développement"

# ❌ Évitez : Accès bash large
# claude --allowedTools "Bash" "aide au développement"

Surveillance et audit

Bonnes pratiques de journalisation

Activez une journalisation complète pour la surveillance de la sécurité :

# Active la journalisation verbeuse
claude --verbose "Démarre une session de développement"

# Enregistre dans un fichier pour l'audit
claude --verbose "Session de développement" 2>&1 | tee claude-session.log

# Surveille les appels API
export ANTHROPIC_LOG_LEVEL=debug
claude "Analyse la sécurité de l'application"

Suivi des sessions

Suivez et gérez les sessions Claude Code :

# Liste toutes les sessions
claude sessions list

# Revois l'historique des sessions
claude sessions export ID-session > audit-session.json

# Nettoyage des anciennes sessions
claude sessions clear --before "il y a 30 jours"

Surveillance des coûts

Surveillez l'utilisation de l'API pour détecter toute activité inhabituelle :

# Vérifie les coûts de la session actuelle
claude /cost

# Surveille l'utilisation des jetons
claude /status

# Configure les alertes de coût (dans les environnements de production)
export MAX_SESSION_COST=10.00  # Exemple de limite de coût

Flux de travail de développement sécurisés

Flux de travail de révision de code

Approche sécurisée de la révision de code :

# ✅ Sûr : Lecture seule, pas de modifications
claude --allowedTools "View,mcp__git__*" "Revois les derniers commits pour les problèmes de sécurité"

# ✅ Sûr : Permissions d'édition limitées
claude --allowedTools "Edit(*.md),View" "Met Ă  jour la documentation"

# ⚠️ Attention : Accès d'édition complet
claude --allowedTools "Edit,View" "Implémente la correction de sécurité"

Opérations de base de données

Interactions sécurisées avec la base de données :

# ✅ Sûr : Accès en lecture seule à la base de données
claude --allowedTools "mcp__postgres__query" "Analyse les tendances des données utilisateur"

# ⚠️ Attention : Accès en écriture limité
claude --allowedTools "mcp__postgres__query,mcp__postgres__insert" "Ajoute des données de test"

# ❌ Dangereux : Accès complet à la base de données
# claude --allowedTools "mcp__postgres__*" "Corrige les problèmes de base de données"

Gestion des infrastructures

Opérations sécurisées sur l'infrastructure :

# ✅ Sûr : Vérification du statut uniquement
claude --allowedTools "View,Bash(kubectl:get)" "Vérifie le statut du cluster"

# ⚠️ Attention : Accès limité au déploiement
claude --allowedTools "Bash(kubectl:apply),Bash(kubectl:rollout)" "Déploie l'application"

# ❌ Jamais : Accès complet à l'infrastructure
# claude --allowedTools "Bash" "Corrige les problèmes de production"

Sécurité spécifique à l'environnement

Environnement de développement

# Permissions assouplies pour le développement
claude --allowedTools "Edit,View,Bash(git:*),Bash(npm:*)" \
  --add-dir ./src ./test ./docs \
  "Session de développement"

# Mémoire de projet pour le contexte
claude /memory set "Environnement de développement - soyez utile mais prudent"

Environnement de staging

# Plus restrictif pour le staging
claude --allowedTools "View,Bash(git:status),Bash(git:log)" \
  "Analyse le déploiement de staging"

# Accès en lecture seule à la base de données
claude --allowedTools "mcp__postgres__query" \
  "Vérifie l'intégrité des données de staging"

Environnement de production

# Permissions minimales pour la production
claude --allowedTools "View" \
  "Analyse les journaux de production pour les erreurs"

# Pas d'édition de fichiers en production
claude --disallowedTools "Edit,Bash" \
  "Session d'analyse de production"

Réponse aux incidents de sécurité

Clé API compromise

Si votre clé API est compromise :

  1. Révocation immédiate de la clé dans la console Anthropic.
  2. Génération d'une nouvelle clé API.
  3. Mise Ă  jour des variables d'environnement.
  4. Vérification de l'utilisation récente de l'API pour toute activité non autorisée.
  5. Audit des sessions Claude Code pour toute activité suspecte.
# Vérifie les sessions récentes
claude sessions list

# Exporte la session pour analyse
claude sessions export ID-session-suspecte > analyse-incident.json

# Efface toutes les sessions
claude sessions clear --all

Accès non autorisé aux fichiers

Si Claude Code a accédé à des fichiers sensibles :

  1. Arrêtez immédiatement la session en cours.
  2. Examinez les journaux de session pour comprendre ce qui a été accédé.
  3. Changez tous les identifiants exposés.
  4. Auditez les permissions de fichier.
  5. Mettez en œuvre des politiques allowedTools plus strictes.
# ArrĂŞte la session actuelle
claude /exit

# Revois ce qui s'est passé
tail -100 journal-session-claude.log

# Met en œuvre des permissions plus strictes
claude config set allowedTools '["View"]'

Compromission du serveur MCP

Si un serveur MCP est compromis :

  1. Désactivez le serveur MCP affecté.
  2. Examinez les journaux du serveur.
  3. Mettez à jour le serveur vers la dernière version.
  4. Faites pivoter les identifiants utilisés par le serveur.
  5. Réactivez avec des permissions minimales.
# Désactive le serveur MCP
claude mcp remove serveur-compromis

# Vérifie le statut du serveur
claude mcp status

# Revois la configuration
claude config get mcpServers

Liste de contrôle de sécurité

Liste de contrĂ´le d'utilisation quotidienne

  • Utilisez des permissions spĂ©cifiques et minimales pour chaque tâche.
  • Évitez le mode dangereux sur les systèmes importants.
  • Gardez les clĂ©s API sĂ©curisĂ©es dans des variables d'environnement.
  • VĂ©rifiez les invites de permission avant d'accorder l'accès.
  • Surveillez les coĂ»ts et l'utilisation des sessions.
  • Utilisez des configurations spĂ©cifiques au projet.

Examen de sécurité hebdomadaire

  • Auditez l'historique des sessions.
  • RĂ©examinez et nettoyez les anciennes sessions.
  • VĂ©rifiez les mises Ă  jour de Claude Code.
  • RĂ©examinez les configurations des serveurs MCP.
  • VĂ©rifiez les permissions de fichier sur les fichiers de configuration.
  • Surveillez les modèles d'utilisation des clĂ©s API.

Maintenance de sécurité mensuelle

  • Faites pivoter les clĂ©s API.
  • Mettez Ă  jour les serveurs MCP vers les dernières versions.
  • RĂ©examinez et mettez Ă  jour les configurations allowedTools.
  • Auditez les fichiers de mĂ©moire de projet.
  • Nettoyez les serveurs MCP inutilisĂ©s.
  • RĂ©examinez la conformitĂ© aux politiques de sĂ©curitĂ© de l'entreprise.

Pièges de sécurité courants

Ce qu'il ne faut PAS faire

# ❌ N'utilisez jamais le mode dangereux en production
claude --dangerously-skip-permissions "corrige un bug de production"

# ❌ Ne jamais encoder les secrets en dur
claude --env "API_KEY=secret123" "déploie l'application"

# ❌ N'accordez jamais des permissions trop larges
claude --allowedTools "Bash" "aide pour n'importe quoi"

# ❌ N'ignorez jamais les invites de permission
# Lisez et comprenez toujours ce que Claude veut faire

# ❌ N'utilisez jamais Claude Code avec des privilèges élevés inutilement
sudo claude "corrige la configuration du système"  # Généralement inutile et dangereux

Anti-modèles de sécurité

  1. Permissions générales : Accorder l'accès à tous les outils sans considération.
  2. Exposition des identifiants : Placer les secrets dans les arguments de ligne de commande.
  3. Élévation de privilèges : Exécuter Claude Code avec un sudo inutile.
  4. Expérimentation en production : Tests en environnements de production.
  5. Avertissements ignorés : Ignorer les invites de sécurité sans les lire.

Configuration de sécurité avancée

Sécurité d'entreprise

Pour les environnements d'entreprise :

# Gestion centralisée de la configuration
export CLAUDE_CONFIG_URL="https://interne.entreprise.com/config-claude"

# Journalisation d'audit
export CLAUDE_AUDIT_LOG="/var/log/claude/audit.log"

# Restrictions réseau
export ANTHROPIC_BASE_URL="https://proxy.entreprise.com/anthropic"

# Mode de conformité
export CLAUDE_COMPLIANCE_MODE="SOC2"

Sécurité des conteneurs

Pour Claude Code conteneurisé :

# Dockerfile pour un conteneur Claude Code sécurisé
FROM node:18-alpine

# Crée un utilisateur non root
RUN addgroup -g 1001 claude && adduser -D -u 1001 -G claude claude

# Installe Claude Code
RUN npm install -g @anthropic-ai/claude-code

# Passe Ă  l'utilisateur non root
USER claude

# Définit un répertoire de travail sécurisé
WORKDIR /workspace

# Par défaut au mode sécurisé
CMD ["claude", "--allowedTools", "View"]

Conclusion

La sécurité dans Claude Code consiste à équilibrer la fonctionnalité et la sûreté. Commencez avec des permissions minimales et étendez progressivement l'accès si nécessaire. Considérez toujours l'impact potentiel de l'octroi de permissions, et n'utilisez jamais le mode dangereux sur des systèmes contenant des données importantes.

N'oubliez pas : - Par défaut, utilisez des permissions restrictives. - Utilisez des variables d'environnement pour les secrets. - Surveillez et auditez régulièrement. - Maintenez les configurations à jour. - Appliquez le principe du moindre privilège.

En suivant ces pratiques de sécurité, vous pouvez exploiter la puissance de Claude Code en toute sécurité tout en protégeant vos systèmes et vos données des risques potentiels.

Ressources de sécurité

Restez vigilant en matière de sécurité, et Claude Code deviendra un ajout puissant et sûr à votre boîte à outils de développement.