Per impostazione predefinita, Google Cloud cripta i dati quando sono at-rest mediante chiavi di crittografia gestite da Google. Se hai requisiti di conformità specifici i requisiti normativi relativi alle chiavi che proteggono i tuoi dati, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per Dataform repository.
Questa guida descrive l'utilizzo di CMEK per Dataform e procedure dettagliate come abilitare la crittografia CMEK dei repository Dataform.
Per ulteriori informazioni su CMEK in generale, ad esempio quando e perché abilitarla, consulta la documentazione di CMEK.
Crittografia CMEK dei dati del repository
Quando applichi la crittografia CMEK a un repository Dataform, tutti i dati dei clienti gestiti da Dataform in quel repository vengono criptati usando il set di chiavi di protezione CMEK per il repository. Questi dati includono le seguenti:
- Contenuti del repository Git del repository Dataform e delle rispettive aree di lavoro
- Query SQL compilate ed errori di compilazione
- Query SQL archiviate delle azioni del flusso di lavoro
- Dettagli degli errori delle azioni del flusso di lavoro eseguite
Dataform utilizza chiavi di protezione CMEK nei seguenti scenari:
- Durante ogni operazione che richiede la decriptazione dei dati inattivi del cliente.
Queste operazioni includono, a titolo esemplificativo:
- Risposte a una query dell'utente, ad esempio
compilationResults.query
. - Creazione di risorse Dataform che richiedono una creazione in precedenza di dati di un repository criptato, ad esempio chiamate del flusso di lavoro.
- Operazioni Git per aggiornare il repository remoto; ad esempio il push di un commit Git.
- Risposte a una query dell'utente, ad esempio
- Durante ogni operazione che richiede l'archiviazione dei dati at-rest dei clienti.
Queste operazioni includono, a titolo esemplificativo:
- Risposte a una query dell'utente, ad esempio
compilationResults.create
. - Operazioni Git in un'area di lavoro, ad esempio il pull di un commit Git.
- Risposte a una query dell'utente, ad esempio
Dataform gestisce la crittografia dei dati dei clienti associati solo a Risorse Dataform. Dataform non gestisce la crittografia di dati dei clienti creati in BigQuery mediante l'esecuzione Flussi di lavoro Dataform. Per criptare i dati creati e archiviati in BigQuery, configurare CMEK per BigQuery.
Chiavi supportate
Dataform supporta i seguenti tipi di chiavi CMEK:
La disponibilità delle chiavi varia in base al tipo di chiave e alla regione. Per ulteriori informazioni sulla disponibilità geografica delle chiavi CMEK, consulta Località di Cloud KMS.
Limitazioni
Dataform supporta CMEK con le seguenti limitazioni:
- La dimensione massima di un repository criptato con CMEK è 512 MB.
- Non puoi applicare una chiave di protezione CMEK a un repository dopo che questo è è stata creata. Puoi applicare la crittografia CMEK solo durante la creazione del repository.
- Non puoi rimuovere una chiave di protezione CMEK da un repository.
- Non puoi modificare una chiave di protezione CMEK per un repository.
- I criteri dell'organizzazione CMEK non sono disponibili.
- L'uso delle chiavi Cloud HSM è soggetto a disponibilità. Per ulteriori informazioni sulla disponibilità delle chiavi nelle varie località, consulta Località di Cloud KMS.
Quote di Cloud KMS e Dataform
Puoi utilizzare le chiavi Cloud HSM con Dataform. Quando usi CMEK in Dataform, i tuoi progetti possono consumare richieste crittografiche di Cloud KMS quote. Ad esempio, i repository Dataform criptati con CMEK possono utilizzare queste quote per ogni modifica ai contenuti del repository. Le operazioni di crittografia e decriptazione utilizzando Le chiavi CMEK influiscono sulle quote di Cloud KMS solo se utilizzi hardware (Cloud HSM) o chiavi esterne (Cloud EKM). Per ulteriori informazioni, vedi Quote di Cloud KMS.
Gestione delle chiavi
Utilizza Cloud KMS per tutte le operazioni di gestione delle chiavi. Dataform non può rilevare o intervenire su modifiche chiave fino a quando e vengono propagate da Cloud KMS. Alcune operazioni, ad esempio disabilitazione o distruggendo una chiave, può fino a tre ore per la propagazione. In genere, le modifiche alle autorizzazioni si propagano molto più velocemente.
Dopo la creazione del repository, Dataform chiama a Cloud KMS di verificare che la chiave sia ancora valida durante ogni operazione sui dati dei repository criptati.
Se Dataform rileva che la chiave Cloud KMS ha disabili o eliminati, tutti i dati archiviati nel repository corrispondente diventa inaccessibile.
Se Dataform chiama Cloud KMS rileva che una chiave precedentemente disabilitata è stata di nuovo abilitato, Dataform ripristina automaticamente l'accesso.
Come viene gestito uno stato di una chiave non disponibile
In rari scenari, ad esempio durante periodi in cui Cloud KMS viene non disponibile, Dataform potrebbe non essere in grado di recuperare lo stato della chiave da Cloud KMS.
Se il repository Dataform è protetto da una chiave attivata nel momento in cui Dataform non è in grado di comunicano con Cloud KMS, i dati del repository criptato diventa inaccessibile.
I dati del repository criptato rimangono inaccessibili fino a quando Dataform può riconnettersi con Cloud KMS, e Cloud KMS risponde che sia attiva.
Al contrario, se il repository Dataform è protetto da una chiave che viene disabilitato nel momento in cui Dataform viene non riesce a comunicare con Cloud KMS, i dati del repository criptato rimane inaccessibile finché non riesce a riconnettersi a Cloud KMS e hai riattivato la chiave.
Logging
Puoi controllare le richieste che Dataform invia Cloud KMS per tuo conto in Cloud Logging, se hai 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. Per ulteriori informazioni, vedi Visualizza i log.
Prima di iniziare
Decidi se eseguire Dataform e Cloud KMS in progetti diversi o nello stesso progetto. Ti consigliamo di utilizzare progetti separati per avere un maggiore controllo sulle autorizzazioni. Per informazioni sugli ID e sui numeri di progetto Google Cloud, consulta Identificazione dei progetti.
Per il progetto Google Cloud che esegue Cloud KMS:
- Abilitare l'API Cloud Key Management Service.
- Crea un keyring e una chiave come descritto in
Creazione di keyring e chiavi. Crea il keyring
in una località corrispondente a quella del tuo Dataform
repository:
-
I repository devono usare chiavi regionali corrispondenti. Ad esempio:
un repository nella regione
asia-northeast3
deve essere protetto con una chiave da un keyring situato inasia-northeast3
. -
Non è possibile utilizzare la regione
global
con Dataform.
-
I repository devono usare chiavi regionali corrispondenti. Ad esempio:
un repository nella regione
Attiva CMEK
Dataform può accedere alla chiave per tuo conto dopo
concedi a Cloud KMS
Autore crittografia/decrittografia CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter
)
al ruolo
account di servizio Dataform predefinito.
Il tuo ID account di servizio Dataform predefinito è nel seguente formato:
service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
Per concedere il ruolo Autore crittografia/decrittografia CryptoKey al Dataform predefinito segui questi passaggi:
Console
Apri la pagina Gestione delle chiavi nella console Google Cloud.
Fai clic sul nome del keyring che contiene la chiave.
Fai clic sulla casella di controllo della chiave di crittografia a cui vuoi aggiungere la chiave ruolo. Si apre la scheda Autorizzazioni.
Fai clic su Aggiungi membro.
Inserisci l'indirizzo email dell'account di servizio
- Se l'account di servizio è già nell'elenco dei membri, deve ruoli esistenti. Fai clic sull'elenco a discesa del ruolo corrente per l'account di servizio.
Fai clic sull'elenco a discesa per Seleziona un ruolo, fai clic su Cloud KMS e quindi fai clic sul ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS.
Fai clic su Salva per applicare il ruolo al servizio. .
gcloud
Puoi utilizzare Google Cloud CLI per assegnare il ruolo:
gcloud kms keys add-iam-policy-binding \ --project=KMS_PROJECT_ID \ --member serviceAccount:SERVICE_ACCOUNT \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --location=KMS_KEY_LOCATION \ --keyring=KMS_KEY_RING \ KMS_KEY
Sostituisci quanto segue:
KMS_PROJECT_ID
: l'ID del tuo account Google Cloud che esegue Cloud KMSSERVICE_ACCOUNT
: l'indirizzo email predefinito Account di servizio DataformKMS_KEY_LOCATION
: il nome della località Chiave Cloud KMSKMS_KEY_RING
: il nome del keyring della tua Chiave Cloud KMSKMS_KEY
: il nome della chiave Chiave Cloud KMS
Applica CMEK a un repository
Puoi applicare la protezione CMEK a un repository Dataform durante la creazione del repository.
Per applicare la crittografia CMEK a un repository Dataform, specifica una chiave Cloud KMS quando crei il repository. Per le istruzioni, vedi Creare un repository.
Non puoi modificare il meccanismo di crittografia di un repository Dataform una volta creato il repository.
Per ulteriori informazioni, consulta la sezione Restrizioni.
Passaggi successivi
- Per scoprire di più su CMEK, vedi Panoramica di CMEK.
- Per saperne di più sulle quote di Cloud KMS, consulta Quote di Cloud KMS.
- Per scoprire di più sui prezzi di Cloud KMS, consulta la pagina Prezzi di Cloud KMS.
- Per scoprire di più sui repository Dataform, consulta Introduzione ai repository.