Informazioni sulle chiavi di crittografia gestite dal cliente (CMEK)

Per impostazione predefinita, Memorystore for Redis cripta i contenuti inattivi dei clienti at rest. Memorystore for Redis gestisce la crittografia senza che tu debba eseguire ulteriori azioni. Questa opzione è chiamata crittografia predefinita di Google.

Se vuoi controllare le chiavi di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud KMS con i servizi integrati con CMEK, incluso Memorystore for Redis. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il livello di protezione , la località, la pianificazione della rotazione, le autorizzazioni di utilizzo e di accesso e i limiti crittografici. Con Cloud KMS puoi anche visualizzare gli audit log e controllare i cicli di vita delle chiavi. Invece di Google, sei tu ad avere la proprietà e la gestione delle chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati. Puoi controllare e gestire queste chiavi in Cloud KMS.

Dopo aver configurato le risorse con le chiavi CMEK, l'esperienza di accesso alle risorse di Memorystore for Redis è simile all'utilizzo della crittografia predefinita di Google. Per ulteriori informazioni sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).

Chi dovrebbe utilizzare le chiavi CMEK?

Le chiavi CMEK sono destinate alle organizzazioni che dispongono di dati sensibili o regolamentati che devono essere criptati. Per ulteriori informazioni su se utilizzare le chiavi CMEK per criptare questi dati, consulta Decidere se utilizzare le chiavi CMEK.

Crittografia gestita da Google e crittografia gestita dal cliente

La funzionalità CMEK ti consente di utilizzare le tue chiavi di crittografia per i dati inattivi in Memorystore for Redis. Per le istanze di Memorystore for Redis abilitate alle chiavi CMEK, Google utilizza le tue chiavi per accedere a tutti i dati inattivi.

Memorystore utilizza le chiavi di crittografia dei dati (DEK) e le chiavi di crittografia delle chiavi (KEK) gestite da Google per criptare i dati in Memorystore for Redis. Esistono due livelli di crittografia:

  • Crittografia DEK:Memorystore utilizza le chiavi DEK per criptare i dati in Memorystore for Redis.
  • Crittografia KEK:Memorystore utilizza le chiavi KEK per criptare le chiavi DEK.

L'istanza di Memorystore for Redis archivia la chiave DEK criptata insieme ai dati criptati sul disco permanente e Google gestisce la chiave KEK di Google. La chiave CMEK è la chiave KEK che esegue il wrapping della chiave DEK. Le chiavi CMEK consentono di creare, disabilitare o eliminare e abilitare o ripristinare la chiave KEK.

Puoi gestire le chiavi CMEK utilizzando l'API Cloud Key Management Service.

I seguenti diagrammi mostrano come funziona la crittografia dei dati inattivi all'interno di un'istanza di Memorystore for Redis quando si utilizza la crittografia predefinita gestita da Google rispetto alle chiavi CMEK.

Senza chiavi CMEK

I dati vengono caricati su Google, suddivisi in blocchi e ogni blocco viene criptato con una propria chiave di crittografia dei dati. Le chiavi di crittografia dei dati vengono sottoposte a wrapping utilizzando una chiave di crittografia della chiave. Con la crittografia Google predefinita, la chiave di crittografia della chiave viene recuperata dal keystore interno di Google. I blocchi criptati e le chiavi di crittografia con wrapping vengono distribuiti nell'infrastruttura di archiviazione di Google.

Con chiavi CMEK

I dati vengono caricati su Google, suddivisi in blocchi e ogni blocco viene criptato con una propria chiave di crittografia dei dati. Le chiavi di crittografia dei dati vengono sottoposte a wrapping utilizzando una chiave di crittografia della chiave. Con CMEK che utilizza Cloud KMS, la chiave di crittografia della chiave viene recuperata da Cloud KMS. I blocchi criptati e le chiavi di crittografia con wrapping vengono distribuiti nell'infrastruttura di archiviazione di Google.

Quando decripta i dati criptati con le chiavi CMEK, Memorystore utilizza la chiave KEK di Cloud Key Management Service per decriptare la chiave DEK e la chiave DEK non criptata per decriptare i dati inattivi.

Blocco di dati criptato con DEK e archiviato con DEK sottoposta a wrapping. Viene inviata una richiesta di annullamento del wrapping della DEK all'archivio KMS, che memorizza la KEK non esportabile. KMS Storage restituisce la DEK di cui è stato annullato il wrapping.

Prezzi

Memorystore for Redis fattura un'istanza abilitata alle chiavi CMEK come qualsiasi altra istanza; non sono previsti costi aggiuntivi. Per ulteriori informazioni, consulta Prezzi di Memorystore for Redis.

Utilizza l'API Cloud KMS per gestire le chiavi CMEK. Quando crei un'istanza di Memorystore for Redis con le chiavi 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.

Quando Memorystore interagisce con le chiavi CMEK?

Operazione Descrizione
Creazione dell'istanza Quando crei un'istanza, la configuri in modo che utilizzi le chiavi CMEK.
Aggiornamento dell'istanza Durante gli aggiornamenti di un'istanza abilitata alle chiavi CMEK, Memorystore for Redis controlla le chiavi CMEK.

Quali dati vengono criptati utilizzando le chiavi CMEK?

Le chiavi CMEK criptano 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 le chiavi CMEK, devi concedere il ruolo cloudkms.cryptoKeyEncrypterDecrypter al account di servizio di Memorystore for Redis che ha 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 alle chiavi da Cloud KMS.

Per istruzioni su come concedere questa autorizzazione al account di servizio, consulta Concedere al 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.

Le chiavi CMEK sono disponibili 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, una richiesta di creazione dell'istanza non va a buon fine.

Per l'ID risorsa della chiave, le chiavi CMEK utilizzano 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 le chiavi CMEK?

Potresti trovarti in situazioni in cui vuoi rendere inaccessibili in modo permanente i dati criptati con le chiavi 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 alle chiavi CMEK?

Se vuoi che i dati rimangano criptati con una chiave CMEK quando li esporti, devi impostare una chiave CMEK sul bucket Cloud Storage prima di esportare i dati.

Se i dati sono archiviati in un'istanza abilitata alle chiavi CMEK, non sono previsti 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 della tua chiave CMEK. In questo modo l'istanza viene arrestata. Inoltre, se una chiave CMEK in uso viene disabilitata o eliminata, Memorystore for Redis arresta l'istanza. Sono incluse tutte 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 visualizzare state: READY, state: REPAIRING o qualsiasi altro stato nei metadati dell'istanza.

Ricriptare manualmente i dati protetti dalle chiavi CMEK

Memorystore for Redis non supporta il wrapping on demand dei dati inattivi 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. Le chiavi CMEK non criptano i dati in memoria perché non sono considerati dati a riposo.

Abilitare o ripristinare la versione della chiave CMEK primaria

Se abiliti o ripristini la versione della chiave primaria della tua chiave CMEK, Memorystore for Redis non nasconde più l'istanza.

Limitazioni

Quando utilizzi le chiavi CMEK con Memorystore for Redis, si applicano le seguenti limitazioni:

  • Non puoi abilitare le chiavi CMEK su un'istanza di Memorystore for Redis 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.

Informazioni sui vincoli delle policy dell'organizzazione per le chiavi CMEK

Memorystore for Redis supporta i vincoli delle policy dell'organizzazione per le chiavi 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 delle policy Deny dei servizi per questo vincolo, non puoi creare istanze non protette da chiavi 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.