Panoramica delle chiavi di crittografia gestite dal cliente (CMEK)

Per impostazione predefinita, tutti i dati at-rest in Google Cloud, inclusi quelli in Spanner è protetto tramite Crittografia predefinita di Google. Google Cloud gestisce e gestisce questa crittografia predefinita per conto tuo senza ulteriori azioni da parte tua.

Se hai requisiti normativi o di conformità specifici relativi alle chiavi che proteggono i tuoi dati, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) Spanner. Invece di lasciare che sia Google a possedere e gestire la crittografia che proteggono i dati, il database Spanner è protetto utilizzando una chiave simmetrica che puoi controllare e gestire in Cloud Key Management Service (Cloud KMS). Può trattarsi di un software o hardware (Cloud HSM) chiave o un esterno (Gestore di chiavi esterne Cloud) chiave.

Le CMEK non supportano le configurazioni di istanze personalizzate.

In questa pagina viene descritta la CMEK per Spanner. Per ulteriori informazioni su CMEK in informazioni generali, incluse informazioni su quando e perché attivarla, consulta le Documentazione di Cloud KMS.

Funzionalità

  • Controllo dell'accesso ai dati: gli amministratori possono ruotare, gestire l'accesso e disabilita o elimina la chiave utilizzata per proteggere i dati at-rest in Spanner.
  • Verificabilità: se abilitare i log di controllo per l'API Cloud KMS nel progetto, tutte le azioni sulla chiave, incluse quelle eseguite da Spanner, vengono registrate e sono visibili Cloud Logging. Supporto delle chiavi Cloud EKM Key Access Justification, che aggiunge un parametro giustificazione a tutte le richieste chiave. Con una selezione di gestione delle chiavi esterne partner, puoi approvare o rifiutare automaticamente queste richieste, in base al una giustificazione.
  • Prestazioni: non vengono apportate modifiche alle prestazioni di Spanner o al l'accordo sul livello del servizio.

Prezzi

Spanner fattura i database abilitati per CMEK come qualsiasi altro database; lì non sono previsti costi aggiuntivi per Spanner. Per ulteriori informazioni, vedi Prezzi di Spanner.

Cloud KMS prevede la fatturazione sia per il costo della chiave che per le operazioni crittografiche su quella chiave (ogni volta che Spanner utilizza la chiave la crittografia/decrittografia). Ci aspettiamo che questi costi siano minimi in base alla il numero previsto di operazioni crittografiche generate da Spanner. Per Per ulteriori informazioni, consulta i prezzi di Cloud KMS.

Cosa è protetto con CMEK

In un database abilitato per CMEK, Spanner utilizza la chiave Cloud KMS per proteggere i dati at-rest. Sono inclusi i dati di un database archiviato su disco o flash.

Si applicano alcune eccezioni. I seguenti tipi di dati sono protetti da Google crittografia at-rest predefinita e non mediante la chiave CMEK:

  • Un sottoinsieme di chiavi di riga che contrassegnano i limiti dell'intervallo
  • Dati di debug, inclusi log operativi e dump principali
  • Dati in transito o in memoria
  • Metadati del database

In Spanner ci sono tre livelli di crittografia. I dati at-rest sono suddivisi in blocchi di sottofile per l'archiviazione e ogni e vengono criptati a livello di archiviazione con una chiave di crittografia individuale. La chiave utilizzata per criptare i dati in un blocco si chiama chiave di crittografia dei dati (DEK, Data Encryption Key). A causa di l'elevato volume di chiavi di Google e la necessità di una bassa latenza disponibili, queste chiavi vengono archiviate vicino ai dati che devono criptare. Le DEK Sono criptati da una chiave di crittografia della chiave (KEK, Key Encryption Key). Infine, ogni Le chiavi KEK sono criptate con la tua chiave di crittografia gestita dal cliente.

Quando ruota la chiave CMEK, Spanner ricripta solo le KEK intermedie con l'ultima versione primaria della chiave CMEK. Una volta la ricrittografia viene completata, disabilitando o eliminando le versioni precedenti della chiave CMEK non disabiliterà l'accesso al database. Puoi anche visualizzare le versioni delle chiavi utilizzate per e proteggere un database.

Con CMEK

Diagramma che mostra la crittografia con una chiave di crittografia gestita dal cliente

Senza CMEK

Diagramma che mostra la crittografia con una chiave di proprietà di Google e gestita da Google

Attiva CMEK

Per utilizzare CMEK per database Spanner, devi creare un nuovo database e specificare la chiave Cloud KMS nel momento creazione di un database.

Spanner può accedere alla chiave per tuo conto dopo aver concesso la Autore crittografia/decrittografia CryptoKey Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) a un ruolo gestito da Google Account di servizio Spanner.

Per istruzioni dettagliate, consulta Utilizzo di CMEK.

API di accesso ai dati di Spanner come quelle utilizzate per gestire le sessioni ed eseguire transazioni sui dati, sono esattamente le stesse per le chiavi gestite dal cliente e per le chiavi di proprietà di Google e gestite da Google. Le applicazioni non hanno bisogno di specificare chiavi o configurazioni di crittografia durante la lettura o la scrittura dei dati. Tutta la crittografia è gestita dal servizio.

Gestisci chiavi

Le operazioni di gestione delle chiavi vengono eseguite utilizzando Cloud KMS. Spanner non può rilevare o agire su alcuna modifica chiave finché non vengono propagati da Cloud KMS. Alcune operazioni, come la disattivazione l'eliminazione di una chiave, la propagazione può richiedere fino a tre ore; le modifiche alle autorizzazioni di solito si propagano molto più velocemente.

Una volta creato il database, Spanner chiama Cloud KMS per ogni 5 minuti per verificare che la chiave sia ancora valida.

Se Spanner rileva che la chiave Cloud KMS è stata disabilitata o eliminata, inizia un'operazione per rendere inaccessibile il database immediatamente. Qualsiasi chiamata successiva al database, tra cui sessioni, letture, e scrive, restituirà un errore FAILED_PRECONDITION: KMS key required by the Spanner resource is not accessible.

Se le chiamate di Spanner a Cloud KMS rilevano che una richiesta in precedenza disabilitata, Cloud KMS ripristina l'accesso automaticamente il database Spanner.

Come viene gestito uno stato di una chiave non disponibile

In rari scenari, ad esempio durante periodi in cui Cloud KMS viene non disponibile, Spanner potrebbe non essere in grado di recuperare lo stato della chiave da Cloud KMS.

Se il database Spanner è protetto da una chiave abilitata a livello momento in cui Spanner non riesce a comunicare per la prima volta Cloud KMS, Spanner continua a supportare il database completo operativo secondo il criterio del "best effort" per un periodo massimo di un'ora, in modo da l'impatto di tali incidenti sul carico di lavoro.

Dopo un'ora, se Spanner non riesce ancora a connettersi Cloud KMS, Spanner inizia a prendere il database offline come misura protettiva. I dati contenuti nel database Spanner rimane inaccessibile finché il database non si riconnette con Cloud KMS e Cloud KMS risponde che la chiave è attiva.

Al contrario, se il database Spanner è protetto da una chiave è disabilitata nel momento in cui Spanner non è in grado di comunicare per la prima volta con Cloud KMS, il database rimane inaccessibile finché non viene eseguito riconnettiti a Cloud KMS e hai riattivato la chiave.

Considerazioni chiave esterne

Quando utilizzi una chiave Cloud EKM, Google non ha alcun controllo sulle la disponibilità della chiave gestita esternamente. e il sistema partner di Google.

Se una chiave gestita esternamente non è disponibile, Spanner continua a supportare operazioni di database complete utilizzando una versione della chiave memorizzata nella cache, ad fino a un'ora.

Dopo un'ora, se Spanner è ancora non riesce a connettersi a Cloud KMS, Spanner inizia a eseguire come misura protettiva. Le chiamate al database non andranno a buon fine con un errore FAILED_PRECONDITION: External key error: Could not find a key resource at the key URI.

Per ulteriori informazioni, consulta la documentazione di Cloud External Key Manager considerazioni sull'uso di chiavi esterne.

Backup e ripristino

I backup di Spanner, come i database, possono essere protette da CMEK o chiavi di proprietà di Google e gestite da Google. Per impostazione predefinita, un backup utilizza uguale configurazione della crittografia come database, ma puoi ignorare questo comportamento specificando un valore durante la creazione del backup. Se il backup è abilitato per CMEK, viene criptato utilizzando la versione primaria della chiave KMS nel data e ora di creazione del backup. Una volta creato il backup, la relativa chiave e versione della chiave anche se la chiave KMS viene ruotata. Per ulteriori informazioni, vedi Backup di un database.

Quando ripristini un database da un backup, per predefinito, il database ripristinato utilizza lo stesso configurazione della crittografia come backup. Puoi ignorare questo comportamento specificando un valore durante il ripristino del database. Per ripristinare una CMEK abilitata backup, sia la chiave che la versione della chiave utilizzate per criptare il backup devono essere disponibili. Per ulteriori informazioni, vedi Ripristino da un backup.

Logging

Puoi controllare le richieste che Spanner invia a Cloud KMS per conto tuo in Cloud Logging, se disponi abilitato i log di controllo per l'API Cloud KMS nel tuo progetto. Questi Le voci di log di Cloud KMS sono visibili in Cloud Logging.

Richiedi o limita CMEK all'interno dell'organizzazione

Puoi impostare criteri a livello di organizzazione relativi all'utilizzo di CMEK in vari prodotti Google Cloud, tra cui: Spanner. Con queste norme puoi:

  • Richiedi il nuovo Spanner e i database creati dalla tua organizzazione usano la protezione CMEK.

  • Limita le chiavi Cloud KMS dell'organizzazione che vengono disponibili per la protezione CMEK.

Per ulteriori informazioni, vedi Criteri dell'organizzazione CMEK.