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 altre 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 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
Senza CMEK
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 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 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 non è disponibile una chiave gestita esternamente, 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 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.