Crittografa i metadati di AppVault per snapshot e backup di Trident Protect
Puoi crittografare i metadati di snapshot e backup che Trident Protect memorizza in un AppVault, incluse le informazioni sensibili nei Kubernetes Secrets. Puoi anche modificare la password che protegge i dati crittografati. Una singola modifica della password crittografa nuovamente la chiave di crittografia dei metadati e sposta ogni repository Kopia e ogni repository Restic nell'AppVault alla nuova password.
La crittografia è disabilitata per impostazione predefinita. Quando la abiliti, Trident Protect crittografa i nuovi metadati di snapshot e backup prima di archiviarli in AppVault. Questo protegge le risorse dell'applicazione, incluse le informazioni sensibili in Secrets, a meno che tu non escluda esplicitamente tali risorse dallo snapshot o dal backup dell'applicazione.
Una password del vault protegge la chiave che crittografa i dati. Tieni presente il seguente comportamento:
-
Quando modifichi la password del vault, Trident Protect protegge la stessa chiave con la nuova password. Non sovrascrive i dati già crittografati.
-
I dati memorizzati prima di attivare la crittografia rimangono leggibili.
-
I dati crittografati rimangono leggibili, anche se in seguito disattivi la crittografia per i nuovi dati.
Quando attivi la crittografia, Trident Protect utilizza una password predefinita non sicura a meno che non specifichi una password personalizzata. Per ogni AppVault, crea una password del vault personalizzata e fai riferimento a essa in spec.vaultPasswordSecretRef.
Se hai abilitato la crittografia con la password predefinita e in seguito hai aggiunto una password personalizzata, devi ruotare la password in modo che i dati e i repository esistenti passino alla password personalizzata. Vedi Ruota la password del vault.
Utilizza una password personalizzata univoca per ciascun AppVault. Ruota la password di un solo AppVault alla volta e verifica che la rotazione sia completata prima di iniziare un'altra modifica della password.
Assicurati di avere quanto segue:
-
Accesso allo
trident-protectspazio dei nomi. -
Autorizzazione a creare Secrets di Kubernetes e applicare patch alle risorse personalizzate (CR) di AppVault.
-
È prevista una password segreta separata per ciascun AppVault.
Abilita la crittografia dei metadati
Abiliti la crittografia dei metadati impostando un valore Helm per Trident Protect.
-
Imposta
resourceBackupEncryptionEnabledsutrueusando unvalues.yamlfile:-
Aggiungi quanto segue al tuo
values.yamlfile:resourceBackupEncryptionEnabled: true -
Applica il file:
helm upgrade trident-protect -n trident-protect netapp-trident-protect/trident-protect -f values.yaml --reuse-values
-
-
In alternativa, imposta
resourceBackupEncryptionEnabledsutrueusando il flag Helm--set:helm upgrade trident-protect -n trident-protect netapp-trident-protect/trident-protect \ --set resourceBackupEncryptionEnabled=true \ --reuse-values
Trident Protect crittografa i nuovi metadati di snapshot e backup.
Crea una password del vault personalizzata per ogni AppVault. Finché non lo fai, Trident Protect usa la password predefinita non sicura.
Crea una password personalizzata per il vault
Per usare la tua password, crea un Kubernetes Secret che contenga la password, quindi fai riferimento al Secret nell'AppVault.
Se configuri la password personalizzata quando crei AppVault, prima che vengano memorizzati dati, AppVault utilizza immediatamente la password personalizzata. Non devi ruotare la password.
Se AppVault contiene già repository Kopia o Restic, l'aggiunta di una nuova password non modifica la password di tali repository. Non usare i passaggi in questa sezione. Segui invece i passaggi in Ruota la password del vault.
Il VAULT_PASSWORD valore deve soddisfare i seguenti requisiti:
-
Non deve essere vuoto
-
Deve essere più breve di 64 KiB
-
Non deve contenere il carattere NUL
-
Non deve contenere un'interruzione di riga
-
Non deve iniziare o terminare con uno spazio o altro carattere vuoto
La password può contenere altri caratteri, inclusi caratteri non ASCII.
-
Crea un Secret nello stesso namespace di AppVault. Il Secret deve contenere una chiave denominata
VAULT_PASSWORD:kubectl -n trident-protect create secret generic vault-password \ --from-literal=VAULT_PASSWORD='<password>'Se AppVault segnala che la password non è valida, verifica il VAULT_PASSWORDvalore rispetto ai requisiti sopra indicati. Le cause più comuni sono un valore vuoto, un carattere di fine riga finale o spazi all'inizio o alla fine della password. -
Fai riferimento al segreto nel campo
spec.vaultPasswordSecretRefdella CR AppVault:apiVersion: protect.trident.netapp.io/v1 kind: AppVault metadata: name: my-vault namespace: trident-protect spec: vaultPasswordSecretRef: vault-password providerType: <provider-type> providerConfig: <provider-configuration>Se
spec.vaultPasswordSecretRefè vuoto, AppVault usa la password predefinita non sicura.
AppVault utilizza la tua password personalizzata per proteggere la chiave di crittografia dei metadati.
Ruota la password del vault
Puoi ruotare la password per un AppVault che archivia già dati. Una rotazione crittografa di nuovo la chiave di crittografia dei metadati e sposta ogni repository Kopia e ogni repository Restic nel AppVault alla nuova password.
Durante la rotazione, Trident Protect esegue le seguenti operazioni:
-
Attende il completamento dei processi di backup e ripristino in esecuzione per AppVault prima di avviarsi.
-
Protegge la chiave di crittografia dei metadati (
metadata-key.json) con la nuova password. Non riscrive gli oggetti dell'archivio. -
Trova ogni repository Kopia e ogni repository Restic con il prefisso AppVault e ne cambia la password con la nuova password. I repository che si aprono già con la nuova password non vengono modificati.
-
Salta i repository che un processo di backup o ripristino sta ancora utilizzando e li riprova più tardi.
-
Sospende le pianificazioni abilitate che fanno riferimento a AppVault. Per ogni pianificazione, Trident Protect imposta
spec.enabledsufalsee aggiunge la seguente annotazione:protect.trident.netapp.io/vault-password-rotation-suspended: <namespace>/<appvault-name>
Al termine della rotazione, Trident Protect riattiva solo le pianificazioni che presentano questa annotazione. In caso di errore durante la rotazione, questa riprende dal punto in cui si era interrotta. I repository che utilizzano già la nuova password non vengono modificati nuovamente.
Assicurati di avere quanto segue:
-
Una nuova password che soddisfi requisiti della password del vault.
-
Nessun altro AppVault sta ruotando la propria password. Se più AppVaults condividono lo stesso bucket e prefisso, solo uno di essi può ruotare la password. Consulta Gestisci la rotazione per AppVaults che condividono un bucket.
-
Crea un nuovo Secret con un nome diverso da quello del Secret attuale:
kubectl -n trident-protect create secret generic vault-password-new \ --from-literal=VAULT_PASSWORD='<new-password>'Non modificare o eliminare il Secret corrente prima del completamento della rotazione. Trident Protect necessita della password corrente per accedere ai dati esistenti finché tutti i repository non utilizzano la nuova password. Se elimini il Secret corrente troppo presto, ricrealo con lo stesso nome e il valore originale VAULT_PASSWORD. -
Abilita la rotazione e imposta AppVault in modo che utilizzi il nuovo Secret. Sostituisci
my-vaultcon il nome del tuo AppVault:kubectl -n trident-protect patch appvault my-vault --type merge --patch ' spec: enableRotation: true vaultPasswordSecretRef: vault-password-new 'Devi impostare spec.enableRotationsutrueprima di cambiare la password. Se èfalse, AppVault segnala che la rotazione è disabilitata e non cambia la password. -
Monitora la rotazione seguendo i passaggi descritti in Monitora la rotazione delle password.
-
Al termine della rotazione, elimina il Secret precedente se nessun altro lo utilizza.
La chiave di crittografia dei metadati e ogni repository Kopia e Restic nell'AppVault sono protetti dalla nuova password e le pianificazioni che Trident Protect aveva sospeso sono di nuovo abilitate.
Monitora la rotazione delle password
Puoi verificare l'avanzamento della rotazione delle password e confermare che è completa.
-
Visualizza AppVault:
kubectl -n trident-protect get appvault my-vault --output yaml -
Nell'output, controlla la
status.vaultPasswordRotationsezione. Durante la rotazione, ha questo aspetto:status: vaultPasswordRotation: state: Rotating rotated: 3 pending: 1 message: <message>Questa tabella descrive i campi:
Campo Descrizione status.vaultPasswordRotation.state
Stato di rotazione attuale.
stato.vaultPasswordRotation.ruotato
Numero di repository che ora utilizzano la nuova password.
stato.vaultPasswordRotation.in sospeso
Numero di repository ignorati perché in uso da un backup o da un ripristino.
stato.vaultPasswordRotation.messaggio
Ultimo messaggio di avanzamento o di errore.
La rotazione è completa quando sono vere tutte le seguenti condizioni:
-
status.vaultPasswordRotationnon è presente. -
status.previousRepositoryPasswordSecretRefè vuoto. -
status.repositoryPasswordSecretRef`corrispondenze `spec.vaultPasswordSecretRef.
Se la rotazione non termina, controlla quanto segue:
-
La rotazione non si avvia:
spec.enableRotationpotrebbe esserefalse. Impostalo sutruee poi impostaspec.vaultPasswordSecretRefsul nuovo Secret. -
I repository rimangono in sospeso: i processi di backup o ripristino li stanno ancora utilizzando. Attendi il completamento dei processi. Trident Protect riprova automaticamente i repository in sospeso.
-
La rotazione non si avvia perché un altro AppVault possiede il lock: fai riferimento a Gestisci la rotazione per AppVaults che condividono un bucket.
-
Il campo messaggio segnala un errore: Risolvi il problema descritto nel messaggio. La rotazione riprende da dove si era interrotta.
Migra da dataMoverPasswordSecretRef
Se un AppVault esistente utilizza il campo spec.dataMoverPasswordSecretRef precedente, puoi spostarlo in spec.vaultPasswordSecretRef.
Trident Protect mantiene spec.dataMoverPasswordSecretRef per la retrocompatibilità. Usa spec.vaultPasswordSecretRef per i nuovi AppVaults.
-
Mantieni
spec.dataMoverPasswordSecretRefe il relativo Secret in posizione. -
Ruota la password in un nuovo Secret utilizzando
spec.vaultPasswordSecretRef. Segui i passaggi in Ruota la password del vault. -
Al termine della rotazione, rimuovi
spec.dataMoverPasswordSecretRefda AppVault. -
Elimina il vecchio Secret se nient'altro lo usa.
Gestisci la rotazione per AppVaults che condividono un bucket
Se diversi AppVaults utilizzano lo stesso bucket e prefisso, solo uno di essi può ruotare la password.
La rotazione delle password utilizza un file di blocco denominato password-rotation.lock. Il blocco registra l'UID di AppVault autorizzato a ruotare la password per il bucket e il prefisso. Se un secondo AppVault ha spec.enableRotation: true e il blocco indica un AppVault diverso, il secondo AppVault non può eseguire la rotazione.
-
Su AppVault che possiede il blocco, cancella
spec.enableRotation:kubectl -n trident-protect patch appvault <current-owner> --type merge --patch ' spec: enableRotation: false ' -
Attendi che il blocco venga rimosso.
-
Sullo AppVault che dovrebbe ruotare successivamente, imposta
spec.enableRotationsutrue:kubectl -n trident-protect patch appvault <new-owner> --type merge --patch ' spec: enableRotation: true '
Segui questi passaggi se AppVault, che possiede il blocco, non esiste più e il blocco non è stato rimosso, ad esempio dopo un arresto anomalo.
-
Elimina il
password-rotation.lockfile dal prefisso AppVault nel tuo bucket. -
Su AppVault che dovrebbe ruotare, imposta
spec.enableRotationsutrue:kubectl -n trident-protect patch appvault <appvault-name> --type merge --patch ' spec: enableRotation: true '