Home
» LINUX
»
Come archiviare dati sensibili su Linux con Vault
Come archiviare dati sensibili su Linux con Vault
HashiCorp Vault memorizza segreti statici in un motore di segreti chiave/valore (KV) e consente agli utenti autorizzati di recuperarli tramite la sua interfaccia utente web o la riga di comando. Questa guida illustra il flusso di lavoro su una macchina Linux locale. Utilizza il motore di segreti KV v2 e la modalità di sviluppo di Vault, che è intenzionalmente insicura, mantiene i dati solo in memoria e li elimina quando viene arrestata. Utilizzare un valore segnaposto; non inserire una password reale, una chiave API o una credenziale privata. Per i dati sensibili persistenti, distribuire Vault in modalità non di sviluppo con storage durevole e controlli di accesso appropriati.
Installare Vault su Debian o Ubuntu
Utilizza il repository ufficiale dei pacchetti di HashiCorp anziché un vecchio link di download con versione bloccata. I comandi seguenti aggiungono la chiave di firma e il repository apt, quindi installano Vault. Se utilizzi RHEL, Fedora o Amazon Linux, segui le istruzioni di installazione corrispondenti sulla pagina ufficiale di installazione di Vault .
Verifica che la CLI sia presente nel tuo percorso:
vault --version
Avvia un server dimostrativo locale
Mantieni questo processo in una finestra del terminale mentre segui il tutorial. Associalo all'indirizzo di loopback in modo che sia raggiungibile solo dal tuo computer:
vault server -dev -dev-listen-address=127.0.0.1:8200
Vault inizializza e sblocca automaticamente questo server di sviluppo. L'output di avvio include un token root; ne avrai bisogno per accedere all'interfaccia utente. Questo token ha ampi privilegi amministrativi, quindi conservalo sulla macchina locale e non condividerlo mai. La modalità di sviluppo utilizza inoltre impostazioni predefinite non sicure e archiviazione in memoria. HashiCorp dichiara esplicitamente che è destinata alla sperimentazione, non alla produzione. L'interfaccia utente è disponibile all'indirizzo http://127.0.0.1:8200/ui. La demo utilizza HTTP semplice sulla porta di loopback; non esporre mai questa porta a una rete.
Per un esempio ripetibile, crea un mount KV v2 separato chiamato linux-kv. In un secondo terminale, imposta l'indirizzo del server e abilita il mount una sola volta mentre questa demo è attiva:
Questo evita di dipendere dal nome di montaggio predefinito, che può variare tra le diverse configurazioni di esempio. Un segreto di versione di montaggio KV v2 viene scritto. La documentazione di configurazione di KV v2 di Vault descrive il comando di montaggio e il flusso di lavoro dell'interfaccia utente.
Salva un segreto di prova nell'interfaccia web di Vault.
Apri http://127.0.0.1:8200/uiil browser. Inserisci il token root visualizzato nel terminale del server ed effettua l'accesso. L'interfaccia utente di Vault è abilitata di default in modalità di sviluppo; consulta la documentazione ufficiale dell'interfaccia utente .
Seleziona Segreti , apri il linux-kv/mount e scegli l'opzione per creare un segreto. La pagina dei motori dovrebbe identificare questo mount come Chiave/Valore versione 2.
Per il percorso segreto, inserisci linux-demo. Nei campi chiave/valore, inserisci api_keycome chiave e test-valuecome valore. Fai clic su Salva . Queste sono stringhe di esempio, non credenziali.
Il mount e il percorso insieme identificano questo record come linux-kv/linux-demo. Utilizzare nomi di percorso e chiave neutri: i nomi possono apparire negli elenchi o nei metadati, quindi non inserire password o altre informazioni sensibili al loro interno. Per i normali record chiave/valore riutilizzabili, utilizzare KV. Il motore Cubbyhole di Vault è limitato a un singolo token e viene distrutto quando tale token scade.
Scrivi e recupera il segreto tramite la CLI
Il server di sviluppo autentica automaticamente la CLI di Vault locale. In un altro terminale, se necessario, imposta il suo indirizzo, quindi utilizza la sintassi di montaggio esplicita riportata di seguito:
export VAULT_ADDR='http://127.0.0.1:8200'
vault kv put -mount=linux-kv linux-demo api_key=test-value
vault kv get -mount=linux-kv linux-demo
Il getcomando stampa il valore, motivo per cui l'esempio utilizza solo un segnaposto. Una chiave primaria v2 putscrive una nuova versione e sostituisce i dati correnti del segreto; includi tutti i campi che desideri conservare. Evita di inserire le credenziali reali direttamente nei comandi della shell, dove potrebbero rimanere nella cronologia della shell o essere visibili all'ispezione dei processi locali. Utilizza un'identità non root e una policy ACL con ambito ristretto per gli utenti o le applicazioni reali.
Interrompi la demo e prepara Vault per i dati reali.
Torna al terminale che esegue il server e premi Ctrl+C . La demo si arresta e i suoi segreti e token in memoria vengono persi. Riavviandola, viene creata una nuova istanza; i dati precedenti non vengono ripristinati.
Per custodire informazioni riservate, è consigliabile configurare un server Vault non di sviluppo con un backend di archiviazione durevole. HashiCorp raccomanda Integrated Storage per molte implementazioni autogestite; la documentazione Raft ne illustra le funzionalità di persistenza e di backup/ripristino. Il backend basato su filesystem è un'altra opzione supportata per un utilizzo durevole su un singolo server, ma non garantisce l'alta disponibilità.
Un'implementazione reale richiede anche TLS per le connessioni client, autenticazione in produzione, politiche di minimo privilegio, inizializzazione e decrittografia protette, accesso limitato al filesystem e backup testati. Vault crittografa i dati archiviati a riposo, ma il server, i suoi token e i suoi backup necessitano comunque di protezione. Segui le avvertenze di HashiCorp per la modalità di sviluppo e le linee guida per l'implementazione in produzione prima di archiviare credenziali da cui dipendi.