Chiavi di crittografia gestite dal cliente (CMEK)
Per impostazione predefinita, Bigtable cripta i contenuti inattivi dei clienti. Bigtable 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 Bigtable. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il livello di protezione, la posizione, la pianificazione della rotazione, l'utilizzo e le autorizzazioni di accesso e i limiti crittografici. L'utilizzo di Cloud KMS ti consente anche di monitorare l'utilizzo delle chiavi, visualizzare i log di controllo e controllare i cicli di vita delle chiavi. Anziché essere di proprietà di Google e gestite da Google, le chiavi di crittografia delle chiavi (KEK) simmetriche che proteggono i tuoi dati sono controllate e gestite da te in Cloud KMS.
Dopo aver configurato le risorse con le CMEK, l'esperienza di accesso alle risorse Bigtable è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).
CMEK con Autokey di Cloud KMS
Puoi creare le CMEK manualmente per proteggere i cluster Bigtable o utilizzare Autokey di Cloud KMS. Con Autokey, le chiavi e le chiavi automatizzate vengono generate on demand durante la creazione delle risorse in Bigtable. 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 ulteriori informazioni, consulta la panoramica di Autokey.
Cloud KMS Autokey crea una chiave predefinita quando viene creato un cluster Bigtable, a meno che il cluster non venga creato nella console. Cloud KMS Autokey non crea chiavi per le risorse Bigtable diverse dai cluster.
Per configurare CMEK manualmente, consulta Utilizzare CMEK.
Funzionalità
Sicurezza: CMEK offre lo stesso livello di sicurezza della crittografia predefinita di Google, ma fornisce un maggiore controllo amministrativo.
Controllo dell'accesso ai dati: gli amministratori possono ruotare, gestire l'accesso e disattivare o distruggere la chiave utilizzata per proteggere i dati inattivi in Bigtable.
Auditabilità:tutte le azioni sulle chiavi CMEK 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 di gestione delle chiavi esterni, puoi approvare o negare automaticamente queste richieste in base alla giustificazione.
Prestazioni comparabili: le istanze Bigtable protette da CMEK offrono prestazioni comparabili a quelle delle istanze Bigtable che utilizzano la crittografia predefinita di Google.
Flessibilità:puoi utilizzare la stessa chiave CMEK in più progetti, istanze o cluster oppure puoi utilizzare chiavi separate, a seconda delle tue esigenze aziendali.
Protezione tra regioni:puoi abilitare CMEK nelle istanze che hanno cluster in qualsiasi regione in cui è disponibile Bigtable. Ogni cluster è protetto da una chiave CMEK nella regione del cluster.
Prezzi
Cloud KMS addebita il costo della chiave e di tutte le operazioni di crittografia eseguite utilizzando quella chiave. Per i dettagli, consulta la pagina Prezzi di Cloud KMS.
Ti vengono addebitati i costi dell'operazione quando Bigtable chiede alla chiave Cloud KMS di eseguire un'operazione di crittografia o decrittografia. Ogni richiesta di crittografia o decrittografia viene inviata da ogni tabella di ogni cluster nell'istanza. Poiché Bigtable utilizza la crittografia envelope, questi costi per tabella sono generalmente bassi, dato il numero ridotto di operazioni crittografiche previste. Se memorizzi molte tabelle in un'istanza protetta da CMEK, i costi sono più elevati.
Non sono previsti costi aggiuntivi per Bigtable per l'utilizzo di istanze abilitate a CMEK.
Cosa viene protetto con CMEK
In un'istanza protetta da CMEK, Bigtable utilizza la chiave CMEK per proteggere i dati at-rest. Ciò include i dati in tutte le tabelle del cluster. I dati memorizzati sia sull'archiviazione HDD che SSD sono protetti.
Alcuni 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 e vengono utilizzate per il routing
- Dati di debug, inclusi dump principali e log operativi
- Dati in transito o in memoria
- Un sottoinsieme di valori timestamp utilizzati per la garbage collection
Bigtable utilizza la crittografia envelope per i dati inattivi. La chiave CMEK viene utilizzata come chiave di crittografia della chiave (KEK) per criptare altre chiavi utilizzate da Bigtable. Quando ruoti la chiave CMEK, Bigtable deve solo criptare nuovamente le chiavi intermedie.
Attivazione di CMEK
A livello generale, per utilizzare CMEK con Bigtable, segui questi passaggi:
- Crea e configura una chiave CMEK in ogni regione in cui si troveranno i cluster dell'istanza.
- Crea una nuova istanza Bigtable, selezionando una chiave CMEK per ogni cluster dell'istanza. La chiave CMEK di un cluster deve trovarsi nella stessa regione del cluster.
- Pianifica una rotazione delle chiavi per ogni chiave.
Le applicazioni che utilizzano Bigtable non devono specificare una chiave o una configurazione di crittografia durante la lettura, la scrittura o l'eliminazione dei dati. Bigtable può accedere alla chiave per tuo conto dopo che hai concesso il ruolo Cloud KMS Encrypter/Decrypter all'agente di servizio Bigtable.
Per istruzioni dettagliate, consulta l'articolo Utilizzare CMEK.
Quando utilizzi CMEK per Bigtable, puoi utilizzare quanto segue.
- Google Cloud console
- Google Cloud CLI
- Tutte le librerie client disponibili a livello generale (GA) che chiamano le API Cloud Bigtable.
Puoi anche accedere direttamente all'API Cloud Bigtable Admin, ma ti consigliamo vivamente di farlo solo se non puoi utilizzare una libreria client Bigtable che effettua chiamate CMEK all'API.
Gestione delle chiavi
Le operazioni di gestione delle chiavi vengono eseguite utilizzando Cloud KMS. Bigtable non può rilevare o agire in base alle modifiche alle chiavi finché non vengono propagate da Cloud KMS. L'applicazione di alcune operazioni, come la disattivazione o l'eliminazione di una chiave, può richiedere fino a 4 ore; le modifiche alle autorizzazioni di una chiave vengono in genere applicate più rapidamente.
Dopo aver creato almeno una tabella in un'istanza protetta da CMEK, Bigtable convalida la chiave per ogni tabella in ogni cluster ogni 5 minuti.
Se Bigtable rileva una chiave disattivata, disattiva un cluster alla volta in modo a cascata finché tutti i cluster nell'istanza non vengono disattivati.
Dopo che il primo cluster segnala che una chiave è disabilitata o eliminata e fino a quando l'istanza non viene disabilitata, alcune richieste di dati potrebbero andare a buon fine e altre restituire un errore. Qualsiasi operazione sui dati inviata a un cluster disattivato restituisce un errore FAILED_PRECONDITION
o NOT_FOUND
.
Inoltre, poiché la replica Bigtable è alla fine coerente, è possibile che un cluster abbia riconosciuto una richiesta di scrittura ma non l'abbia ancora replicata negli altri cluster dell'istanza prima di essere disattivato.
La procedura di disattivazione automatica di tutti i cluster in un'istanza dopo la disattivazione di una chiave può richiedere fino a diverse ore. Per evitare questo stato, ti consigliamo di disattivare sempre tutte le chiavi di un'istanza contemporaneamente.
Quando un cluster Bigtable è disattivato, le seguenti operazioni di amministrazione sono limitate per l'intera istanza:
- Creazione di un cluster
- Eliminazione di un cluster
- Creazione di una tabella
- Modificare una famiglia di colonne
- Ripristinare una tabella
Puoi comunque eliminare l'istanza, una tabella e un backup.
Se le chiamate di Bigtable a Cloud KMS rilevano che una chiave precedentemente disattivata è stata riattivata, Cloud KMS ripristina automaticamente l'accesso al cluster Bigtable.
Se una chiave Cloud KMS è stata eliminata, qualsiasi istanza Bigtable con un cluster criptato con quella chiave diventa inaccessibile in modo permanente.
Come viene gestito uno stato della chiave non disponibile
In rari scenari, ad esempio durante i periodi in cui Cloud KMS non è disponibile, Bigtable potrebbe non essere in grado di recuperare lo stato di una chiave da Cloud KMS.
Se un cluster Bigtable è protetto da una chiave abilitata al momento in cui Bigtable non riesce più a comunicare con Cloud KMS, Bigtable continua a supportare le operazioni complete dell'istanza nel miglior modo possibile per un massimo di un'ora, per ridurre al minimo l'impatto di qualsiasi incidente di questo tipo sul tuo workload.
Dopo un'ora, se Bigtable non riesce ancora a connettersi a Cloud KMS, inizia a mettere offline l'istanza come misura protettiva. I dati nell'istanza Bigtable rimangono inaccessibili finché l'istanza non riesce a riconnettersi a Cloud KMS e Cloud KMS non risponde che la chiave è attiva.
Al contrario, se un cluster nell'istanza Bigtable è protetto da una chiave disattivata prima del momento in cui Bigtable non riesce più a comunicare con Cloud KMS, l'istanza rimane inaccessibile finché non riesce a riconnettersi a Cloud KMS e non hai riattivato la chiave.
Considerazioni sulle chiavi esterne
Quando utilizzi Cloud EKM, Google non ha alcun controllo sulla disponibilità della chiave gestita esternamente nel sistema del partner di gestione delle chiavi esterne.
Se la chiave gestita esternamente non è disponibile, Bigtable continua a supportare le operazioni del cluster secondo il criterio del "best effort" per un massimo di un'ora.
Dopo un'ora, se Bigtable non riesce ancora a connettersi a Cloud KMS, inizia a mettere offline l'istanza come misura protettiva. I dati nell'istanza Bigtable rimangono inaccessibili finché l'istanza non riesce a riconnettersi a Cloud KMS e Cloud KMS non risponde che la chiave esterna è attiva.
Se prevedi di utilizzare una chiave esterna per un'istanza Bigtable con cluster in più di una regione, assicurati che la chiave sia supportata in queste regioni. Per maggiori dettagli, vedi Gestori di chiavi esterni e regioni. Inoltre, non devi utilizzare una combinazione di chiavi esterne e non esterne nella stessa istanza.
Per scoprire di più sull'utilizzo di chiavi esterne con Cloud Key Management Service, consulta Cloud External Key Manager (Cloud EKM).
Criteri dell'organizzazione
Bigtable supporta i vincoli dei criteri dell'organizzazione per garantire l'utilizzo di CMEK in un'organizzazione. Per informazioni dettagliate su come utilizzare le policy dell'organizzazione, consulta Policy dell'organizzazione CMEK.
Backup
Come altri dati, un backup è protetto dalla chiave CMEK per il cluster in cui è archiviato. Le nuove tabelle ripristinate da un backup sono protette dalla chiave o dalle chiavi CMEK per il cluster in cui vengono ripristinate. Per ulteriori dettagli su come CMEK influisce sulle operazioni di backup e ripristino, consulta Backup. Per scoprire come creare o ripristinare un backup, consulta Gestire i backup.
Logging
Puoi controllare le richieste che Bigtable invia a Cloud KMS per tuo conto in Cloud Logging, se hai abilitato gli audit log di Cloud KMS per l'API Cloud KMS nel tuo progetto. Puoi aspettarti alcune voci di log ogni 5 minuti circa per tabella in ogni cluster.
Limitazioni
CMEK può essere configurata solo a livello di cluster. Non puoi configurare CMEK su backup, tabelle o profili app.
La chiave CMEK di un cluster deve trovarsi nella stessa regione del cluster. Quando crei un portachiavi Cloud KMS, assicurati di selezionare la regione che corrisponde alla configurazione zonale di Bigtable pianificata.
La configurazione della crittografia di una risorsa Bigtable (un'istanza, un cluster, una tabella o un backup) è immutabile.
- Le istanze non CMEK non possono essere convertite per utilizzare CMEK.
- Le istanze CMEK non possono essere convertite per utilizzare la crittografia predefinita di Google.
- I cluster creati con una chiave CMEK non possono essere riconfigurati per utilizzare una chiave diversa.
Le risorse Bigtable protette da CMEK (istanze, cluster, tabelle o backup) associate a una chiave resa inaccessibile a seguito di un'azione attivata dall'utente (ad esempio la disattivazione o l'eliminazione di una chiave o la revoca del ruolo Encrypter/Decrypter) per più di 30 giorni consecutivi vengono eliminate automaticamente.
Se riattivi una chiave CMEK disabilitata per ripristinare l'accesso alle istanze Bigtable protette da questa chiave, alcune richieste dell'API Data potrebbero andare in timeout mentre i tuoi dati vengono ripristinati online.
Fino a cinque minuti dopo la creazione di una tabella in un'istanza protetta da CMEK, la versione della chiave e lo stato della chiave potrebbero essere segnalati come sconosciuti. Tuttavia, tutti i dati scritti nella tabella sono comunque protetti con la chiave CMEK durante questo periodo.
La disabilitazione o l'eliminazione di una sola versione anziché di tutte le versioni di una chiave utilizzata da Bigtable può comportare un comportamento imprevedibile. Disabilita o elimina sempre tutte le versioni di una chiave CMEK.