Panoramica delle chiavi di crittografia gestite dal cliente (CMEK)

Per impostazione predefinita, Spanner cripta i contenuti dei clienti riposo. Spanner gestisce la crittografia per te senza alcuna azione aggiuntiva sul tuo . 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 Spanner. L'utilizzo delle chiavi Cloud KMS consente di controllare la protezione livello, posizione, pianificazione della rotazione, autorizzazioni di utilizzo e accesso e confini crittografici. L'utilizzo di Cloud KMS ti consente inoltre di monitorare l'utilizzo delle chiavi, visualizzare i log di controllo e controllare i cicli di vita delle chiavi. Invece di lasciare che sia Google a controllare e gestire la simmetria chiavi di crittografia delle chiavi (KEK) che proteggono i dati, sei tu a controllare e gestire queste chiavi in Cloud KMS.

Dopo aver configurato le risorse con le CMEK, l'esperienza di accesso L'utilizzo delle risorse Spanner è simile all'utilizzo della crittografia predefinita di Google. Per ulteriori informazioni sulla crittografia vedi Chiavi di crittografia gestite dal cliente (CMEK).

Impossibile utilizzare le CMEK per istanza personalizzata configurazioni.

CMEK con Cloud KMS Autokey

Puoi creare manualmente CMEK per proteggere il tuo Spanner o usare Cloud KMS Autokey. Con Autokey, i keyring e le chiavi vengono generati on demand nell'ambito della creazione delle risorse in Spanner. Gli agenti di servizio che utilizzano le chiavi per le operazioni di crittografia e decriptazione vengono creati se non utilizzano queste chiavi esistono già e dispongono dei ruoli Identity and Access Management (IAM) richiesti. Per ulteriori informazioni informazioni, consulta la Panoramica di Autokey.

Spanner è compatibile solo con Cloud KMS Autokey quando e la creazione di risorse usando Terraform o l'API REST.

Per scoprire come utilizzare le chiavi CMEK create manualmente per proteggere le risorse Spanner, consulta Proteggere un database con chiavi di crittografia gestite dal cliente (CMEK).

Per utilizzare le CMEK create da Cloud KMS Autokey per proteggere le tue risorse Spanner, segui i passaggi forniti per Secret Manager in Using Autokey with Risorse di Secret Manager come esempio.

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 alcuni partner esterni per la gestione delle chiavi, puoi approvare o rifiutare automaticamente queste richieste in base alla 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, consulta la pagina Prezzi di Spanner.

Cloud KMS ti addebita sia il costo della chiave sia eventuali operazioni di crittografia su quella chiave (ogni volta che Spanner utilizza la chiave per la crittografia/decrittografia). Prevediamo che questi costi siano minimi in base al numero previsto di operazioni di crittografia 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 archiviati su disco o su 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

Attivare 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 devono 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. Per alcune operazioni, come la disattivazione o la distruzione di una chiave, possono essere necessarie fino a 3 ore per la propagazione; le modifiche alle autorizzazioni di solito vengono propagate molto più rapidamente.

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 la chiave disabilitata sia stata riattivata, Cloud KMS ripristina l'accesso automaticamente il database Spanner.

Come viene gestito uno stato di una chiave non disponibile

In rari casi, 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 a Cloud KMS, inizia a mettere il database offline come misura di protezione. 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 le operazioni complete del database utilizzando una versione memorizzata nella cache della chiave per un massimo di 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 avranno esito negativo con un errore FAILED_PRECONDITION: External key error: Could not find a key resource at the key URI.

Consulta la documentazione di Cloud External Key Manager per ulteriori considerazioni sull'utilizzo delle chiavi esterne.

Backup e ripristino

I backups 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 la stessa configurazione di crittografia del database, ma puoi eseguire l'override di questo comportamento specificando una configurazione di crittografia diversa 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 restore 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:

  • Richiede 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.