Chiavi di crittografia gestite dal cliente (CMEK)

Per impostazione predefinita, tutti i dati at-rest in Google Cloud, inclusi i dati in Cloud Spanner, sono protetti tramite la crittografia predefinita gestita da Google. Google Cloud gestisce e gestisce questa crittografia predefinita senza alcun intervento aggiuntivo da parte tua.

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 Cloud Spanner. Anziché gestire le chiavi di crittografia che proteggono i tuoi dati, il database Cloud Spanner è protetto tramite una chiave che puoi controllare e gestire in KMS (Cloud Key Management Service). Può essere una chiave simmetrica, una chiave Cloud HSM o una chiave di Cloud Key Manager esterna.

In questa pagina viene descritta la CMEK per Cloud Spanner. Per ulteriori informazioni sulla CMEK in generale, compresi quando e perché attivarla, 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 inattivi in Cloud Spanner.
  • Auditability: se attivi l'audit logging per l'API Cloud KMS nel progetto, tutte le azioni sulla chiave, incluse quelle eseguite da Cloud Spanner, vengono registrate e visibili in Cloud Logging. Le chiavi Cloud EKM supportano Key Access Justification, che aggiunge un campo di giustificazione a tutte le richieste chiave. Con partner di gestione delle chiavi esterni, puoi approvare o rifiutare automaticamente queste richieste in base alla motivazione.
  • Prestazioni:non sono state apportate modifiche alle prestazioni di Cloud Spanner o all'accordo sul livello del servizio.

Prezzi

Cloud Spanner fattura i database abilitati per CMEK come qualsiasi altro database; non sono previsti costi aggiuntivi per Cloud Spanner. Per ulteriori informazioni, consulta i prezzi di Cloud Spanner.

Il costo del token ti verrà addebitato sia da Cloud KMS sia dalle operazioni crittografiche della chiave (ogni volta che Cloud Spanner utilizza la chiave per la crittografia/decriptazione). Ci aspettiamo che questi costi siano minimi in base al numero previsto di operazioni crittografiche generate da Cloud Spanner. Per ulteriori informazioni, consulta la pagina dei prezzi di Cloud KMS.

Cosa viene protetto con CMEK

In un database abilitato per CMEK, Cloud Spanner utilizza la tua chiave Cloud KMS per proteggere i dati inattivi. Sono inclusi i dati memorizzati in un database archiviato su disco o Flash.

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

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

In Cloud Spanner esistono tre livelli di crittografia. I dati inattivi 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 con una chiave di crittografia della chiave (KEK, o "avvolgita" da). Infine, ogni KEK è criptata con la chiave di crittografia gestita dal cliente.

Quando esegui la rotazione della chiave CMEK, Cloud Spanner esegue nuovamente la crittografia 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 Cloud Spanner, devi creare un nuovo database e specificare la chiave Cloud KMS al momento della creazione del database.

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

Per istruzioni dettagliate, consulta la sezione Utilizzare CMEK.

Le API di accesso ai dati di Cloud Spanner, come quelle utilizzate per gestire le sessioni ed eseguire transazioni sui dati, sono esattamente le stesse sia per i database abilitati per CMEK sia per i database gestiti da Google. Non è necessario specificare chiavi o configurazioni di crittografia per le applicazioni durante la lettura o la scrittura di dati. La crittografia viene gestita da tutto il servizio.

Gestisci chiavi

Le operazioni di gestione delle chiavi vengono eseguite utilizzando Cloud KMS. Cloud Spanner non è in grado di rilevare o modificare eventuali modifiche delle chiavi finché non vengono propagate da Cloud KMS. Alcune operazioni, come la disattivazione o l'eliminazione di una chiave, possono richiedere fino a 3 ore per propagarsi; le modifiche alle autorizzazioni di solito vengono propagate molto più velocemente.

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

Se Cloud Spanner rileva che la chiave Cloud KMS è stata disabilitata o eliminata, un'operazione per rendere il database inaccessibile inizia immediatamente. Le 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.

Modalità di gestione dello stato di una 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 attiva nel momento in cui Cloud Spanner non riesce a comunicare con Cloud KMS per la prima volta, Cloud Spanner continua a supportare le operazioni complete del database secondo il miglior tentativo per un periodo di massimo un'ora, in modo da ridurre al minimo l'impatto di tali incidenti sul tuo carico di lavoro.

Dopo un'ora, se Cloud Spanner non riesce ancora a connettersi a Cloud KMS, Cloud Spanner inizia a disattivare il database come misura di protezione. I dati nel 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 riesce a comunicare per la prima volta con Cloud KMS, il database rimane inaccessibile finché non riesce a riconnettersi a Cloud KMS e non viene riattivata la chiave.

Considerazioni fondamentali sulle chiavi esterne

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

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

Dopo un'ora, se Cloud Spanner non è ancora in grado di connettersi con Cloud KMS, Cloud Spanner inizia a disattivare il database come misura di protezione. 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.

Consulta la documentazione di Cloud External Key Manager per ulteriori considerazioni quando utilizzi le chiavi esterne.

Backup e ripristino

I backup di Cloud Spanner, come i database, possono essere protetti da CMEK o dalla crittografia gestita 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, è criptato con la versione principale della chiave KMS al momento della creazione del backup. Dopo aver creato il backup, non è possibile modificare la chiave e la versione della chiave, anche se la chiave KMS è ruotata. Per ulteriori informazioni, vedi Backup di un database.

Quando ripristini un database da un backup, per impostazione predefinita, il database ripristinato utilizza la stessa configurazione della crittografia del backup. Puoi ignorare questo comportamento specificando una configurazione di crittografia diversa durante il ripristino del database. Per ripristinare un backup abilitato per CMEK, devono essere disponibili sia la versione della chiave che la versione della chiave utilizzata per criptare il backup. Per scoprire di più, vedi Ripristino da un backup.

Logging

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

Richiedi o limita CMEK all'interno dell'organizzazione

Puoi impostare criteri a livello di organizzazione per l'utilizzo della protezione CMEK in vari prodotti Google Cloud, incluso Cloud Spanner. Con questi criteri puoi:

  • Richiedi che i nuovi database Cloud 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.