Sicurezza di Claude Code: Permessi, Sandboxing e Uso Sicuro
Claude Code ha un sistema di permessi che ti permette di controllare esattamente cosa l'IA puo' e non puo' fare. Ecco come configurarlo per uno sviluppo sicuro.
Claude Code esegue comandi e modifica file nel tuo ambiente. Questo potere richiede guardrail. Il sistema di permessi ti permette di definire esattamente a cosa Claude Code puo' accedere, cosa puo' modificare e quali azioni richiedono la tua approvazione esplicita.
Come funziona il sistema di permessi di Claude Code?
Claude Code ha tre modalita' di permesso che controllano quanta autonomia ottiene l'agente:
| Modalita' | Comportamento | Ideale per |
|---|---|---|
| Normale | Chiede il permesso per ogni uso di strumento | Apprendimento, codebase sensibili |
| Auto-Accept | Approva azioni sicure, chiede per quelle rischiose | Sviluppo quotidiano |
| Modalita' Piano | Pianifica le modifiche, attende approvazione prima di eseguire | Code review, modifiche architetturali |
Come configurare le regole allow/deny?
I permessi granulari sono impostati in settings.json. Usa pattern glob per controllare a quali file e comandi Claude Code puo' accedere:
// .claude/settings.json
{
"permissions": {
"allow": [
"Read:**",
"Edit:src/**",
"Edit:tests/**",
"Bash:npm run *",
"Bash:git *"
],
"deny": [
"Edit:.env*",
"Edit:*.secret",
"Edit:credentials/**",
"Bash:rm -rf *",
"Bash:curl * | bash",
"Bash:git push --force*"
]
}
}Quali file dovresti sempre proteggere?
- +File .env e .env.* (chiavi API, credenziali database)
- +Directory credentials/, secrets/ o qualsiasi directory con dati sensibili
- +File di configurazione CI/CD (.github/workflows/, .gitlab-ci.yml)
- +File di infrastruttura (terraform/, docker-compose.prod.yml)
- +Configurazione autenticazione (auth.config.ts, impostazioni OAuth)
Come funziona il sandboxing?
Claude Code usa il sandboxing del filesystem per limitare dove l'agente puo' operare. Di default, puo' accedere solo ai file all'interno della directory del tuo progetto. Puoi restringere ulteriormente con le regole allow/deny.
# Claude Code funziona in una sandbox di default:
# ✅ Puo' leggere/scrivere file nella directory del progetto
# ❌ Non puo' accedere a file fuori dal progetto
# ❌ Non puo' accedere a file di sistema
# ❌ Non puo' accedere alle directory home di altri utenti
# Aggiungi directory extra se necessario:
claude --add-dir /percorso/alla/libreria/condivisaQuali sono le best practice di sicurezza per Claude Code?
- +Proteggi sempre i file .env con regole deny
- +Usa la modalita' Normale quando lavori su codice sensibile per la prima volta
- +Revisiona la diff prima di permettere i commit (la Modalita' Piano e' ottima per questo)
- +Imposta --max-budget-usd per prevenire costi fuori controllo
- +Usa allowed-tools negli Skills per limitare cosa ogni skill puo' fare
- +Verifica i permessi dei tuoi server MCP (usa connessioni database in sola lettura)
- +Non usare mai --dangerously-skip-permissions al di fuori del CI/CD
Il flag --dangerously-skip-permissions disabilita tutti i controlli dei permessi. Usalo solo nelle pipeline CI/CD con input controllati. Non usarlo mai nelle sessioni di sviluppo locale.