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 di Google Cloud, inclusi quelli in Spanner, sono protetti tramite la crittografia predefinita gestita da Google. Google Cloud gestisce questa crittografia predefinita senza che tu debba fare altro.

Se hai esigenze di conformità o normative specifiche relative 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 usando 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 di Cloud Key Manager.

Questa pagina descrive CMEK per Spanner. Per ulteriori informazioni sulla CMEK in generale, inclusi 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 at-rest in Cloud Spanner.
  • Verificabilità: se attivi l'audit logging per l'API Cloud KMS nel tuo progetto, tutte le azioni sulla chiave, incluse quelle eseguite da Spanner, vengono registrate e visibili in Cloud Logging. Le chiavi Cloud EKM supportano Key Access Justification, che aggiunge un campo 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 motivazione.
  • Prestazioni:non sono state apportate modifiche alle prestazioni Spanner o all'accordo sul livello del servizio.

Prezzi

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

Il costo del token e delle eventuali operazioni di crittografia sono addebitati da Cloud KMS (ogni volta che Spanner utilizza la chiave per la crittografia/decriptazione). Prevediamo che i 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 in 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 i confini 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 Spanner, sono presenti 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). 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 wrapping) da una chiave di crittografia delle chiavi (KEK, Key Encryption Key). 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 primaria 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 alla chiave per tuo conto dopo aver concesso il ruolo Criptatrice/decriptatore CryptoKey Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) a un account di servizio Panning gestito da Google.

Per istruzioni dettagliate, consulta l'articolo su come 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. 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 è in grado di rilevare alcuna azione e di non intervenire finché non viene propagata da Cloud KMS. Alcune operazioni, come la disattivazione o l'eliminazione di una chiave, possono richiedere fino a 3 ore per la propagazione; in genere, le modifiche alle autorizzazioni vengono propagate molto più velocemente.

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

Se Cloud Spanner rileva che la tua chiave Cloud KMS è stata disabilitata o eliminata, un'operazione per rendere inaccessibile il database inizia immediatamente. Qualsiasi chiamata successiva al database, incluse sessioni, letture e scritture, restituirà 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 delle chiavi non disponibili

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 riesce a comunicare con Cloud KMS, Cloud Spanner continua a supportare le operazioni di database complete secondo il criterio migliore per un periodo fino a un'ora, per ridurre al minimo l'impatto di tali incidenti sul carico di lavoro.

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. I dati del tuo database Cloud Spanner rimangono inaccessibili finché il database non può riconnettersi a Cloud KMS e Cloud KMS non 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 con Cloud KMS, il tuo database rimane inaccessibile finché non sarà in grado di riconnettersi a Cloud KMS e tu avrai riattivato la chiave.

Considerazioni chiave esterne

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

Se una chiave gestita esternamente non è disponibile, Cloud Spanner continua a supportare le operazioni di database complete utilizzando una versione memorizzata nella cache della chiave, 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 si utilizzano le chiavi esterne.

Backup e ripristino

I backup di Spanner, come i database, possono essere protetti da CMEK o 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 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 creata la copia di backup, la chiave e la versione della chiave non possono essere modificate, anche se la chiave KMS viene ruotata. Per ulteriori informazioni, consulta la sezione 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 quando ripristini il database. Per ripristinare un backup abilitato per CMEK, devono essere disponibili sia la versione della chiave sia la versione della chiave utilizzate per criptare il backup. Per ulteriori informazioni, vedi 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 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 quanto riguarda l'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 ulteriori informazioni, consulta i criteri dell'organizzazione CMEK.