Panoramica delle chiavi di crittografia gestite dal cliente (CMEK)

Questa pagina descrive le chiavi di crittografia gestite dal cliente (CMEK) per Spanner. Per ulteriori informazioni su CMEK in generale, incluso quando e perché attivarlo, consulta la documentazione di Cloud KMS.

Per impostazione predefinita, Spanner cripta i contenuti inattivi dei clienti. Spanner gestisce la crittografia per te senza alcuna azione aggiuntiva sul tuo parte. 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 ti consente di controllare il loro livello di protezione, la posizione, la pianificazione della rotazione, le autorizzazioni di utilizzo e accesso e i confini di crittografia. L'utilizzo di Cloud KMS consente inoltre puoi monitorare l'utilizzo delle chiavi, visualizzare i log di controllo e e controllare i cicli di vita chiave. 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 chiavi CMEK, l'esperienza di accesso alle risorse Spanner è simile all'utilizzo della crittografia predefinita di Google. Per ulteriori informazioni sulla crittografia vedi Chiavi di crittografia gestite dal cliente (CMEK).

Per scoprire come utilizzare le chiavi CMEK create manualmente per proteggere le risorse Spanner, consulta Proteggere un database con CMEK.

CMEK con Cloud KMS Autokey

Puoi creare CMEK manualmente per proteggere le risorse Spanner o utilizzare Cloud KMS Autokey. Con Autokey, i keyring e le chiavi vengono generati on demand come della creazione delle risorse in Spanner. Gli agenti di servizio che utilizzano le chiavi per le operazioni di crittografia e decrittografia vengono creati se non esistono già e vengono concessi i ruoli IAM (Identity and Access Management) richiesti. Per maggiori 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. Non puoi utilizzare Cloud KMS Autokey per creare più a livello di regione (una singola regione) Chiavi Cloud KMS per un database Spanner.

Per utilizzare le chiavi CMEK create da Cloud KMS Autokey per proteggere le risorse Spanner, segui come esempio i passaggi forniti per Secret Manager in Utilizzare Autokey con le risorse Secret Manager.

Funzionalità

Prezzi

Spanner fattura i database abilitati per CMEK come qualsiasi altro per configurare un database. Non sono previsti costi aggiuntivi per Spanner per l'abilitazione tramite CMEK. Per ulteriori informazioni, consulta la sezione 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 ulteriori informazioni, consulta i prezzi di Cloud KMS.

Cosa è protetto con CMEK

In un database abilitato per CMEK, Spanner utilizza il tuo Cloud KMS per proteggere i dati at-rest. Sono inclusi i dati di un database archiviati 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 confini 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 criptate a loro volta da una chiave di crittografia della chiave (KEK). Infine, ogni La KEK è criptata con la tua CMEK.

Quando roti la chiave CMEK, Spanner riecripta 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 disattiva l'accesso al database. Puoi anche visualizzare le versioni delle chiavi utilizzate per difendere un database.

Con CMEK

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

Senza CMEK

Diagramma che illustra 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 al momento della creazione del database. Spanner può accedere alla chiave per tuo conto dopo che hai concesso il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) a un account di servizio Spanner gestito da Google. Per istruzioni dettagliate, vedi Proteggere un database con 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 CMEK e gestite da Google. Le applicazioni non devono specificare chiavi o configurazioni di crittografia per leggere o scrivere 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 applicare modifiche alle chiavi finché non vengono propagate da Cloud KMS. Per alcune operazioni, come la disattivazione o la distruzione di una chiave, possono essere necessarie fino a tre ore per la propagazione; le modifiche alle autorizzazioni di solito vengono propagate molto più rapidamente.

Dopo aver creato il database, Spanner chiama Cloud KMS circa ogni cinque minuti per assicurarsi che la chiave sia ancora valida.

Se Spanner rileva che la chiave Cloud KMS è stata disabilitato o eliminato, inizia un'operazione per rendere inaccessibile il database immediatamente. Eventuali chiamate successive al database, tra cui sessioni, letture e scritture, restituiscono 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 chiave precedentemente disattivata è stata riattivata, Cloud KMS ripristina automaticamente l'accesso al database Spanner.

Inoltre, se un database è protetto da più chiavi regionali e da tutte le chiavi sono disabilitati o eliminati, Spanner avvia immediatamente rendere il database inaccessibile. Se Spanner rileva che solo di chiavi del database viene disabilitato o eliminato, quindi disabilita per un periodo di tempo di 12 ore. La disattivazione o l'eliminazione di solo un insieme di chiavi in un database compatibile con CMEK è vivamente sconsigliata e potrebbe comportare un comportamento incerto. Per evitare che ciò accada, puoi utilizzare la metrica Chiave CMEK di Spanner (instance/replica/cmek/total_keys) per attivare un avviso se un sottoinsieme di chiavi viene disattivato o distrutto. Per saperne di più, consulta Creare un avviso per la disattivazione di un sottoinsieme di CMEK.

Crea un avviso per la disattivazione di un sottoinsieme di CMEK

Puoi utilizzare la metrica Chiavi CMEK Spanner (/instance/replica/cmek/total_keys) per attivare un avviso se un sottoinsieme di CMEK viene disattivato o distrutto. Per creare questo criterio di avviso, espandi i seguenti passaggi e le seguenti impostazioni:

Impostazioni per il criterio di avviso CMEK.

Campo Nuova condizione

Valore
Risorsa e metrica Nel menu Risorse, seleziona Istanza Spanner.
Nel menu Categorie di metriche, seleziona Istanza.
Nel menu Metriche, seleziona Chiavi CMEK.

(metric.type è spanner.googleapis.com/instance/replica/cmek/total_keys).
Filtro instance_id = INSTANCE_ID
is_key_revoked = TRUE
Tra serie temporali
Raggruppa serie temporali per
database
Nelle serie temporali
Aggregazione di serie temporali
sum
Finestra scorrevole 10 m
Funzione finestra temporale continua mean
Campo Configura trigger avviso

Valore
Tipo di condizione Threshold
Trigger di avviso Any time series violates
Posizione soglia Above threshold
Soglia 0
Finestra di nuovo test 1 hr
Campo Nuova condizione

Valore
Risorsa e metrica Nel menu Risorse, seleziona Istanza Spanner.
Nel menu Categorie di metriche, seleziona Istanza.
Nel menu Metriche, seleziona Chiavi CMEK.

(metric.type è spanner.googleapis.com/instance/replica/cmek/total_keys).
Filtro instance_id = INSTANCE_ID
is_key_revoked = FALSE
Tra serie temporali
Raggruppa serie temporali per
database
Nelle serie temporali
Aggregazione di serie temporali
sum
Finestra scorrevole 10 m
Funzione finestra temporale continua mean
Campo Configura trigger avviso

Valore
Tipo di condizione Threshold
Trigger di avviso Any time series violates
Posizione soglia Above threshold
Soglia 0
Finestra di ripetizione test 1 hr
Campo Configura trigger avviso

Valore
Trigger per più condizioni All conditions are met

Dopo aver creato l'avviso, se Spanner rileva che un sottoinsieme di CMEK è stato disattivato, nella tabella Incidenti della pagina Dettagli criteri dell'avviso viene visualizzato un elemento di riepilogo degli incidenti. Puoi anche configurare canali di notifica facoltativi. Per ulteriori informazioni, vedi Creare e gestire i canali di notifica.

Come viene gestito lo 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 la chiave da Cloud KMS.

Se il database Spanner è protetto da una chiave abilitata al momento in cui Spanner non è in grado di comunicare per la prima volta con Cloud KMS, Spanner continua a supportare le operazioni complete del database secondo il criterio del "best effort" per un periodo massimo di un'ora, per ridurre al minimo l'impatto di questo tipo di incidente sul tuo carico di lavoro. Dopo un'ora, se Spanner non riesce ancora a connettersi a Cloud KMS, inizia a mettere offline il database come misura di protezione. I dati nel database Spanner rimangono inaccessibili fino a quando il database non riesce a ricollegarsi a Cloud KMS e Cloud KMS risponde che la chiave è attiva.

Al contrario, se il database Spanner è protetto da una chiave che è disabilitata nel momento in cui Spanner non riesce a comunicare con Cloud KMS, il tuo database rimane inaccessibile finché possa riconnettersi a Cloud KMS e tu hai abilitato di nuovo la chiave.

Se usi più chiavi regionali per proteggere uno Spanner solo le repliche protette da una chiave che si trova nel Cloud KMS a livello di regione non disponibile è interessato dall'indisponibilità.

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 non riesce ancora connettersi a Cloud KMS, Spanner inizia a prendere come misura protettiva. Le chiamate al database non andranno a buon fine con un FAILED_PRECONDITION errore: External key error: Could not find a key resource at the key URI.

Se utilizzi più chiavi Cloud EKM per proteggere i tuoi il database Spanner, solo le repliche protette dal sono interessate dall'indisponibilità.

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

Backup e ripristino

Puoi usare CMEK o chiavi di proprietà di Google e gestite da Google per proteggere Spanner backup. Per impostazione predefinita, un backup utilizza la stessa configurazione di crittografia del database, ma puoi sostituire questo comportamento specificando una diversa configurazione di crittografia al momento della creazione del backup. Se il backup è attivato per CMEK, viene criptato utilizzando la versione principale della chiave KMS al momento della creazione del backup. Una volta creato il backup, la chiave e la relativa versione non possono essere modificate, anche se la chiave KMS viene ruotata. Per ulteriori informazioni, consulta la pagina Eseguire il backup di un database.

Quando ripristina 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 durante il ripristino del database. Per ripristinare un backup abilitato per CMEK, devono essere disponibili sia la chiave sia la versione della chiave utilizzata per criptare il backup. Per ulteriori informazioni, consulta Eseguire il ripristino da un backup.

Puoi eseguire operazioni di backup come creazione, copia e ripristino su un criptato con più chiavi regionali.

Tutti i backup creati da pianificazioni dei backup può essere protetto da CMEK o chiavi di proprietà di Google e gestite da Google. Tuttavia, il backup incrementale le pianificazioni possono essere criptate solo con chiavi di proprietà di Google e gestite da Google.

Logging

Puoi controllare le richieste inviate da Spanner a Cloud KMS per tuo conto in Cloud Logging, se hai abilitato la registrazione degli audit 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 della protezione CMEK in vari prodotti Google Cloud, tra cui 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 ulteriori informazioni, vedi Criteri dell'organizzazione CMEK.

Passaggi successivi