Chiavi di crittografia gestite dal cliente (CMEK)

Questa pagina descrive il funzionamento delle chiavi di crittografia gestite dal cliente (CMEK) con Memorystore for Redis. Per utilizzare subito questa funzionalità, vedi Utilizzare le chiavi di crittografia gestite dal cliente (CMEK).

La CMEK è adatta alle mie esigenze?

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 chiavi di crittografia per i dati at-rest in Memorystore for Redis. Dopo aver aggiunto 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 gestite da Google (DEK) e chiavi di crittografia delle chiavi (KEK) 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 PD e Google gestisce la KEK di Google. Con le chiavi di crittografia gestite dal cliente, crei una chiave che esegue il wrapping della Google KEK. Le chiavi di crittografia gestite dal cliente ti 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 si utilizza la crittografia di Google predefinita rispetto alle chiavi di crittografia gestite dal cliente.

Senza CMEK

I dati vengono caricati su Google, quindi suddivisi e ogni blocco viene criptato con la propria chiave di crittografia dei dati. Le chiavi di crittografia dei dati vengono criptate con una chiave di crittografia delle chiavi. Con la crittografia di Google predefinita, la chiave di crittografia della chiave viene recuperata dall'archivio chiavi interno di Google. Blocchi criptati e chiavi di crittografia con wrapping sono distribuiti su tutta l'infrastruttura di archiviazione di Google.

Con CMEK

I dati vengono caricati su Google, quindi suddivisi e ogni blocco viene criptato con la propria chiave di crittografia dei dati. Le chiavi di crittografia dei dati vengono criptate con una chiave di crittografia delle chiavi. Con CMEK tramite Cloud KMS, la chiave di crittografia della chiave viene recuperata da Cloud KMS. Blocchi criptati e chiavi di crittografia con wrapping sono distribuiti su tutta l'infrastruttura di archiviazione di Google.

Durante la decriptazione dei dati inseriti con chiavi di crittografia gestite dal cliente, Memorystore utilizza la KEK per la decriptazione della DEK e la DEK non criptata per la decriptazione dei dati at-rest.

Blocco di dati criptato con DEK e archiviato con DEK aggregata. Viene inviata una richiesta di decriptazione della chiave DEK allo spazio di archiviazione KMS, che archivia la chiave KEK non esportabile. Lo spazio di archiviazione KMS restituisce la DEK non aggregata.

Quando Memorystore interagisce con le chiavi CMEK?

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

Quali dati vengono criptati tramite CMEK?

CMEK cripta i seguenti tipi di dati:

  • Dati dei clienti archiviati in un'archiviazione permanente.
  • Metadati relativi alle 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 all'account di servizio Memorystore Store con il seguente formato:

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

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

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

Informazioni sulle chiavi

In Cloud KMS, devi creare un keyring con una chiave di crittografia che utilizzi un algoritmo di crittografia/decriptazione simmetrico. Quando crei una nuova istanza di Memorystore, selezioni questa chiave per criptare l'istanza. Puoi creare un progetto sia per le chiavi che per le istanze Memorystore o viceversa.

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 a più aree geografiche o area geografica globale non funziona. Una richiesta per la creazione di un'istanza Memorystore non riesce se le regioni non corrispondono.

Al momento CMEK per Memorystore non supporta 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 è in grado di accedere a nessuna versione della chiave attualmente in uso (ad esempio se disabiliti la versione della chiave), Memorystore arresta l'istanza senza indebito ritardo. In Google Cloud Console, un'istanza sospesa mostra una descrizione comando punto esclamativo rosso nella pagina Istanze. Quando passi il mouse sopra la descrizione comando, viene visualizzato "Nessuno stato". Quando la chiave diventa nuovamente accessibile, Memorystore ripristina automaticamente l'istanza.

Come posso rendere inaccessibili definitivamente i dati criptati con CMEK?

In alcune situazioni, puoi eliminare definitivamente i dati criptati con CMEK. Per farlo, devi eliminare 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 dati da e verso un'istanza abilitata per 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 al suo interno.

Non esistono requisiti o restrizioni speciali per l'importazione di dati in una nuova istanza di Memorystore quando i dati erano precedentemente archiviati in un'istanza di Memorystore abilitata per CMEK.

Comportamento dell'eliminazione/disattivazione di una versione della chiave CMEK

Se non vuoi garantire l'accesso ai dati alla tua istanza, puoi disabilitare la versione della chiave primaria della chiave di crittografia gestita dal cliente. In questo modo l'istanza viene arrestata senza indebito ritardo. Inoltre, Memorystore archivia un'istanza senza ritardi ingiustificati se una chiave di crittografia gestita dal cliente in uso viene disabilitata o eliminata. Sono incluse tutte le versioni precedenti della chiave ancora utilizzate da un'istanza Memorystore. Puoi utilizzare gcloud o Google Cloud Console per verificare se la tua istanza è sospesa:

Per la console Google Cloud, se l'istanza è sospesa, verrà visualizzata una notifica relativa alla descrizione comando rossa accanto all'istanza nella pagina Istanze Memorystore for Redis. La descrizione comando mostra "Nessuno stato" quando il cursore vi passa sopra il 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.

Riattivazione/ripristino di una versione della chiave CMEK in uso

Un'istanza viene visualizzata dopo la riattivazione/ripristino di una versione della chiave CMEK in uso.

Limitazioni

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