Informazioni sulle chiavi di crittografia gestite dal cliente (CMEK)

Questa pagina descrive come funzionano le chiavi di crittografia gestite dal cliente (CMEK) con Memorystore for Redis. Per iniziare a utilizzare questa funzionalità, consulta Utilizzare le chiavi di crittografia gestite dal cliente (CMEK).

Per impostazione predefinita, Memorystore for Redis cripta i contenuti inattivi dei clienti. Memorystore for Redis gestisce la crittografia per conto tuo senza che tu debba fare altro. Questa opzione è denominata Crittografia predefinita di Google.

Se vuoi controllare le tue chiavi di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud KMS con servizi integrati con CMEK, tra cui 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 inoltre 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 Memorystore for Redis è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).

Chi dovrebbe utilizzare CMEK?

Le chiavi CMEK sono destinate alle organizzazioni che dispongono di dati sensibili o regolamentati che devono essere criptati. Per ulteriori informazioni sull'utilizzo di CMEK per criptare questi dati, consulta Decidere se utilizzare 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. Dopo aver aggiunto le chiavi di crittografia gestite dal cliente, ogni volta che viene effettuata una chiamata API, Memorystore utilizza la tua chiave per accedere ai dati.

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

  • La DEK cripta i dati.
  • La KEK cripta la DEK.

L'istanza Memorystore archivia la DEK criptata insieme ai dati criptati sul disco permanente e Google gestisce la KEK di Google. La CMEK è la KEK che esegue il wrapping della DEK. Le chiavi di crittografia gestite dal cliente ti consentono di creare, revocare ed eliminare la KEK.

Le chiavi di crittografia gestite dal cliente vengono gestite tramite l'API Cloud Key Management Service.

I diagrammi seguenti mostrano come funziona la crittografia dei dati at-rest all'interno di un'istanza Memorystore quando si utilizza la crittografia predefinita di Google rispetto alle chiavi di crittografia gestite dal cliente.

Senza 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 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 sottoposti a wrapping con chiavi di crittografia gestite dal cliente, Memorystore utilizza la KEK per decriptare la DEK e la DEK non criptata per decriptare i dati inattivi.

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

Quando Memorystore interagisce con le chiavi CMEK?

Operazione Descrizione
Creazione dell'istanza Durante la creazione dell'istanza, configuri l'istanza in modo che utilizzi chiavi di crittografia gestite dal cliente.
Aggiornamento dell'istanza Memorystore controlla la chiave CMEK durante gli aggiornamenti di un'istanza abilitata per CMEK.

Quali dati vengono criptati utilizzando CMEK?

CMEK cripta i seguenti tipi di dati:

  • I dati dei clienti archiviati nello spazio di archiviazione permanente.
  • Metadati relativi a funzionalità di sicurezza come AUTH e crittografia in transito.

Informazioni sugli account di servizio

Quando crei un'istanza con CMEK, devi concedere il ruolo cloudkms.cryptoKeyEncrypterDecrypter al account di servizio Memorystore 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 alla chiave da Cloud KMS.

Per istruzioni su come concedere questa autorizzazione al account di servizio, vedi Concedere l'accesso del account di servizio alla chiave.

Informazioni sulle chiavi

In Cloud KMS, devi creare un portachiavi con una chiave di crittografia che utilizza un algoritmo di crittografia/decrittografia simmetrica. Quando crei una nuova istanza Memorystore, selezioni questa chiave per crittografare l'istanza. Puoi creare un progetto per le chiavi e le istanze Memorystore oppure progetti diversi per ciascuno.

La chiave di crittografia gestita dal cliente è disponibile in tutte le località delle istanze Memorystore. La regione della chiave e del portachiavi deve essere impostata sulla stessa regione dell'istanza Memorystore for Redis. Una chiave multiregionale o globale non funziona. Una richiesta di creazione di un'istanza Memorystore non va a buon fine se le regioni non corrispondono.

CMEK per Memorystore è compatibile con Cloud External Key Manager (Cloud EKM).

Le chiavi di crittografia gestite dal cliente utilizzano il seguente formato:

projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]

Se Memorystore non riesce ad accedere a una versione della chiave attualmente in uso (ad esempio se la disabiliti), arresta l'istanza senza indebito ritardo. Nella console Google Cloud , un'istanza sospesa mostra un suggerimento con un punto esclamativo rosso nella pagina Istanze. Quando passi il mouse sopra la descrizione comando, viene visualizzato il messaggio "Nessuno stato". Una volta che la chiave torna accessibile, Memorystore riprende automaticamente l'istanza.

Come faccio a rendere inaccessibili in modo permanente i dati criptati con CMEK?

Potresti trovarti in situazioni in cui vuoi eliminare definitivamente i dati criptati con CMEK. Per farlo, distruggi la versione della chiave di crittografia gestita dal cliente. Non puoi eliminare il portachiavi o la chiave, ma puoi eliminare le versioni della chiave.

Come faccio a esportare e importare dati da e verso un'istanza abilitata a CMEK?

Se vuoi che i tuoi dati rimangano criptati con una chiave gestita dal cliente durante un'importazione o un'esportazione, devi impostare una chiave di crittografia gestita dal cliente nel bucket Cloud Storage prima di esportare i dati.

Non esistono requisiti o limitazioni speciali per l'importazione di dati in una nuova istanza Memorystore quando i dati sono stati archiviati in precedenza in un'istanza Memorystore abilitata a CMEK.

Comportamento di eliminazione/disabilitazione di una versione della chiave CMEK

Se vuoi assicurarti che non ci sia accesso ai dati della tua istanza, puoi farlo disattivando la versione della chiave primaria della tua chiave di crittografia gestita dal cliente. In questo modo, l'istanza viene chiusa senza ritardi ingiustificati. Inoltre, Memorystore arresta un'istanza senza indebito ritardo se una chiave di crittografia gestita dal cliente in uso viene disattivata/eliminata. Ciò include qualsiasi versione precedente della chiave ancora in uso da un'istanza Memorystore. Puoi utilizzare gcloud o la console Google Cloud per verificare se la tua istanza è sospesa:

Per la console Google Cloud , se la tua istanza è sospesa, vedrai una notifica tooltip rossa accanto all'istanza nella pagina Istanze di Memorystore for Redis. Quando passi il cursore sopra, la descrizione comando mostra "Nessuno stato".

Per gcloud, se esegui gcloud redis instances describe e non visualizzi state: READY, state: REPAIRING o qualsiasi altro stato nei metadati dell'istanza, significa che l'istanza è sospesa.

Riattivazione/ripristino di una versione della chiave CMEK in uso

Un'istanza viene visualizzata dopo aver riattivato/ripristinato una versione della chiave CMEK in uso.

Limitazioni

Quando utilizzi le chiavi di crittografia gestite dal cliente con Memorystore, si applicano le seguenti limitazioni:

  • Non puoi abilitare le chiavi di crittografia gestite dal cliente su un'istanza Memorystore esistente.
  • La regione per la chiave, il keyring e l'istanza Memorystore deve essere la stessa.
  • Devi utilizzare l'algoritmo di crittografia/decrittografia simmetrica per la chiave.
  • Le tariffe di crittografia e decrittografia di Cloud KMS sono soggette a una quota.

Policy dell'organizzazione CMEK

Memorystore for Redis supporta i vincoli dei criteri dell'organizzazione che possono essere utilizzati per la protezione CMEK.

I criteri possono limitare le chiavi Cloud KMS che possono essere utilizzate per la protezione CMEK.

  • Quando l'API Memorystore for Redis si trova nell'elenco dei servizi del criterio Deny nel vincolo constraints/gcp.restrictNonCmekServices, la creazione di Memorystore for Redis non va a buon fine per le istanze non protette da CMEK.

  • Quando constraints/gcp.restrictCmekCryptoKeyProjects è configurato, Memorystore for Redis crea istanze protette da CMEK che vengono crittografate utilizzando una chiave di un progetto, una cartella o un'organizzazione consentiti.

Per saperne di più sulla configurazione delle policy dell'organizzazione CMEK, consulta la pagina Policy dell'organizzazione CMEK.