Informazioni sulle chiavi di crittografia gestite dal cliente (CMEK)

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Per impostazione predefinita, tutti i dati at-rest in Google Cloud, inclusi i dati in Spanner, sono protetti utilizzando la crittografia predefinita gestita da Google. Google Cloud gestisce questa crittografia predefinita per conto tuo senza che tu debba fare altro.

Se hai requisiti di conformità o normativi specifici relativi alle chiavi che proteggono i tuoi dati, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per Spanner. Invece di gestire le chiavi di crittografia che proteggono i tuoi dati, il database Spanner è protetto utilizzando una chiave che puoi controllare e gestire in Cloud Key Management Service (KMS). Può essere una chiave simmetrica, una chiave Cloud HSM o una chiave Cloud External Key Manager.

Le CMEK non supportano le configurazioni di istanze personalizzate.

Questa pagina descrive CMEK per Spanner. Per ulteriori informazioni su CMEK in generale, inclusi quando e perché abilitarla, consulta la documentazione di Cloud KMS.

Funzionalità

  • Controllo dell'accesso ai dati:gli amministratori possono ruotare, gestire l'accesso e disattivare o eliminare la chiave utilizzata per proteggere i dati at-rest in Cloud Spanner.
  • Verificabilità: se abiliti l'audit logging per l'API Cloud KMS nel tuo progetto, tutte le azioni sulla chiave, incluse quelle eseguite da Spanner, vengono registrate e visualizzate in Cloud Logging. Le chiavi Cloud EKM supportano Key Access Justification, che aggiunge un campo di giustificazione a tutte le richieste chiave. Con determinati partner esterni per la gestione delle chiavi, puoi approvare o rifiutare automaticamente queste richieste in base alla giustificazione.
  • Prestazioni: non sono state apportate modifiche alle prestazioni di Spanner o all'accordo sul livello del servizio.

Prezzi

Spanner fattura i database abilitati CMEK come qualsiasi altro database; non sono previsti costi Spanner aggiuntivi. Per ulteriori informazioni, consulta la pagina relativa ai prezzi di Spanner.

Ti viene addebitato da Cloud KMS il costo della chiave e le eventuali operazioni di crittografia di tale 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 crittografiche generate da Spanner. 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 dalla crittografia at-rest predefinita di Google e non dalla chiave CMEK:

  • Un sottoinsieme di chiavi di riga che contrassegnano limiti di intervallo
  • Eseguire il debug dei dati, inclusi i core di dump e i log operativi
  • 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 singolo blocco viene criptato a livello di archiviazione con una chiave crittografica individuale. La chiave utilizzata per criptare i dati in un blocco è denominata chiave di crittografia dei dati (DEK, Data Encryption Key). A causa dell'elevato volume di chiavi utilizzate da Google e della necessità di mantenere una bassa latenza e un'alta disponibilità, queste chiavi vengono archiviate vicino ai dati che devono criptare. Le DEK sono a loro volta criptate (o sottoposte a wrapping) da una chiave di crittografia delle chiavi (KEK). Infine, ogni KEK è criptata con la tua chiave di crittografia gestita dal cliente.

Quando ruoti la chiave CMEK, Spanner cripta di nuovo solo le KEK intermedie con la versione principale più recente della chiave CMEK. Al termine della nuova crittografia, la disattivazione o l'eliminazione delle versioni precedenti della chiave CMEK non disattiverà l'accesso al database. Puoi anche visualizzare le versioni della chiave utilizzate per proteggere un database.

Con CMEK

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

Senza CMEK

Diagramma che illustra la crittografia con una chiave di crittografia gestita da Google

Abilita CMEK

Per utilizzare CMEK per i database Spanner, devi creare un nuovo database e specificare la chiave Cloud KMS al momento della creazione del database.

Spanner è in grado di accedere per la chiave per tuo conto dopo aver concesso il ruolo Crittografia/Decriptazione CryptoKey Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) a un account di servizio Spanner gestito da Google.

Per istruzioni dettagliate, consulta l'articolo su come utilizzare CMEK.

Le API di accesso ai dati di Cloud Spanner, ad esempio quelle utilizzate per gestire le sessioni ed eseguire transazioni sui dati, sono esattamente le stesse per le chiavi gestite dal cliente e da Google. Le applicazioni non devono specificare chiavi o configurazioni di crittografia durante la lettura o la scrittura di dati. L'intera crittografia è gestita dal servizio.

Gestisci chiavi

Le operazioni di gestione delle chiavi vengono eseguite utilizzando Cloud KMS. Cloud Spanner non può rilevare alcuna azione chiave e non può intervenire finché non viene propagato da Cloud KMS. Alcune operazioni, come la disattivazione o l'eliminazione di una chiave, possono richiedere fino a 3 ore. La modifica delle autorizzazioni in genere si propaga molto più velocemente.

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

Se Cloud Spanner rileva che la chiave di Cloud KMS è stata disabilitata o eliminata, viene immediatamente avviata un'operazione per rendere inaccessibile il tuo database. Eventuali chiamate successive al database, incluse sessioni, letture e scritture, restituiranno un errore FAILED_PRECONDITION: KMS key required by the Spanner resource is not accessible.

Se le chiamate di Cloud Spanner a Cloud KMS rilevano che una chiave precedentemente disabilitata è stata riattivata, Cloud KMS ripristina automaticamente l'accesso al database Cloud Spanner.

Come viene gestito uno stato di chiave non disponibile

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

Se il tuo database Cloud Spanner è protetto da una chiave abilitata nel momento in cui Cloud Spanner non è in grado di comunicare con Cloud KMS, continua a supportare le operazioni di database complete nel miglior modo possibile per un periodo di massimo un'ora, per ridurre al minimo l'impatto di qualsiasi incidente di questo tipo sul tuo carico di lavoro.

Trascorso un'ora, se Cloud Spanner non riesce ancora a connettersi a Cloud KMS, inizia a utilizzare il database offline come misura di protezione. I dati del database Cloud Spanner rimangono inaccessibili finché il database non riesce a riconnettersi con Cloud KMS e Cloud KMS risponde che la chiave è attiva.

Al contrario, se il database Cloud Spanner è protetto da una chiave disabilitata nel momento in cui Cloud Spanner non è in grado di comunicare con Cloud KMS, il database rimane inaccessibile finché non riesce a riconnettersi a Cloud KMS e non viene riattivata la chiave.

Considerazioni principali sulle chiavi esterne

Quando utilizzi una chiave Cloud EKM, Google non ha alcun controllo sulla disponibilità della chiave gestita esternamente nel sistema di partner di gestione delle chiavi esterne.

Se una chiave gestita esternamente non è disponibile, Cloud Spanner continua a supportare le operazioni complete del database utilizzando una versione della chiave memorizzata nella cache, per un massimo di un'ora.

Dopo un'ora, se Cloud Spanner non è ancora in grado di connettersi a Cloud KMS, Cloud Spanner inizia a rendere offline il database come misura di protezione. Le chiamate al database non riusciranno 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 quando utilizzi le chiavi esterne.

Backup e ripristino

I backup di Spanner, come i database, possono essere protetti dalla crittografia gestita da CMEK o da Google. Per impostazione predefinita, un backup utilizza la stessa configurazione della crittografia del suo database, ma puoi ignorare questo comportamento specificando una configurazione di crittografia diversa quando crei il backup. Se il backup è abilitato per CMEK, viene criptato utilizzando la versione principale della chiave KMS al momento della creazione del backup. Una volta creato il backup, le chiavi e la versione della chiave non possono essere modificate, anche se la chiave KMS viene ruotata. Per ulteriori informazioni, consulta la pagina relativa al backup di un database.

Quando ripristini un database da un backup, per impostazione predefinita il database ripristinato utilizza la stessa configurazione di crittografia del backup. Puoi ignorare questo comportamento specificando una configurazione di crittografia diversa quando ripristini il database. Per ripristinare un backup abilitato per CMEK, devi disporre della versione della chiave e della chiave utilizzate per criptare il backup. Per maggiori informazioni, consulta Ripristino da un backup.

Logging

Puoi controllare le richieste che Spanner invia a Cloud KMS per tuo conto in Cloud Logging, se hai attivato l'audit logging per l'API Cloud KMS nel tuo progetto. Queste voci del log di Cloud KMS sono visibili in Cloud Logging.

Richiedi o limita CMEK all'interno della tua organizzazione

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

  • Richiedi che i nuovi database Spanner creati dalla tua organizzazione utilizzino la protezione CMEK.

  • Limita le chiavi Cloud KMS della tua organizzazione disponibili per la protezione CMEK.

Per maggiori informazioni, consulta i criteri dell'organizzazione CMEK.