Format Atlas

Guide

Dove conservare configurazioni e segreti

Separa le impostazioni ordinarie dalle credenziali e scegli dove conservarle per sviluppo locale, CI e produzione in base a chi deve accedervi.

Quale formato scegliere?

Scegli in base al ruolo di ogni file nel flusso di lavoro.

  • Valori predefiniti condivisi → Versiona esempi senza valori segreti
  • Impostazioni locali di ogni sviluppatore → Usa .env se supportato ed escludilo da Git
  • Credenziali CI → Usa il gestore dei segreti del provider CI e limita gli accessi
  • Produzione e container → Usa la funzione di gestione dei segreti della piattaforma e autorizza solo i servizi necessari
  • Possibile esposizione → Revoca o rinnova la credenziale; eliminare il file non basta

Distingui le impostazioni dai segreti

Tratta in modo diverso le impostazioni non sensibili, come URL dei servizi e flag delle funzionalità, e le credenziali come password, chiavi API e chiavi private. Non inserire credenziali reali nel codice e non eseguire il commit di file che le contengono in un repository condiviso. Verifica prima quali meccanismi di configurazione accetta l'applicazione.

Escludi da Git i file .env locali

Se gli strumenti lo consentono, conserva i valori locali di ogni sviluppatore in un file .env e condividi un .env.example con i soli nomi delle variabili e valori segnaposto. Aggiungi il file .env reale a .gitignore e verifica che Git non lo stia già tracciando. Una regola di esclusione di Git non è un archivio sicuro e non rimuove i valori dalla cronologia esistente.

Usa il gestore dei segreti CI con privilegi minimi

Nei sistemi CI come GitHub Actions, registra le credenziali tramite la funzione di gestione dei segreti del provider, anziché inserirle nei file del workflow. Limita l'accesso ai repository, agli ambienti e ai job che ne hanno bisogno, concedi ai token solo i permessi necessari ed evita di stampare i valori. Il mascheramento dei log non garantisce che ogni valore trasformato o output dei comandi venga nascosto.

Fornisci i segreti dall'ambiente di produzione

In produzione, preferisci il gestore dei segreti del provider di hosting o cloud e limita i deployment e i servizi autorizzati a leggere ciascun valore. Docker Compose può montare i segreti come file nei servizi autorizzati esplicitamente; funzionalità e limiti variano in base alla piattaforma. Consulta la documentazione dell'ambiente effettivamente usato. Se supportate, valuta credenziali di breve durata come OIDC al posto di chiavi valide a lungo.

Revoca o rinnova le credenziali esposte

Se un segreto potrebbe essere comparso in un commit, in un log CI o in una chat, eliminare la copia visibile non basta. Revoca o rinnova prima la chiave o il token interessato, poi esamina i log di accesso e gli eventuali utilizzi. In seguito, intervieni sulla cronologia del repository e sui log secondo necessità e rafforza i controlli di accesso per evitare che accada di nuovo.

Formati da considerare

.env

Adatto per: Caricare valori locali con strumenti che supportano i file .env

Meno adatto per: Condividere o conservare segreti senza protezione

.gitignore

Adatto per: Evitare di aggiungere per errore file .env locali non tracciati

Meno adatto per: Revocare segreti o rimuovere dalla cronologia valori già tracciati da Git

Cosa controllare prima dell’esportazione

  • .env e .gitignore da soli non proteggono i segreti: controlla lo stato di Git, i log CI, i backup e il gestore dei segreti dell'ambiente di esecuzione.
  • Il mascheramento potrebbe non nascondere valori trasformati o tutti gli output dei comandi.
  • Se sospetti una fuga, revoca o rinnova la credenziale invece di limitarti a eliminare il file.

Guide

Riferimenti e specifiche