Questo documento descrive come utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud Key Management Service (Cloud KMS) per le istanze di Memorystore for Redis. Il documento illustra anche quali dati vengono criptati nello spazio di archiviazione permanente e come si comportano le istanze durante gli eventi del ciclo di vita delle chiavi.
CMEK consente di controllare le chiavi di crittografia che proteggono i dati archiviati. Gestendo le tue chiavi in Cloud KMS, ottieni un maggiore controllo sull'accesso, sulla rotazione e sull'utilizzo delle chiavi, il che ti aiuta a soddisfare requisiti di conformità e normativi rigorosi.
L'implementazione di CMEK fornisce un ulteriore livello di sicurezza e controllo sui dati permanenti, come backup e file di persistenza. Puoi abilitare CMEK solo sulle nuove istanze. Non puoi applicare CMEK alle istanze esistenti.
Chi dovrebbe utilizzare CMEK?
CMEK è destinato alle organizzazioni che dispongono di dati sensibili o regolamentati e che richiedono il controllo delle proprie chiavi di crittografia. Per ulteriori informazioni su se utilizzare CMEK per criptare questi dati, consulta Decidere se utilizzare CMEK.
Crittografia gestita dal cliente
CMEK consente di utilizzare le chiavi di crittografia per proteggere i dati archiviati nelle istanze. Per criptare questi dati, Memorystore for Redis utilizza chiavi di crittografia dei dati (DEK) gestite da Google e chiavi di crittografia delle chiavi (KEK) gestite dal cliente.
Puoi avere i seguenti livelli di crittografia:
- Crittografia DEK: le DEK criptano i dati in Memorystore for Redis.
- Crittografia KEK: le KEK criptano le DEK.
Memorystore for Redis 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 nella tua istanza.
Il seguente diagramma mostra come un'istanza 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 la 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 decripta i dati criptati con CMEK. Per accedere a questi dati criptati, Memorystore for Redis invia una richiesta a Cloud KMS, che gestisce la KEK, per decriptare la DEK. Cloud KMS restituisce quindi la DEK decriptata, che l'istanza utilizza per decriptare i dati archiviati.

Quando Memorystore interagisce con CMEK?
| Operazione | Descrizione |
|---|---|
| Creazione dell'istanza | Quando crei un'istanza, la configuri in modo che utilizzi CMEK. |
| Aggiornamento dell'istanza | Durante gli aggiornamenti di un'istanza abilitata per CMEK, Memorystore for Redis controlla the CMEK. |
Quali dati vengono criptati utilizzando CMEK?
CMEK cripta i seguenti tipi di dati:
- Dati dei clienti archiviati nello spazio di archiviazione permanente.
- Metadati relativi alle funzionalità di sicurezza come AUTH e la crittografia in transito.
Informazioni sugli account di servizio
Quando crei un'istanza con CMEK, devi concedere il ruolo cloudkms.cryptoKeyEncrypterDecrypter all'account di servizio di Memorystore for Redis che ha il seguente formato:
service-PROJECT_NUMBER@cloud-redis.
La concessione di questa autorizzazione consente all'account di servizio di richiedere l'accesso alle chiavi da Cloud KMS.
Per istruzioni su come concedere questa autorizzazione all'account di servizio, consulta Concedere all'account di servizio di Memorystore for Redis l'accesso alla chiave.
Informazioni sulle chiavi
In Cloud KMS, devi creare un portachiavi con una chiave di crittografia che utilizza un algoritmo di crittografia simmetrica. Quando crei un'istanza di Memorystore for Redis, seleziona questa chiave per criptare l'istanza. Puoi creare un progetto per le chiavi e le istanze oppure progetti diversi per ciascuna di esse.
CMEK è disponibile in tutte le località delle istanze di Memorystore for Redis. Devi creare il portachiavi e la chiave nella stessa regione in cui vuoi creare l'istanza. Una chiave per una regione multiregionale o globale non funziona. Se le regioni o le località non corrispondono, la richiesta di creazione dell'istanza 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
Se Memorystore for Redis non riesce ad accedere a nessuna versione della chiave in uso (ad esempio, se disabiliti tutte le versioni della chiave), Memorystore for Redis arresta l'istanza. Nella Google Cloud console, un'istanza sospesa mostra un suggerimento con un punto esclamativo rosso
nella pagina Istanze. Se passi il mouse sopra il suggerimento, viene visualizzato lo stato No state. Una volta che la chiave diventa accessibile, Memorystore for Redis riprende automaticamente l'istanza.
Chiavi esterne
Puoi utilizzare Cloud External Key Manager (Cloud EKM) per criptare i dati utilizzando le chiavi esterne che gestisci. Google Cloud
Quando utilizzi una chiave Cloud EKM, Google non ha alcun controllo sulla disponibilità della chiave gestita esternamente. Se la chiave non è disponibile quando crei l'istanza, l'istanza non viene creata.
Per ulteriori considerazioni sull'utilizzo delle chiavi esterne, consulta Cloud External Key Manager.
Come rendere inaccessibili in modo permanente i dati criptati con CMEK?
Potresti trovarti in situazioni in cui vuoi rendere inaccessibili in modo permanente i dati criptati con CMEK. Per farlo, elimina la versione della chiave. Per ulteriori informazioni sull'eliminazione delle versioni della chiave, consulta Eliminare e ripristinare le versioni delle chiavi.
Come importare o esportare i dati per un'istanza abilitata per CMEK?
Se vuoi che i dati rimangano criptati con CMEK quando li esporti, devi impostare una CMEK sul bucket Cloud Storage prima di esportare i dati.
Se i dati sono archiviati in un'istanza abilitata per CMEK, non esistono requisiti o limitazioni speciali per l'importazione dei dati in una nuova istanza.
Comportamento di una versione della chiave CMEK
Questa sezione fornisce informazioni su cosa succede quando disabiliti, elimini, ruoti, abiliti e ripristini una versione della chiave.
Disabilitare o eliminare una versione della chiave CMEK
Se vuoi assicurarti che non ci sia accesso ai dati della tua istanza, disabilita la versione della chiave primaria. In questo modo l'istanza viene arrestata. Inoltre, se una CMEK in uso viene disabilitata o eliminata, Memorystore for Redis arresta l'istanza. Sono incluse anche le versioni precedenti della chiave utilizzate dall'istanza.
Per verificare se Memorystore for Redis sospende l'istanza, utilizza una delle seguenti interfacce:
- Google Cloud Console: nella pagina Istanze, accanto all'istanza viene visualizzato un suggerimento con un punto esclamativo rosso. Se passi il mouse sopra il suggerimento, viene visualizzato lo stato
No state. - gcloud CLI: utilizza il comando
gcloud redis instances describe. Verifica di non visualizzarestate: READY,state: REPAIRINGo qualsiasi altro stato nei metadati dell'istanza.
Ricriptare manualmente i dati protetti da CMEK
Memorystore for Redis non supporta il wrapping on demand dei dati at-rest esistenti. Non puoi attivare manualmente un processo per utilizzare una nuova versione della chiave per ricriptare i backup esistenti o i file di persistenza attivi. Tuttavia, puoi utilizzare la nuova versione della chiave per criptare i dati appena scritti.
Sostituire una chiave KMS protetta
Se sostituisci una chiave KMS protetta con una chiave KMS diversa o con una nuova versione della chiave primaria, Memorystore for Redis applica questa modifica solo alle operazioni future.
La sostituzione di una chiave KMS protetta influisce sulle risorse nei seguenti modi:
- Backup: Memorystore for Redis esporta i backup nei bucket Cloud Storage. La chiave di crittografia di Cloud Storage controlla la chiave utilizzata per criptare i dati.
- Persistenza: la prossima volta che l'istanza viene riavviata o si verifica un evento di manutenzione, viene utilizzata la nuova chiave KMS.
- Cache primaria: la sostituzione di questa chiave non ha alcun impatto. CMEK non cripta i dati in memoria perché questi dati non sono considerati dati at-rest.
Abilitare o ripristinare la versione della chiave CMEK primaria
Se abiliti o ripristini la versione della chiave primaria, Memorystore for Redis non nasconde più l'istanza.
Vincoli delle policy dell'organizzazione
Memorystore for Redis supporta i vincoli delle policy dell'organizzazione per CMEK. Utilizzando questi vincoli, puoi applicare la protezione CMEK per le tue istanze e limitare le chiavi Cloud KMS che puoi utilizzare per questa protezione.
Puoi configurare i seguenti vincoli delle policy dell'organizzazione:
constraints/gcp.restrictNonCmekServices: utilizza questo vincolo per applicare la protezione CMEK per le tue istanze. Se l'API Memorystore for Redis si trova nell'elenco dei servizi delle policyDenyper questo vincolo, non puoi creare istanze non protette 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, le istanze che utilizzano la crittografia CMEK devono utilizzare una chiave di un progetto, una cartella o un'organizzazione consentiti.
Poiché sia Memorystore for Redis sia Memorystore for Redis Cluster
condividono lo stesso endpoint (redis.googleapis.com), non puoi applicare CMEK per le
istanze indipendentemente dai cluster in Memorystore for Redis Cluster.
Per ulteriori informazioni sui vincoli delle policy dell'organizzazione relativi a CMEK gestiti da Google per Memorystore for Redis, consulta Vincoli delle policy dell'organizzazione.
Prezzi
Memorystore for Redis fattura un'istanza abilitata per CMEK come qualsiasi altra istanza; non sono previsti costi aggiuntivi. Per ulteriori informazioni, consulta Prezzi di Memorystore for Redis.
Utilizzi l'API Cloud KMS per gestire CMEK. Quando crei un'istanza con CMEK, Memorystore utilizza periodicamente la chiave per criptare i dati.
Cloud KMS ti addebita il costo della chiave e le operazioni di crittografia e decrittografia quando Memorystore for Redis utilizza la chiave. Per ulteriori informazioni, consulta Prezzi di Cloud KMS.
Limitazioni
Quando utilizzi CMEK con Memorystore for Redis, si applicano le seguenti limitazioni:
- Non puoi abilitare CMEK su un'istanza esistente.
- La chiave, il portachiavi e l'istanza devono trovarsi nella stessa regione.
- Devi utilizzare l'algoritmo di crittografia simmetrica per la chiave.
- Le tariffe 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.