Informazioni sulle chiavi di crittografia gestite dal cliente (CMEK)

Questa pagina descrive come funzionano le chiavi di crittografia gestite dal cliente (CMEK) Memorystore for Redis. Per utilizzare subito questa funzionalità, consulta Utilizzo delle chiavi di crittografia gestite dal cliente (CMEK).

CMEK è adatto a me?

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

Confronto tra crittografia gestita da Google e crittografia gestita dal cliente

La funzionalità CMEK ti consente di utilizzare le tue chiavi di crittografia per i dati at-rest Memorystore for Redis. Dopo aver aggiunto le chiavi di crittografia gestite dal cliente, ogni volta che viene eseguita una chiamata API, Memorystore utilizza la tua chiave per accedere ai dati.

Memorystore utilizza chiavi di crittografia dei dati (DEK) e chiavi gestite da Google (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 nel PD e Google gestisce la KEK di Google. Con le chiavi di crittografia gestite dal cliente, crei una chiave che avvolge la 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 vengono gestite tramite l'API Cloud Key Management Service.

I diagrammi riportati di seguito mostrano il funzionamento della 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, poi suddivisi in blocchi e ogni blocco viene criptato con una 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 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, poi 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. Se CMEK 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 si decriptano i dati sottoposti a wrapping con chiavi di crittografia gestite dal cliente, Memorystore utilizza la KEK per decriptare la DEK e le chiavi non criptate DEK per decriptare i dati at-rest.

Blocco di dati criptato con DEK e archiviato con DEK con wrapping. Una richiesta di unwrapping della DEK viene inviata allo spazio di archiviazione KMS, in cui è archiviata la KEK non esportabile. KMS Storage 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 che utilizzi le chiavi di crittografia gestite dal cliente.
Aggiornamento dell'istanza Memorystore controlla la chiave CMEK durante gli aggiornamenti di un'istanza con CMEK abilitato.

Quali dati vengono criptati utilizzando CMEK?

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 che ha 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 alle chiavi da Cloud KMS.

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

Informazioni sulle chiavi

In Cloud KMS, devi creare un portachiavi con una chiave di crittografia che utilizzi un algoritmo di crittografia/decrittografia simmetrica. Quando crei una nuova istanza Memorystore, seleziona questa chiave per criptarla. Puoi creare un progetto sia per le chiavi di Memorystore o di progetti diversi per ciascuno di essi.

CMEK è 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 al lavoro. 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 è in grado di accedere a nessuna versione della chiave attualmente in uso utilizzata (ad esempio se disabiliti la versione della chiave), Memorystore si arresta l'istanza senza ritardi ingiustificati. Nella console Google Cloud, sospesa mostra una descrizione comando con un punto esclamativo rosso in Istanze . Quando passi il mouse sopra la descrizione comando, viene visualizzato il messaggio "Nessun stato". Una volta che la chiave diventa di nuovo accessibile, Memorystore riprende automaticamente l'istanza.

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

Potresti voler 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 chiave.

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

Se vuoi che i tuoi dati rimangano criptati con una chiave gestita dal cliente durante l'importazione o l'esportazione, devi impostare una chiave di crittografia gestita dal cliente sul bucket Cloud Storage esportando i dati al suo interno.

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

Comportamento di distruzione/disattivazione di una versione della chiave CMEK

Se vuoi assicurarti che non sia possibile accedere ai dati dell'istanza, puoi farlo la disabilitazione della versione della chiave primaria della chiave di crittografia gestita dal cliente. Attività quindi arresta l'istanza senza ritardi ingiustificati. Inoltre, Memorystore arresta un'istanza senza ritardi ingiustificati la chiave di crittografia gestita dal cliente in uso è disabilitata/eliminata. Ciò include qualsiasi la versione precedente della chiave è ancora in uso da un'istanza Memorystore. Puoi utilizzare gcloud o la console Google Cloud per verificare se l'istanza è sospesa:

Per la console Google Cloud, se l'istanza è sospesa, viene visualizzata una notifica di tooltip rossa accanto all'istanza nella pagina Istanze di Memorystore for Redis. Quando passi il cursore sopra la descrizione comando, viene visualizzato il messaggio "Nessun stato".

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 de nascosta dopo aver riabilitato/ripristinato una versione della chiave CMEK in uso.

Limitazioni

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

  • Non puoi abilitare le chiavi di crittografia gestite dal cliente su un modello Istanza Memorystore.
  • La regione per la chiave, il portachiavi e l'istanza Memorystore deve essere uguale per tutte.
  • 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.

Criteri 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 delle chiavi CMEK.

  • Se l'API Memorystore for Redis è inclusa nell'elenco dei criteri Deny dei servizi nella vincolo constraints/gcp.restrictNonCmekServices, Memorystore for Redis per le istanze non protette da CMEK.

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

Per saperne di più sulla configurazione dei criteri dell'organizzazione CMEK, consulta Criteri dell'organizzazione CMEK.