Questa pagina descrive le chiavi di crittografia gestite dal cliente (CMEK) per Spanner. Per saperne di più sulla CMEK in generale, incluso quando e perché attivarla, consulta la documentazione di Cloud KMS.
Per impostazione predefinita, Spanner cripta i contenuti inattivi dei clienti. Spanner gestisce la crittografia per conto tuo senza che tu debba fare altro. 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 livello di protezione, la località, la pianificazione della rotazione, le autorizzazioni di utilizzo e di accesso e i limiti crittografici. Con Cloud KMS puoi inoltre monitorare l'utilizzo delle chiavi, visualizzare gli audit log e controllare i cicli di vita delle chiavi. Invece di Google, sei tu ad avere la proprietà e la gestione delle chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati. Puoi 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 saperne di più sulle opzioni di crittografia, consulta 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 Autokey di Cloud KMS
Puoi creare le chiavi CMEK manualmente per proteggere le tue risorse Spanner oppure utilizzare Autokey di Cloud KMS. Con Autokey, le chiavi e le chiavi automatizzate vengono generate on demand durante la creazione delle risorse in Spanner. Vengono creati gli agenti di servizio che utilizzano le chiavi per le operazioni di crittografia e decrittografia, se non esistono già, e ricevono i ruoli IAM (Identity and Access Management) richiesti. Per ulteriori informazioni, consulta la panoramica di Autokey.
Spanner è compatibile con Cloud KMS Autokey solo quando crei risorse utilizzando Terraform o l'API REST. Non puoi utilizzare Autokey di Cloud KMS per creare più chiavi Cloud KMS regionali (a singola regione) per un database Spanner.
Per utilizzare le chiavi CMEK create da Autokey di Cloud KMS per proteggere le risorse Spanner, segui i passaggi forniti per Secret Manager in Utilizzo di Autokey con le risorse Secret Manager come esempio.
Funzionalità
- Controllo dell'controllo dell'accesso:gli amministratori possono ruotare, gestire l'accesso e disattivare o eliminare la chiave utilizzata per proteggere i dati at-rest in Spanner.
- Auditabilità:se abiliti Audit Logging per l'API Cloud KMS nel tuo progetto, tutte le azioni sulla chiave, incluse quelle eseguite da Spanner, vengono registrate e sono visualizzabili in Cloud Logging. Le chiavi Cloud EKM supportano Key Access Justifications, che aggiunge un campo di giustificazione a tutte le richieste di chiavi. Con alcuni partner esterni per la gestione delle chiavi, puoi approvare o rifiutare automaticamente queste richieste in base alla giustificazione.
- Rendimento:non vengono apportate modifiche al rendimento o all'accordo sul livello del servizio di Spanner utilizzando CMEK.
- Supporto di più chiavi regionali:puoi creare più chiavi Cloud KMS regionali (a singola regione) per proteggere un database in una configurazione di istanza personalizzata, a due regioni o multiregionale di Spanner.
Prezzi
Spanner fattura i database abilitati per CMEK come qualsiasi altro database. Non sono previsti costi aggiuntivi per Spanner per l'attivazione di CMEK. Per ulteriori informazioni, consulta la pagina Prezzi di Spanner.
Cloud KMS ti addebita sia il costo della chiave sia le 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 maggiori informazioni, consulta la pagina Prezzi di Cloud KMS.
Cosa viene protetto con CMEK
In un database abilitato a CMEK, Spanner utilizza le chiavi Cloud KMS per proteggere i dati at-rest. Sono inclusi i dati di un database archiviati su disco o flash.
Sono previste 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 i limiti dell'intervallo
- Dati di debug, inclusi dump principali e log operativi
- Dati in transito o in memoria
- Metadati del database
In Spanner, esistono 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 di crittografia individuale. La chiave utilizzata per criptare i dati in un blocco è chiamata chiave di crittografia dei dati (DEK). 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 criptate (o sottoposte a wrapping) con una chiave di crittografia della chiave (KEK). Infine, ogni KEK viene criptata con la tua CMEK.
Quando ruoti la chiave CMEK, Spanner ricrittografa solo le KEK intermedie con l'ultima versione principale della chiave CMEK. Al termine della ri-crittografia, la disattivazione o l'eliminazione delle versioni precedenti della chiave CMEK non disabiliterà l'accesso al database. Puoi anche visualizzare le versioni della chiave utilizzate per proteggere un database.
Con CMEK
Senza CMEK
Attivare 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 alla chiave per tuo conto dopo che hai concesso
il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS
(roles/cloudkms.cryptoKeyEncrypterDecrypter
) a un
service account Spanner gestito da Google.
Per istruzioni dettagliate, vedi Proteggere un database con CMEK.
Le API di accesso ai dati di Spanner, come quelle utilizzate per gestire le sessioni ed eseguire transazioni sui dati, sono esattamente le stesse sia per CMEK che per Google-owned and Google-managed encryption keys. Le applicazioni non devono specificare chiavi o configurazioni di crittografia durante la lettura o la scrittura dei dati. Tutta la crittografia viene gestita dal servizio.
Gestisci chiavi
Le operazioni di gestione delle chiavi vengono eseguite utilizzando Cloud KMS. Spanner non può rilevare o agire in base alle modifiche alla chiave finché non vengono propagate da Cloud KMS. Alcune operazioni, come la disattivazione o l'eliminazione di una chiave, possono richiedere fino a tre ore per la propagazione; le modifiche alle autorizzazioni in genere vengono propagate molto più rapidamente.
Dopo la creazione del database, Spanner chiama Cloud KMS circa ogni cinque minuti per assicurarsi che la chiave sia ancora valida.
Se Spanner rileva che la tua chiave Cloud KMS è stata disattivata o eliminata, inizia immediatamente un'operazione per rendere inaccessibile il tuo database. Qualsiasi chiamata successiva al database, incluse sessioni, letture e scritture, restituisce 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 tutte le chiavi
sono disattivate o distrutte, Spanner inizia immediatamente a
rendere inaccessibile il database. Se Spanner rileva che solo un
sottoinsieme delle chiavi del database è disattivato o eliminato, disattiva il
database per un periodo di tempo entro 12 ore. La disattivazione o l'eliminazione solo di un
sottoinsieme di chiavi in un database abilitato per CMEK è fortemente sconsigliata e potrebbe
comportare un comportamento incerto. Per evitare che ciò accada, puoi utilizzare la
metrica Chiavi CMEK Spanner
(instance/replica/cmek/total_keys
) per attivare un avviso se un sottoinsieme di chiavi
è disattivato o eliminato. 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
sono disabilitate o distrutte. Per creare questo criterio di avviso, espandi i seguenti passaggi e
impostazioni:
Impostazioni per la criterio di avviso CMEK.
Nuova condizione Campo |
Valore |
---|---|
Risorsa e metrica | Nel menu Risorse, seleziona Istanza Spanner. Nel menu Categorie di metriche, seleziona Istanza. Nel menu Metriche, seleziona Chiavi CMEK. (The metric.type is spanner.googleapis.com/instance/replica/cmek/total_keys ).
|
Filtro | instance_id = INSTANCE_ID is_key_revoked = TRUE |
Tra le serie temporali Raggruppa serie temporali per |
database |
Tra le serie temporali Aggregazione serie temporali |
sum |
Finestra temporale continua | 10 m |
Funzione finestra temporale continua | mean |
Configura trigger di avviso Campo |
Valore |
---|---|
Tipo di condizione | Threshold |
Trigger avviso | Any time series violates |
Posizione soglia | Above threshold |
Soglia | 0
|
Finestra di ripetizione test | 1 hr |
Nuova condizione Campo |
Valore |
---|---|
Risorsa e metrica | Nel menu Risorse, seleziona Istanza Spanner. Nel menu Categorie di metriche, seleziona Istanza. Nel menu Metriche, seleziona Chiavi CMEK. (The metric.type is spanner.googleapis.com/instance/replica/cmek/total_keys ).
|
Filtro | instance_id = INSTANCE_ID is_key_revoked = FALSE |
Tra le serie temporali Raggruppa serie temporali per |
database |
Tra le serie temporali Aggregazione serie temporali |
sum |
Finestra temporale continua | 10 m |
Funzione finestra temporale continua | mean |
Configura trigger di avviso Campo |
Valore |
---|---|
Tipo di condizione | Threshold |
Trigger avviso | Any time series violates |
Posizione soglia | Above threshold |
Soglia | 0
|
Finestra di ripetizione test | 1 hr |
Configura trigger di avviso Campo |
Valore |
---|---|
Trigger per più condizioni | All conditions are met |
Dopo aver creato l'avviso, se Spanner rileva che un sottoinsieme di CMEK è stato disattivato, viene visualizzato un elemento di riepilogo dell'incidente nella tabella Incidenti nella pagina Dettagli policy dell'avviso. Puoi anche configurare canali di notifica facoltativi. Per saperne di più, consulta la pagina Crea e gestisci canali di notifica.
Come viene gestito uno stato della chiave non disponibile
In rari scenari, ad esempio durante i periodi in cui Cloud KMS non è disponibile, Spanner potrebbe non essere in grado di recuperare lo stato della chiave da Cloud KMS.
Se il tuo database Spanner è protetto da una chiave abilitata nel momento in cui Spanner non riesce più a comunicare con Cloud KMS, Spanner continua a supportare le operazioni complete sul database in base al massimo impegno per un periodo massimo di un'ora, per ridurre al minimo l'impatto di qualsiasi 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 protettiva. I dati nel database Spanner rimangono inaccessibili finché il database non riesce a riconnettersi a Cloud KMS e Cloud KMS non risponde che la chiave è attiva.
Al contrario, se il tuo database Spanner è protetto da una chiave disattivata nel momento in cui Spanner non riesce più a comunicare con Cloud KMS, il database rimane inaccessibile finché non riesce a riconnettersi a Cloud KMS e non hai riattivato la chiave.
Se utilizzi più chiavi regionali per proteggere un database Spanner, solo le repliche protette da una chiave che si trova in Cloud KMS regionale non disponibile sono interessate dalla mancata disponibilità.
Considerazioni sulle chiavi esterne
Quando utilizzi una chiave Cloud EKM, Google non ha alcun controllo sulla disponibilità della chiave gestita esternamente nel sistema del partner di gestione delle chiavi esterne.
Se una chiave gestita esternamente non è disponibile, Spanner continua a
supportare le operazioni complete sul database in base al criterio del "best effort" per un massimo di un'ora.
Dopo un'ora, se Spanner non riesce ancora a connettersi a
Cloud KMS, inizia a mettere offline il database
come misura protettiva. Le chiamate al database non andranno a buon fine e verrà visualizzato un
errore FAILED_PRECONDITION
: External key error: Could not find a key resource
at the key URI.
Se utilizzi più chiavi Cloud EKM per proteggere il tuo database Spanner, solo le repliche protette dalla chiave non disponibile sono interessate dalla mancata disponibilità.
Per ulteriori considerazioni sull'utilizzo di chiavi esterne, consulta la documentazione di Cloud External Key Manager.
Backup e ripristino
Puoi utilizzare CMEK o Google-owned and Google-managed encryption keys per proteggere i backup di Spanner. Per impostazione predefinita, un backup utilizza la stessa configurazione di crittografia del database, ma puoi sostituire questo comportamento specificando una configurazione di crittografia diversa durante la creazione del 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, la chiave e la relativa versione non possono essere modificate, anche se la chiave KMS viene ruotata. Per ulteriori informazioni, vedi Eseguire il 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 sostituire 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 che la versione della chiave utilizzate per criptare il backup. Per ulteriori informazioni, vedi Ripristinare da un backup.
Puoi eseguire operazioni di backup come la creazione, la copia e il ripristino di un database criptato con più chiavi regionali.
Tutti i backup creati dalle pianificazioni di backup possono essere protetti da CMEK o Google-owned and Google-managed encryption keys. Tuttavia, le pianificazioni di backup incrementali possono essere criptate solo utilizzando Google-owned and Google-managed encryption keys.
Partizionamento geografico
Puoi utilizzare CMEK o Google-owned and Google-managed encryption keys per proteggere i database Spanner che utilizzano il partizionamento geografico. Quando utilizzi il partizionamento geografico, devi utilizzare una chiave Cloud KMS regionale per ogni posizione di replica dell'istanza, incluse quelle nella configurazione della partizione dell'istanza. Le chiavi multiregionali non sono supportate. Ogni chiave Cloud KMS regionale deve trovarsi nella stessa regione della replica dell'istanza Spanner o della partizione dell'istanza corrispondente.
Ad esempio, se il tuo database Spanner si trova nella configurazione
dell'istanza multiregionale nam3
, con partizioni dell'istanza situate in
europe-west1
e europe-west2
, devi creare chiavi Cloud KMS
nelle seguenti regioni:
us-east4
(parte dinam3
)us-east1
(parte dinam3
)us-central1
(parte dinam3
)europe-west1
(posizione della partizione dell'istanza)europe-west2
(posizione della partizione dell'istanza)
Per maggiori informazioni, consulta la pagina Proteggere un database con CMEK.
Logging
Puoi controllare le richieste che Spanner invia a Cloud KMS per tuo conto in Cloud Logging, se hai abilitato il controllo degli audit per l'API Cloud KMS nel tuo progetto. Queste voci di log di Cloud KMS sono visibili in Cloud Logging.
Richiedere o limitare CMEK all'interno dell'organizzazione
Puoi impostare criteri a livello di organizzazione in merito all'utilizzo della protezione CMEK in vari prodotti, tra cui Spanner. Google Cloud Con questi criteri 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, consulta Policy dell'organizzazione CMEK.
Passaggi successivi
- Scopri come proteggere un database con CMEK.