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 utilizzare subito questa funzionalità, consulta Utilizzo delle chiavi di crittografia gestite dal cliente (CMEK).

CMEK è la scelta giusta per me?

Le chiavi di crittografia gestite dal cliente sono destinate alle organizzazioni con dati sensibili o regolamentati che richiedono la gestione delle proprie chiavi di crittografia.

Crittografia gestita da Google e crittografia gestita dal cliente

La funzionalità CMEK consente di utilizzare le tue chiavi di crittografia per i dati at-rest 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 chiave per accedere ai dati.

Memorystore utilizza le chiavi di crittografia dei dati (DEK) e le chiavi di crittografia delle chiavi (KEK) gestite da Google per criptare Memorystore per 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 DP e Google gestisce la KEK di Google. Con le chiavi di crittografia gestite dal cliente, crei una chiave che esegue il wrapping della KEK di Google. Le chiavi di crittografia gestite dal cliente consentono di creare, revocare ed eliminare la KEK.

Le chiavi di crittografia gestite dal cliente sono 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 di Memorystore quando viene utilizzata la crittografia predefinita di Google rispetto alle chiavi di crittografia gestite dal cliente.

Senza CMEK

I dati vengono caricati su Google, quindi suddivisi in blocchi e ogni blocco viene criptato con la propria chiave di crittografia dei dati. Il wrapping delle chiavi di crittografia dei dati viene eseguito utilizzando una chiave di crittografia della chiave. Con la crittografia di Google predefinita, la chiave di crittografia della chiave viene recuperata dall'archivio chiavi interno di Google. I blocchi criptati e le chiavi di crittografia con wrapping sono distribuiti nell'infrastruttura di archiviazione di Google.

Con CMEK

I dati vengono caricati su Google, quindi suddivisi in blocchi e ogni blocco viene criptato con la propria chiave di crittografia dei dati. Il wrapping delle chiavi di crittografia dei dati viene eseguito 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 sono distribuiti nell'infrastruttura di archiviazione di Google.

Durante la decriptazione dei 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 at-rest.

Blocco di dati criptato con DEK e archiviato con DEK con wrapping. Una richiesta per annullare il wrapping della DEK viene inviata allo spazio di archiviazione KMS, che archivia la KEK non esportabile. L'archiviazione KMS restituisce la DEK senza wrapping.

Quando Memorystore interagisce con le chiavi CMEK?

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

Quali dati vengono criptati tramite CMEK?

La CMEK cripta i seguenti tipi di dati:

Informazioni sugli account di servizio

Quando crei un'istanza con CMEK, devi concedere il ruolo cloudkms.cryptoKeyEncrypterDecrypter all'account di servizio Memorystore con il formato seguente:

  • service-[PROJECT_NUMBER]@cloud-redis.iam.gserviceaccount.com

La concessione di questa autorizzazione consente all'account di servizio di richiedere l'accesso alle chiavi da Cloud KMS.

Per istruzioni sulla concessione di questa autorizzazione all'account di servizio, vedi Concedere all'account di servizio l'accesso alla chiave.

Informazioni sulle chiavi

In Cloud KMS, è necessario creare un keyring con una chiave di crittografia che utilizza un algoritmo di crittografia/decrittografia simmetrica. Quando crei una nuova istanza Memorystore, selezioni questa chiave per criptarla. Puoi creare un progetto sia per le chiavi sia per le istanze di Memorystore oppure progetti diversi per ciascuna di esse.

CMEK è disponibile in tutte le località delle istanze Memorystore. La regione della chiave e del keyring deve essere impostata sulla stessa regione dell'istanza di Memorystore for Redis. Una chiave per più regioni o globale non funziona. Una richiesta per la 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 nessuna versione della chiave attualmente in uso (ad esempio se disabiliti la versione della chiave), Memorystore arresta l'istanza senza ritardi eccessivi. Nella console Google Cloud, un'istanza sospesa mostra una descrizione comando con punto esclamativo rosso nella pagina Istanze. Quando passi il mouse sopra la descrizione comando, viene visualizzato lo stato "Nessuno stato". Quando la chiave diventa di nuovo accessibile, Memorystore ripristina automaticamente l'istanza.

Come faccio a rendere i dati criptati tramite CMEK definitivamente inaccessibili?

Potrebbero verificarsi delle situazioni in cui vuoi eliminare definitivamente i dati criptati con CMEK. A questo scopo, distruggi la versione della chiave di crittografia gestita dal cliente. Non puoi eliminare il keyring o la chiave, ma puoi eliminare le versioni della chiave.

Come faccio a esportare e importare i dati da e in un'istanza abilitata per CMEK?

Se vuoi che i 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 esportarvi i dati.

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

Comportamento di eliminazione/disattivazione di una versione della chiave CMEK

Se vuoi garantire che l'istanza non possa accedere ai dati, disattiva la versione della chiave primaria della chiave di crittografia gestita dal cliente. In questo modo, l'istanza verrà arrestata senza ritardi eccessivi. Inoltre, Memorystore arresta un'istanza senza ritardi ingiustificati se una chiave di crittografia gestita dal cliente in uso viene disabilitata/eliminata. Ciò include qualsiasi versione della chiave precedente ancora utilizzata 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 l'istanza è sospesa viene visualizzata una notifica descrizione comando rossa accanto all'istanza nella pagina Istanze di Memorystore for Redis. La descrizione comando mostra "Nessuno stato" al passaggio del mouse.

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

Riabilitazione/ripristino di una versione della chiave CMEK in uso

Un'istanza viene mostrata dopo reenabling/restoring di una versione della chiave CMEK in uso.

Limitazioni

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

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