Vault
HashiCorp
Segredos
Criptografia
IAM
DevOps
Infraestrutura como Código
Políticas de Acesso
Auditing
Kubernetes
Cloud

HashiCorp Vault: gestione sicura dei segreti nelle applicazioni

HashiCorp Vault è la soluzione standard per l'archiviazione, il controllo dell'accesso e l'auditing di segreti, password, token, chiavi SSH e certificati.

HashiCorp Vault: gestione sicura dei segreti nelle applicazioni

HashiCorp Vault è la soluzione standard per l'archiviazione, il controllo dell'accesso e l'auditing di segreti, password, token, chiavi SSH e certificati. Nel 2025, Vault si integrerà con pipeline CI/CD, cluster Kubernetes e piattaforme serverless, offrendo un modello di sicurezza incentrato sulle policy. Per coloro che guidano l'infrastruttura, la decisione di adottarla è, in sostanza, la decisione di prendere credenziali da file di configurazione e variabili ambientali sparsi e metterli sotto un unico regime di controllo e audit.

Perché utilizzare Vault?

Cinque proprietà supportano il caso di adozione. La centralizzazione stabilisce un unico punto di verità per tutti i segreti, eliminando le copie sparse. crittografia a riposo e in transito, con chiavi gestite da Vault stesso, garantisce che i dati rimangano inutilizzabili al di fuori del contesto autorizzato. Politiche di accesso granulari controllano chi accede a cosa, attraverso quale percorso e per quanto tempo. Rotazione automatica genera credenziali temporanee per banche, cloud e servizi, accorciando la finestra di esposizione per qualsiasi credenziale. E l’audit completo registra ogni lettura e scrittura con data, ora e identità, condizione essenziale per indagare sugli incidenti e dimostrare la conformità.

Architettura tipica

Una tipica implementazione è organizzata in quattro elementi. Il server Vault funziona in modalità ad alta disponibilità, supportato da storage integrato o Consul, in modo che l'indisponibilità del gestore segreto non blocchi mai le applicazioni che dipendono da esso. I metodi autenticazione definiscono il modo in cui ogni client dimostra chi è, AppRole per le applicazioni, autenticazione Kubernetes nativa per carichi in cluster, nonché opzioni come GitHub e TLS. I motori dei segreti determinano il modo in cui i segreti vengono archiviati o generati: il motore chiave-valore per i segreti statici e i motori dinamici per database, AWS, SSH e PKI. E le politiche, scritte in HCL, vengono applicate a token o entità, traducendo il principio del privilegio minimo in regole concrete.

Il flusso generale è il seguente: un'applicazione esegue l'autenticazione nel Vault (ad esempio tramite AppRole) e riceve un token a breve termine; Con questo token leggi i segreti che ti spettano, credenziali bancarie, chiavi cloud, sempre nei limiti della tua policy. I carichi in esecuzione su Kubernetes autenticano utilizzando il metodo nativo del cluster. Ogni interazione genera un record di audit, che può essere inoltrato a un SIEM per la correlazione. Invece di credenziali codificate, le applicazioni ora le ottengono su richiesta, con una data di scadenza e tracciabilità.

Configurazione del deposito

In un ambiente di test, Vault può essere eseguito in modalità di sviluppo, che viene eseguito su un server temporaneo con un token root già disponibile e il motore chiave-valore pronto all'uso, utile per la sperimentazione rapida, mai per la produzione. In produzione, l'inizializzazione viene eseguita deliberatamente, con il processo init dell'operatore che genera le chiavi unseal e il token root iniziale e con l'archiviazione configurata in modalità ad alta disponibilità. La differenza tra le due modalità è essenzialmente la differenza tra comodità e sicurezza reale.

Autenticazione tramite AppRole

AppRole è il metodo consigliato per autenticare le applicazioni. L'idea è quella di creare un ruolo associato a una policy e limiti di validità, durata del token, tempo massimo, validità dell'identificatore segreto. L'applicazione riceve due fattori: un RoleID, che identifica il ruolo, e un SecretID, generato dinamicamente, che funziona come credenziale di utilizzo. Con questa coppia l'applicazione ottiene un token a breve termine per funzionare. La separazione tra i due fattori consente la loro distribuzione attraverso canali diversi, riducendo il rischio di compromissione simultanea.

Segreti di lettura

Una volta autenticata, l'applicazione punta all'indirizzo del server del Vault e legge il segreto nel percorso a cui ha accesso, ricevendo, ad esempio, il set di chiavi di configurazione memorizzate per quel servizio. La semplicità della lettura è voluta: la complessità è concentrata nella politica e nell'autenticazione, non nel consumo dei segreti.

Integrazione con Kubernetes

In Kubernetes, il modello più utilizzato è Vault Agent Injector, che inserisce segreti come contenitori sidecar. La configurazione viene eseguita tramite note nel manifest del pod, specificando che l'iniezione è abilitata, quale ruolo utilizzare e quali segreti montare. L'iniettore crea, all'interno del pod, file temporanei con i secret richiesti, che l'applicazione legge come se fossero file locali. Lo sviluppatore non ha bisogno di incorporare la logica di autenticazione nel codice dell'applicazione, la piattaforma se ne occupa in modo trasparente.

Politiche di accesso

Le policy sono il cuore del modello di sicurezza di Vault. Scritti in HCL, garantiscono abilità specifiche a percorsi specifici. Una policy ben progettata per un'applicazione garantisce, ad esempio, solo l'accesso in sola lettura ai segreti dell'app e la possibilità di interrogare il token stesso, niente di più. Questo rigore è la traduzione pratica del privilegio minimo: ogni identità vede solo ciò che è strettamente necessario alla sua funzione, e ogni tentativo di accesso al di fuori di questo ambito viene negato e registrato.

Rotazione automatica delle credenziali del database

Una delle funzionalità più preziose di Vault è la generazione di credenziali bancarie su richiesta e di breve validità. Si configura il collegamento con la banca e si definisce un ruolo che descrive come creare utenti temporanei, con durata standard e massima. Quando un'applicazione richiede l'accesso, Vault crea un utente nella banca valido per quel periodo e lo scarta alla scadenza. Il risultato è che non circolano più credenziali bancarie statiche, ogni accesso utilizza una credenziale effimera, il che riduce drasticamente l’impatto di un’eventuale fuga di dati.

Controllo e registrazione

Il controllo è abilitato tramite un dispositivo di controllo, che può registrare su un file o inviare a syslog. Ogni record contiene l'identificativo della richiesta, i dati di autenticazione, il percorso effettuato ed eventuali errori. Questi registri costituiscono la base per indagare sugli incidenti e dimostrare la conformità; senza un audit affidabile, il controllo degli accessi diventa una promessa non verificabile.

Buone pratiche di sicurezza

Cinque pratiche supportano il funzionamento sicuro di Vault. Il primo è richiedere un TLS reciproco tra client e server, garantendo l'autenticità su entrambe le estremità. Il secondo è separare gli spazi dei nomi per ambiente, isolando lo sviluppo dalla produzione. Il terzo è applicare privilegi minimi a tutte le politiche, senza eccezioni di convenienza. Il quarto è ruotare periodicamente il token root, trattandolo come una credenziale ad altissimo rischio. E il quinto è mantenere backup coerenti dell'archivio in modo che la perdita del gestore segreto non diventi un incidente catastrofico.

Elenco di controllo per la distribuzione

Una distribuzione ben condotta segue solitamente questo ordine: installare Vault in modalità ad alta disponibilità; configurare TLS e certificati; abilitare i metodi di autenticazione necessari (AppRole, Kubernetes); creare i motori segreti (valore-chiave, database, AWS); definire politiche di accesso granulari; attivare il dispositivo di audit; testare la rotazione automatica delle credenziali; documentare il flusso di acquisizione del token; e integrare Vault nella pipeline CI/CD.

Conclusione

HashiCorp Vault fornisce una solida struttura per la gestione dei segreti, riducendo la superficie di attacco e facilitando la conformità. Adottando un'autenticazione forte, politiche di privilegio minimo e un controllo completo, un'organizzazione protegge le credenziali critiche e automatizza la rotazione dei segreti negli ambienti moderni, trasformando la gestione dei segreti da punto cieco a controllo verificabile.


Utilizzi già Vault nel tuo stack? Condividi i tuoi suggerimenti e le tue sfide nei commenti!

Leggi anche