Scegli il confine del repository
Usa una destinazione e credenziali separate dal server di produzione. La crittografia lato client può proteggere le copie archiviate, ma la password o la chiave del repository deve essere salvata privatamente. Perderla può rendere inutilizzabili tutti gli snapshot cifrati.
Raccogli dati coerenti
Usa dump nativi del database o una procedura di snapshot supportata dall'applicazione. Esegui il backup della configurazione, delle istruzioni di deployment e dei segreti protetti necessari al recupero. Escludi le cache temporanee solo quando sai che possono essere ricostruite.
Rendi la cancellazione più difficile
Considera una destinazione append-only o immutabile in cui la macchina di origine non possa cancellare ogni copia storica. Mantieni separate, ove possibile, le credenziali di conservazione e di eliminazione. La sola crittografia non impedisce a un server compromesso di eliminare un repository scrivibile.
Pianifica controlli e prove di ripristino
Monitora lo stato di uscita dei job e l'età dell'ultimo backup valido. Esegui i controlli di integrità del repository supportati dallo strumento. Ripristina regolarmente un campione ed esegui una prova completa di ripristino dopo modifiche importanti all'applicazione.
Separa l'aggiunta di una copia dall'eliminazione della cronologia
Una destinazione append-only può consentire al server di produzione di aggiungere snapshot mantenendo l'autorità di cancellazione su una macchina attendibile separata. La conservazione richiede comunque un'attenta revisione: snapshot più recenti contraffatti possono compromettere alcune policy di selezione basate sul calendario. Consulta le indicazioni dello strumento, esegui una prova di conservazione e monitora la capacità. L'operazione forget di Restic seleziona gli snapshot; il pruning rimuove i dati archiviati non referenziati.
- Mantieni le credenziali di manutenzione del repository fuori dalla macchina di produzione
- Esegui una prova di conservazione prima di consentire l'eliminazione
- Usa una nuova destinazione vuota per ogni esercizio di ripristino
restic check
restic snapshots
restic restore latest --target /srv/restore-drillDocumentazione ufficiale: Conservazione e pruning di Restic
Un test di ripristino con una condizione di superamento
Scegli un guasto realistico: un file eliminato, un database perso o una ricostruzione completa della macchina. Ripristina in una directory separata o su un host isolato. Verifica il contenuto dei file, i permessi e la capacità dell'applicazione di utilizzarli. Registra il tempo trascorso e qualsiasi passaggio manuale mancante nel runbook. Un controllo del repository conferma una proprietà diversa da un ripristino funzionante dell'applicazione.
- Non ripristinare sopra l'applicazione in produzione come primo test
- Verifica che le credenziali di cifratura siano recuperabili in modo indipendente
- Avvisa se il backup riuscito più recente supera il tuo obiettivo di ripristino
Crea un manifesto di ripristino prima di scegliere le esclusioni
Elenca gli elementi che non possono essere ricreati reinstallando un pacchetto: contenuto del database, upload, configurazione dell'applicazione, chiavi di firma o cifratura e versioni di distribuzione. Registra il metodo di coerenza accanto a ciascun elemento. Un dump del database appartiene a un punto nel tempo definito; copiare una directory di database in uso può produrre un risultato diverso. Conserva l'accesso al repository, la sua passphrase e qualsiasi esportazione della chiave Borg in una posizione di ripristino privata separata. Verifica che una macchina sostitutiva possa aprire il repository prima di renderla l'unica copia di ripristino.
- Definisci l'obiettivo del punto di recupero: quanto lavoro recente può andare perso. Imposta la pianificazione in base a tale requisito.
- Indica l'obiettivo di tempo di ripristino: quanto può richiedere una ricostruzione. Includi l'importazione del database e le modifiche a DNS nella prova.
- Verifica che un'esclusione pensata per le cache non rimuova anche i caricamenti, i volumi dei container o la configurazione protetta.
- Usa la documentazione per la versione major di Borg installata; i formati dei repository e i comandi non sono intercambiabili tra tutte le versioni.
Documentazione ufficiale: Borg: cifratura, coerenza e ripristino
Verifica i dati memorizzati oltre ai metadati del repository
Il controllo predefinito del repository di Restic e una verifica in lettura svolgono compiti diversi. Pianifica la verifica dei dati tenendo conto del costo in larghezza di banda e in tempo di esecuzione. L'esempio controlla un quinto definito dei file pack; i controlli pianificati successivi devono usare le altre frazioni per coprire il repository. Un sottoinsieme scelto casualmente non offre la stessa garanzia di copertura. Nessuna delle due operazioni dimostra che l'applicazione possa avviarsi con i dati ripristinati.
restic check --read-data-subset=1/5
restic snapshots --host example-host
restic restore latest --host example-host --target /srv/restore-drillDocumentazione ufficiale: restic: controlli del repository e verifica dei dati
Mantieni la manutenzione fuori dalla portata del cliente compromesso
Lo storage append-only di Borg preserva i dati dei segmenti confermati, ma un client può comunque modificare l'elenco visibile degli archivi; il ripristino e la compattazione richiedono la procedura amministrativa documentata. Limita la credenziale di backup remota al comando server di Borg, non a una shell o a un accesso al filesystem senza restrizioni che potrebbe aggirare tali protezioni. Con restic, esamina le indicazioni keep-within per la conservazione append-only. Prima di qualsiasi manutenzione che possa rimuovere la cronologia, ispeziona l'integrità del repository e visualizza in anteprima la selezione da una macchina attendibile.
- Monitora l'età dell'ultima copia riuscita, la crescita del repository, lo spazio della cache e la capacità libera su entrambe le estremità.
- Se un ripristino non riesce, conserva il repository originale e i log prima di tentare riparazioni o pulizie.
- Se il job riesce ma i file attesi sono mancanti, ispeziona il contenuto dell'archivio e i pattern di esclusione prima di modificare la conservazione.
- Concludi l'esercitazione aprendo i file ed eseguendo controlli applicativi in isolamento; tieni le destinazioni di produzione fuori dal comando di ripristino.
Documentazione ufficiale: Borg: operazione e manutenzione in sola aggiunta · restic: considerazioni su conservazione e append-only