Backup del contenitore o dei suoi file? Decidete dalla forma del ripristino
Il backup a livello di immagine e quello a livello di file ripristinano cose diverse e dipendono da chiavi diverse. Allineate l'oggetto archiviato al ripristino che vi serve davvero.
Potete eseguire il backup di un contenitore cifrato come un unico oggetto, oppure montarlo e salvare i file che contiene. Entrambi attraversano la VPN senza problemi, ed è lì che finisce la somiglianza. Ripristinano cose diverse, dipendono da chiavi diverse, occupano quantità diverse di spazio e falliscono in modi diversi quando qualcuno ha bisogno di riavere i dati. Scegliete prima l'oggetto del ripristino, poi il trasporto, poi la cifratura della copia archiviata. La lista qui sotto segue quest'ordine, perché quasi ogni discussione sui backup è in realtà un disaccordo su quale di queste tre decisioni sia stata presa per prima.
Due oggetti, due forme di ripristino
Un backup a livello di immagine ripristina un contenitore: recuperate il volume cifrato e avete ancora bisogno del suo materiale di ripristino per aprirlo. Un backup a livello di file ripristina file e alberi di directory, e la cifratura che li protegge è una proprietà del repository di backup, non del contenitore originale. Una semplice copia in una cartella remota è un terzo caso, ed eredita la protezione che quella cartella ha per caso.
| Object | What a restore gives you | Where the encryption question lands |
|---|---|---|
| Encrypted container image | The volume, still locked | The container format and its recovery key material |
| Mounted files into a backup tool | Selected files and metadata | The backup repositorys own keys and design |
| Plain copy to a remote folder | Whatever the copy process kept | Whatever protects that storage afterwards |
La riga centrale è quella che le persone leggono male. Può essere un progetto del tutto valido: il programma di backup legge il testo in chiaro in locale e scrive un repository cifrato e autenticato. La sua sicurezza poggia allora su quel programma e sulle sue credenziali, non sulla password del contenitore originale, e i due non vanno descritti come se fossero lo stesso controllo.
Verifica 1: che cosa deve ricostruire il ripristino?
Ponete la domanda in forma di ripristino, non di backup. Se il requisito è «riportare questo servizio su un altro host», un'immagine con il suo materiale di ripristino è una risposta coerente. Se il requisito è «recuperare il foglio di calcolo finanziario di marzo», ripristinare un'immagine di diversi gigabyte solo per estrarne un file è un modo costoso di rispondere. Entrambi sono ripristini legittimi e non sono budget intercambiabili. Un piano che ne nomina solo uno verrà prima o poi messo alla prova dall'altro.
Scrivete nel piano l'obiettivo del ripristino: volume intero, albero di directory o singoli file. Poi annotate quali metadati devono viaggiare con loro, perché proprietà, permessi, attributi estesi e timestamp fanno parte di un ripristino a livello di file e spesso si perdono in flussi di lavoro basati sulla copia che durante i test sembravano adeguati.
Decidete anche chi esegue il ripristino. Un repository a livello di file che qualsiasi operatore può montare è un modello di accesso diverso da un'immagine che richiede la presenza del detentore della chiave, e nessuno dei due è automaticamente migliore. L'importante è che la scelta sia deliberata e messa per iscritto.
Verifica 2: che cosa protegge la copia archiviata?
La VPN protegge un segmento di trasporto. Non dice nulla sulla copia archiviata una volta terminato il trasferimento, e «è passato dal tunnel» non è un'affermazione sulla capacità dell'operatore dei backup di leggere i vostri dati. Se il lato remoto è gestito da qualcun altro, la domanda è che cosa possono leggere loro, non se il collegamento fosse cifrato.
Per un'immagine questo significa proteggere il materiale della chiave del contenitore separatamente dall'immagine stessa. Perdere l'intestazione significa perdere il volume, quindi salvate l'intestazione in un posto dove l'immagine non c'è:
cryptsetup luksHeaderBackup /dev/vg0/data --header-backup-file data-header.img
cryptsetup luksDump /dev/vg0/data | head -20
Per un repository a livello di file, verificate che lo strumento cifri e autentichi contenuto e metadati prima che lascino l'host, e scoprite chi detiene le chiavi. La documentazione di progetto di Restic è esplicita nel dire che presuppone un host sorgente fidato e che la cifratura non impedisce a chi ha accesso all'archivio di cancellare i backup. Entrambe le avvertenze contano: un repository può essere riservato e ciononostante essere distrutto.
Verifica 3: la copia è coerente?
Un backup che cattura un filesystem in mutamento è una copia, non un punto di ripristino. Per un'immagine usate il metodo supportato dallo strumento dei volumi per un'istantanea stabile, che di solito significa un'operazione di istantanea o uno smontaggio invece di leggere un file grande mentre cambia:
lvcreate -L 5G -s -n data-snap /dev/vg0/data
cryptsetup open /dev/vg0/data-snap data-snap --readonly
Per i file montati usate la procedura di coerenza supportata dall'applicazione per database attivi e altri dati coordinati. Una copia a livello di filesystem e un punto di ripristino coerente con l'applicazione sono descrizioni diverse, e la differenza diventa visibile solo quando provate ad avviare l'applicazione dalla copia ripristinata.
Tenete il materiale di ripristino su un percorso protetto e indipendente. Perdere la macchina originale non deve mai far perdere anche l'unica credenziale che apre il suo backup, ed è esattamente ciò che accade quando il file della chiave vive sul volume che viene salvato. Testate questa separazione di proposito: ripristinate su un host che non ha mai visto l'originale, usando solo ciò che il piano dichiara disponibile.
Verifica 4: il rilevamento delle modifiche vale per questo oggetto?
Un contenitore cifrato appare alla maggior parte degli strumenti di trasferimento come un unico grande file opaco, quindi una piccola modifica in chiaro può causare una grande rilettura o un caricamento completo, a seconda dello strumento e del formato. La suddivisione in blocchi di dimensione variabile e la deduplicazione, come documenta restic, possono ridurlo, ma è una proprietà di quello strumento e non dei contenitori cifrati in generale.
Misurate invece di supporre. Confrontate una prima esecuzione con una seconda dopo una piccola modifica innocua, e registrate i byte trasferiti e il tempo trascorso. Conservate un backup noto come buono mentre sperimentate, così che un test non consumi il vostro unico punto di ripristino.
Poi chiudete la lista con l'unico test che conta: ripristinare senza la macchina originale. Aprite un contenitore ripristinato, oppure ripristinate file scelti con i loro metadati, e confermate che l'applicazione o l'utente possa usare il risultato. Un trasferimento veloce e ben cifrato che non sa rispondere a questo test è una copia dei vostri dati, non un backup.