Questo documento descrive come utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud Key Management Service (Cloud KMS) per i cluster in Memorystore for Redis Cluster. Il documento descrive anche quali dati vengono criptati nello spazio di archiviazione permanente e come si comportano i cluster durante gli eventi chiave del ciclo di vita.
CMEK ti consente di controllare le chiavi crittografiche che proteggono i dati archiviati. Gestendo le tue chiavi in Cloud KMS, ottieni un maggiore controllo su accesso, rotazione e utilizzo delle chiavi, il che ti aiuta a soddisfare requisiti normativi e di conformità rigorosi.
L'implementazione di CMEK fornisce un ulteriore livello di sicurezza e controllo sui tuoi dati permanenti, come backup e file di persistenza. Puoi abilitare CMEK solo sui nuovi cluster. Non puoi applicare CMEK ai cluster esistenti.
Chi dovrebbe utilizzare CMEK?
Le chiavi CMEK sono destinate alle organizzazioni che dispongono di dati sensibili o regolamentati e richiedono il controllo delle proprie chiavi di crittografia. Per saperne di più sull'utilizzo di CMEK per criptare questi dati, consulta Decidere se utilizzare CMEK.
Crittografia gestita dal cliente
La funzionalità CMEK ti consente di utilizzare le tue chiavi di crittografia per proteggere i dati archiviati nei cluster. Per criptare questi dati, Memorystore for Redis Cluster utilizza chiavi di crittografia dei dati (DEK) gestite da Google e chiavi di crittografia della chiave (KEK) gestite dal cliente.
Puoi avere i seguenti livelli di crittografia:
- Crittografia DEK: le DEK criptano i dati in Memorystore for Redis Cluster.
- Crittografia KEK: le KEK criptano le DEK.
Memorystore for Redis Cluster utilizza le KEK per criptare le DEK e le DEK per criptare i dati archiviati. Se utilizzi CMEK, puoi gestire le KEK che criptano le DEK nel tuo cluster.
Il seguente diagramma mostra come un cluster utilizza CMEK per criptare i dati. I dati caricati nell'infrastruttura di archiviazione di Google vengono suddivisi in blocchi e ogni blocco viene criptato con una propria DEK. Cloud KMS fornisce la KEK per criptare le DEK e l'infrastruttura di archiviazione di Google distribuisce sia i blocchi di dati criptati sia le DEK criptate nel sistema.

Il seguente diagramma mostra come Memorystore for Redis Cluster decripta i dati criptati con CMEK. Per accedere a questi dati criptati, Memorystore for Redis Cluster invia una richiesta a Cloud KMS, che gestisce la KEK, per decriptare la DEK. Cloud KMS restituisce quindi la DEK decriptata, che il cluster utilizza per decriptare i dati archiviati.

Quali dati vengono criptati utilizzando CMEK?
CMEK cripta i seguenti tipi di dati dei clienti archiviati in uno spazio di archiviazione permanente:
- Backup: i backup consentono di recuperare i dati a un momento specifico, nonché di esportarli e analizzarli. I backup sono utili anche per scenari di ripristino di emergenza, migrazione dei dati, condivisione dei dati e conformità.
- Persistenza:
Memorystore for Redis Cluster supporta due tipi di persistenza:
- Persistenza RDB:la funzionalità del database Redis (RDB) protegge i tuoi dati salvando snapshot dei dati in uno spazio di archiviazione durevole.
- Persistenza AOF:questa funzionalità dà la priorità alla durabilità dei dati. Memorizza i dati in modo duraturo registrando ogni comando di scrittura in un file di log chiamato Append-Only File (AOF). Se si verifica un errore o un riavvio del sistema, il server riproduce i comandi del file AOF in sequenza per ripristinare i dati.
- Metadati relativi a funzionalità di sicurezza come l'autenticazione di base basata su token e la crittografia in transito. Per saperne di più, consulta Accedere in modo sicuro ai tuoi cluster utilizzando l'autenticazione di base basata su token e Informazioni sulla crittografia in transito.
Componenti CMEK
Le sezioni seguenti descrivono i requisiti e i comportamenti degli account di servizio, delle chiavi di crittografia, delle versioni delle chiavi e delle policy dell'organizzazione che compongono l'architettura CMEK.
Service account
Per creare un cluster abilitato a CMEK, devi concedere il ruolo
roles/cloudkms.cryptoKeyEncrypterDecrypter all'account di servizio Memorystore for Redis Cluster
che utilizza il seguente formato:
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
La concessione di questa autorizzazione consente al account di servizio di richiedere l'accesso alla chiave da Cloud KMS.
Chiavi
In Cloud KMS, devi creare un keyring e poi una chiave di crittografia che utilizzi un algoritmo di crittografia simmetrica. Quando crei un cluster, selezioni questa chiave per criptarlo. Puoi creare un progetto sia per le chiavi che per i cluster oppure progetti diversi per ciascuno.
La chiave di crittografia gestita dal cliente è disponibile in tutte le località dei cluster. Devi creare il portachiavi e la chiave nella stessa regione in cui vuoi creare il cluster. Per un cluster multiregionale, devi impostare il keyring e la chiave nella stessa località del cluster. Se le regioni o le località non corrispondono, una richiesta di creazione del cluster non va a buon fine.
Per l'ID risorsa della chiave, CMEK utilizza il seguente formato:
projects/CMEK_ENABLED_PROJECT/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Per saperne di più su come trovare gli ID risorsa delle chiavi esistenti, consulta Recupero di un ID risorsa di Cloud KMS.
Chiavi esterne
Nell'ambito della tua strategia CMEK, puoi utilizzare chiavi esterne. Per farlo, utilizza Cloud External Key Manager (Cloud EKM) per criptare i dati all'interno di Google Cloud utilizzando chiavi esterne che gestisci.
Quando utilizzi una chiave Cloud EKM, Google non ha alcun controllo sulla disponibilità delle chiavi gestite esternamente. Se una chiave non è disponibile quando crei il cluster, Memorystore for Redis Cluster non lo crea. Inoltre, se la chiave esterna non è più disponibile in qualsiasi momento dopo la creazione del cluster, Memorystore for Redis Cluster disattiva i backup e la persistenza, ma le normali operazioni di memorizzazione nella cache in memoria continuano a gestire il traffico.
Per ulteriori considerazioni sull'utilizzo di chiavi esterne, vedi Considerazioni.
Versioni delle chiavi
Cloud KMS archivia il materiale della chiave di crittografia che utilizzi per criptare e decriptare i dati in una versione della chiave. Una singola chiave può contenere più versioni. Ogni volta che ruoti una chiave, crei una versione della chiave.
Le sezioni seguenti descrivono il comportamento dei cluster e dei relativi dati protetti durante gli eventi del ciclo di vita delle chiavi, come disattivazione, eliminazione, rotazione, attivazione o ripristino delle versioni delle chiavi. Le sezioni spiegano anche l'impatto della revoca dell'accesso a una chiave Cloud KMS o della sua sostituzione e forniscono indicazioni sulla ricrittografia manuale dei dati.
Disattivazione o eliminazione della versione di una chiave CMEK
Potresti trovarti in situazioni in cui vuoi rendere inaccessibili in modo permanente i dati criptati con CMEK, ad esempio quando stai correggendo una perdita di dati. Per ottenere questa eliminazione dei dati ad alta affidabilità (nota anche come eliminazione della crittografia), elimina la versione della chiave. Per ulteriori informazioni sull'eliminazione delle versioni delle chiavi, consulta Eliminare e ripristinare le versioni delle chiavi.
Se disabiliti o elimini la versione della chiave primaria, ai backup e alla persistenza si applicano le seguenti condizioni.
Backup
Quando elimini la versione della chiave primaria, ai backup del cluster si applicano le seguenti limitazioni:
- Non puoi creare backup on demand o automatici. Tuttavia, se abiliti una versione precedente della chiave, puoi accedere a tutti i backup creati utilizzando questa versione della chiave.
- Non puoi aggiornare o riattivare i backup automatici finché non abiliti o ripristini la versione della chiave primaria. Per maggiori informazioni, consulta Attivare o ripristinare la versione della chiave CMEK primaria.
Persistenza
Quando distruggi la versione della chiave primaria, si applicano le seguenti limitazioni alla persistenza per il tuo cluster:
- Se configuri il cluster per utilizzare la persistenza, Memorystore for Redis Cluster disattiva la persistenza quando la versione della chiave non è più disponibile. Non ti viene più addebitato l'utilizzo della persistenza.
- Memorystore for Redis Cluster non scarica i nuovi dati nell'archiviazione permanente utilizzando la chiave di crittografia gestita dal cliente (CMEK).
- Memorystore for Redis Cluster non può leggere i dati esistenti presenti nell'archiviazione permanente.
- Non puoi aggiornare o riattivare la persistenza finché non abiliti o ripristini la versione della chiave primaria.
Se abiliti la versione della chiave primaria, ma disabiliti o elimini una versione precedente della chiave, si applicano le seguenti condizioni a backup e persistenza:
- Puoi creare backup. Tuttavia, se un backup è criptato con una versione precedente della chiave disabilitata o eliminata, il backup rimane inaccessibile.
- Se abiliti la persistenza, questa rimane abilitata. Se la versione precedente della chiave utilizzata nella persistenza viene disabilitata o eliminata, Memorystore for Redis Cluster esegue un aggiornamento simile a quello utilizzato nella manutenzione e cripta nuovamente i dati con la versione della chiave primaria.
Revoca dell'accesso a una chiave Cloud KMS
Se revochi l'accesso a una chiave Cloud KMS attiva disattivando la chiave o rimuovendo le autorizzazioni IAM per la chiave, Memorystore for Redis Cluster dà la priorità alla disponibilità della cache primaria. Le normali operazioni di memorizzazione nella cache in memoria continuano a gestire il traffico.
Tuttavia, i backup e la persistenza sono disattivati. Memorystore for Redis Cluster interrompe immediatamente la scrittura di nuovi dati sul disco e non legge i dati dal disco criptato dal cliente in memoria.
Rotazione della versione della chiave CMEK primaria
Se ruoti la versione della chiave primaria e ne crei una nuova, si applicano le seguenti condizioni a backup e persistenza:
- L'ultima versione della chiave primaria di CMEK cripta i nuovi backup.
- Per i backup esistenti, non viene eseguita alcuna ri-crittografia.
- Per la persistenza, i nodi non eseguono alcuna azione. I nodi continuano a utilizzare la versione precedente della chiave fino al successivo evento di manutenzione.
Ricrittografare manualmente i dati protetti da CMEK
Memorystore for Redis Cluster non supporta la ri-crittografia on demand dei dati archiviati. Non puoi attivare manualmente un processo per utilizzare una nuova versione della chiave per criptare nuovamente i backup esistenti o i file di persistenza attivi. Tuttavia, puoi utilizzare la nuova versione della chiave per criptare i dati appena scritti.
Se ruoti una chiave e devi forzare un cluster a utilizzare la nuova versione della chiave, si applicano le seguenti condizioni ai backup e alla persistenza:
Backup
Non puoi crittografare nuovamente i backup esistenti. Se la conformità richiede che tutti i dati vengano criptati con la chiave più recente, crea un backup che utilizzi questa chiave, quindi elimina manualmente i backup esistenti. Puoi anche esportare questo backup in un bucket Cloud Storage in modo che venga utilizzata la chiave di crittografia di Cloud Storage.
Persistenza
Per forzare il cluster a utilizzare una nuova chiave Cloud KMS, puoi eseguire una manutenzione simulata sul cluster. Una volta completata questa operazione, Memorystore for Redis Cluster può scrivere dati di persistenza utilizzando la versione della chiave primaria aggiornata.
Sostituzione di una chiave Cloud KMS protetta
Se sostituisci una chiave Cloud KMS protetta con una chiave diversa o con una nuova versione della chiave primaria, Memorystore for Redis Cluster applica questa modifica solo alle operazioni future.
La sostituzione di una chiave protetta influisce sulle tue risorse nei seguenti modi:
- Backup: tutti i backup successivi vengono criptati utilizzando la nuova chiave. I backup esistenti mantengono le chiavi originali.
- Persistenza: la volta successiva che il cluster viene riavviato o che si verifica un evento di manutenzione, viene utilizzata la nuova chiave.
- Cache principale: la sostituzione di questa chiave non ha alcun impatto. CMEK non cripta i dati in memoria perché non sono considerati dati archiviati.
Abilitazione o ripristino della versione della chiave CMEK primaria
Se abiliti o ripristini la versione della chiave primaria, ai backup e alla persistenza si applicano le seguenti condizioni:
- Puoi creare di nuovo backup on demand e automatici.
- Memorystore for Redis Cluster esegue un aggiornamento simile a quello utilizzato per la manutenzione e riattiva la persistenza.
Vincoli delle policy dell'organizzazione
Memorystore for Redis Cluster supporta i vincoli dei criteri dell'organizzazione per CMEK. Utilizzando questi vincoli, puoi applicare la protezione CMEK ai tuoi cluster e limitare le chiavi Cloud KMS che puoi utilizzare per questa protezione.
Puoi configurare i seguenti vincoli dei criteri dell'organizzazione:
constraints/gcp.restrictNonCmekServices: utilizza questo vincolo per applicare la protezione CMEK per i tuoi cluster. Se l'API Memorystore for Redis Cluster è nell'elenco dei servizi del criterioDenyper questo vincolo, non puoi creare cluster non protetti da CMEK.constraints/gcp.restrictCmekCryptoKeyProjects: utilizza questo vincolo per limitare le chiavi Cloud KMS che puoi utilizzare per la protezione CMEK. Se configuri questo vincolo, i cluster che utilizzano la crittografia CMEK devono utilizzare una chiave di un progetto, una cartella o un'organizzazione consentiti.
Poiché sia Memorystore for Redis Cluster sia Memorystore for Redis
condividono lo stesso endpoint (redis.googleapis.com), non puoi applicare CMEK per
i cluster indipendentemente dalle istanze Memorystore for Redis.
Per saperne di più sui vincoli delle policy dell'organizzazione correlati a CMEK che Google gestisce per Memorystore for Redis Cluster, consulta Vincoli delle policy dell'organizzazione.
Prezzi
Memorystore for Redis Cluster fattura un cluster abilitato a CMEK come qualsiasi altro cluster; non sono previsti costi aggiuntivi. Per ulteriori informazioni, consulta la pagina Prezzi di Memorystore for Redis Cluster.
Per gestire le chiavi CMEK, utilizzi l'API Cloud KMS. Quando crei un cluster con CMEK, Memorystore utilizza la chiave periodicamente per criptare i dati.
Cloud KMS ti addebita il costo della chiave e delle operazioni di crittografia e decrittografia quando Memorystore for Redis Cluster utilizza la chiave. Per ulteriori informazioni, consulta la pagina Prezzi di Cloud KMS.
Limitazioni
Quando utilizzi CMEK con Memorystore for Redis Cluster, si applicano le seguenti limitazioni:
- Non puoi abilitare CMEK su un cluster esistente.
- La chiave, il portachiavi e il cluster devono trovarsi nella stessa regione.
- Devi utilizzare l'algoritmo di crittografia simmetrica per la chiave.
- Le velocità di crittografia e decrittografia di Cloud KMS sono soggette a una quota.
Passaggi successivi
- Scopri di più su CMEK.
- Scopri come migliorare la sicurezza dei dati utilizzando CMEK.
- Scopri di più sui backup.
- Scopri di più sulla persistenza.