Una chiave di crittografia gestita dal cliente (CMEK) consente la crittografia dei dati at-rest con una chiave che puoi controllare tramite Cloud KMS. CMEK fornisce il controllo degli utenti sui dati scritti nelle risorse interne di Google nei progetti tenant e sui dati scritti dalle pipeline di Cloud Data Fusion, tra cui:
- Log e metadati della pipeline
- Metadati del cluster Dataproc
- Vari sink, azioni e origini di Cloud Storage, BigQuery, Pub/Sub e Spanner
Risorse di Cloud Data Fusion
Per un elenco dei plug-in di Cloud Data Fusion che supportano CMEK, vedi i plug-in supportati.
Cloud Data Fusion supporta CMEK per i cluster Dataproc. Cloud Data Fusion crea un cluster Dataproc temporaneo da utilizzare nella pipeline, quindi lo elimina al completamento della pipeline. CMEK protegge i metadati del cluster scritti nel seguente modo:
- Dischi permanenti (DP) collegati alle VM del cluster
- Output del driver del job e altri metadati scritti nel bucket gestione temporanea Dataproc creato automaticamente o creato dall'utente
Configurare CMEK
Crea una chiave Cloud KMS
Crea una chiave Cloud KMS nel progetto Google Cloud contenente l'istanza Cloud Data Fusion o in un progetto utente separato. La località del keyring Cloud KMS deve corrispondere alla regione in cui crei l'istanza. Non è consentita una chiave per più regioni o per una regione globale a livello di istanza perché Cloud Data Fusion è sempre associato a una regione specifica.
Recupera il nome della risorsa per la chiave
API REST
Ottieni il nome risorsa della chiave che hai creato con il seguente comando:
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Sostituisci quanto segue:
- PROJECT_ID: il progetto del cliente che ospita l'istanza di Cloud Data Fusion
- REGION: una regione Google Cloud
vicino alla località, ad esempio
us-east1
- KEY_RING_NAME: il nome del keyring che raggruppa le chiavi di crittografia
- KEY_NAME: il nome della chiave Cloud KMS
Console
Vai alla pagina Chiavi di crittografia.
Accanto al token, fai clic su Altro
.Seleziona Copia nome risorsa per copiare il nome della risorsa negli appunti.
Aggiorna gli account di servizio del progetto per utilizzare la chiave
Per configurare gli account di servizio del progetto per l'utilizzo della chiave:
Obbligatorio: concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) all'agente di servizio Cloud Data Fusion (vedi Concessione di ruoli a un account di servizio per risorse specifiche). Questo account ha il seguente formato:service-PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com
La concessione del ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'agente di servizio Cloud Data Fusion, consente a Cloud Data Fusion di utilizzare CMEK per criptare i dati dei clienti archiviati nei progetti tenant.
Obbligatorio: concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'agente di servizio Compute Engine (vedi Assegnazione di una chiave Cloud KMS a un account di servizio Cloud Storage). Questo account, a cui viene concesso per impostazione predefinita il ruolo Agente di servizio Compute Engine, ha il seguente formato:
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
La concessione del ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'agente di servizio Compute Engine consente a Cloud Data Fusion di utilizzare CMEK per criptare i metadati del disco permanente (DP) scritti dal cluster Dataproc in esecuzione nella tua pipeline.
Obbligatorio: concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'agente di servizio Cloud Storage (vedi Assegnazione di una chiave Cloud KMS a un agente di servizio Cloud Storage). L'agente di servizio è nel formato:
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
La concessione del ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'agente di servizio Cloud Storage consente a Cloud Data Fusion di utilizzare CMEK per criptare i dati scritti nel bucket di gestione temporanea del cluster Dataproc e in qualsiasi altra risorsa di Cloud Storage utilizzata dalla tua pipeline.
Obbligatorio: concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'agente di servizio Google Cloud Dataproc. Questo agente di servizio è nel formato:
service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com
(Facoltativo) Se la pipeline utilizza risorse BigQuery, concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'account di servizio BigQuery (vedi Concedere l'autorizzazione di crittografia e decriptazione). Questo account è nel formato:
bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com
(Facoltativo) Se la pipeline utilizza risorse Pub/Sub, concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'account di servizio Pub/Sub (vedi Utilizzo delle chiavi di crittografia gestite dal cliente). Questo account è nel formato:
service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com
Facoltativo: se la pipeline utilizza risorse Spanner, concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'account di servizio Spanner. Questo account è nel formato:
service-PROJECT_NUMBER@gcp-sa-spanner.iam.gserviceaccount.com
Crea un'istanza di Cloud Data Fusion con CMEK
CMEK è disponibile in tutte le versioni di Cloud Data Fusion 6.5.0 e successive.
API REST
Per creare un'istanza con una chiave di crittografia gestita dal cliente, imposta le seguenti variabili di ambiente:
export PROJECT=PROJECT_ID export LOCATION=REGION export INSTANCE=INSTANCE_ID export DATA_FUSION_API_NAME=datafusion.googleapis.com export KEY=KEY_NAME
Sostituisci quanto segue:
- PROJECT_ID: il progetto del cliente che ospita l'istanza Cloud Data Fusion
- REGION: una regione Google Cloud vicina alla tua località, ad esempio
us-east1
- INSTANCE_ID: il nome dell'istanza Cloud Data Fusion
- KEY_NAME: il nome completo della risorsa della chiave CMEK
Esegui questo comando per creare un'istanza di Cloud Data Fusion:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1/projects/$PROJECT/locations/$LOCATION/instances?instance_id=INSTANCE -X POST -d '{"description": "CMEK-enabled CDF instance created through REST.", "type": "BASIC", "cryptoKeyConfig": {"key_reference": "$KEY"} }'
Console
Vai alla pagina di Cloud Data Fusion.
Fai clic su Istanze, quindi su Crea un'istanza.
In Opzioni avanzate, seleziona Utilizza una chiave di crittografia gestita dal cliente (CMEK).
Nel campo Seleziona una chiave gestita dal cliente, seleziona il nome della risorsa per la chiave.
Dopo aver inserito tutti i dettagli dell'istanza, fai clic su Crea. Quando l'istanza è pronta per essere utilizzata, viene visualizzata nella pagina Istanze.
Controlla se CMEK è abilitata su un'istanza
Console
Visualizza i dettagli dell'istanza:
Nella console Google Cloud, vai alla pagina Cloud Data Fusion.
Fai clic su Istanze, quindi sul nome dell'istanza per andare alla pagina Dettagli istanza.
Se CMEK è abilitata, il campo Chiave di crittografia viene visualizzato come Disponibile.
Se CMEK è disabilitata, il campo Chiave di crittografia viene visualizzato come Non disponibile.
Utilizzare CMEK con i plug-in supportati
Quando imposti il nome della chiave di crittografia, utilizza il modulo seguente:
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
La tabella seguente descrive il comportamento della chiave nei plug-in di Cloud Data Fusion che supportano CMEK.
Plug-in supportati | Comportamento della chiave |
---|---|
Sink di Cloud Data Fusion | |
Cloud Storage | Cripta i dati scritti in qualsiasi bucket creato dal plug-in. Se il bucket esiste già, questo valore viene ignorato. |
Multifile Cloud Storage | Cripta i dati scritti in qualsiasi bucket creato dal plug-in. |
BigQuery | Cripta i dati scritti in qualsiasi bucket, set di dati o tabella creato dal plug-in. |
Multitabella BigQuery | Cripta i dati scritti in qualsiasi bucket, set di dati o tabella creato dal plug-in. |
Pub/Sub | Cripta i dati scritti in qualsiasi argomento creato dal plug-in. Se l'argomento esiste già, questo valore viene ignorato. |
Spanner | Cripta i dati scritti in qualsiasi database creato dal plug-in. Se il database esiste già, questo valore viene ignorato. |
Azioni di Cloud Data Fusion | |
Crea Cloud Storage Copia Cloud Storage Spostamento Cloud Storage Indicatore file completato per Cloud Storage |
Cripta i dati scritti in qualsiasi bucket creato dal plug-in. Se il bucket esiste già, questo valore viene ignorato. |
BigQuery Execute | Cripta i dati scritti nel set di dati o nella tabella creati dal plug-in per archiviare i risultati della query. È applicabile solo se archivi i risultati della query in una tabella BigQuery. |
Origini di Cloud Data Fusion | |
Origine BigQuery | Cripta i dati scritti in qualsiasi bucket creato dal plug-in. Se il bucket esiste già, questo valore viene ignorato. |
Motore SQL di Cloud Data Fusion | |
Motore push-down BigQuery | Cripta i dati scritti in qualsiasi bucket, set di dati o tabella creati dal plug-in. |
Utilizzare CMEK con i metadati del cluster Dataproc
I profili di computing precreati utilizzano la chiave CMEK fornita durante la creazione dell'istanza per criptare i metadati del Persistent Disk (DP) e del bucket gestione temporanea scritti dal cluster Dataproc in esecuzione nella pipeline. Puoi modificare la chiave per utilizzare un'altra chiave in uno dei seguenti modi:
- Consigliato: crea un nuovo profilo di computing Dataproc (solo versione Enterprise).
- Modifica un profilo di computing Dataproc esistente (versioni Developer, Basic o Enterprise).
Console
Apri l'istanza di Cloud Data Fusion:
Nella console Google Cloud, vai alla pagina Cloud Data Fusion.
Per aprire l'istanza nell'interfaccia web di Cloud Data Fusion, fai clic su Istanze, quindi fai clic su Visualizza istanza.
Fai clic su Amministratore di sistema > Configurazione.
Fai clic sul menu a discesa Profili di computing del sistema.
Fai clic su Crea nuovo profilo e seleziona Dataproc.
Inserisci un'etichetta del profilo, un nome del profilo e una descrizione.
Per impostazione predefinita, Dataproc crea bucket temporanei e temporanei ogni volta che viene creato un cluster gestione temporanea da Cloud Data Fusion. Cloud Data Fusion supporta il passaggio del bucket gestione temporanea Dataproc come argomento nel profilo di computing. Per criptare il bucket di gestione temporanea, crea un bucket abilitato per CMEK e passalo come argomento a Dataproc nel profilo di computing.
Per impostazione predefinita, Cloud Data Fusion crea automaticamente un bucket Cloud Storage per posizionare temporaneamente le dipendenze utilizzate da Dataproc. Se preferisci utilizzare un bucket Cloud Storage già esistente nel tuo progetto, segui questi passaggi:
Nella sezione Impostazioni generali, inserisci il bucket Cloud Storage esistente nel campo Bucket Cloud Storage.
Recupera l'ID risorsa della chiave Cloud KMS. Nella sezione Impostazioni generali, inserisci il tuo ID risorsa nel campo Nome chiave di crittografia.
Fai clic su Crea.
Se più di un profilo è elencato nella sezione Profili di computing del sistema della scheda Configurazione, imposta il nuovo profilo Dataproc come predefinito tenendo il puntatore sopra il campo del nome del profilo e facendo clic sulla stella visualizzata.
Utilizza CMEK con altre risorse
La chiave CMEK fornita è impostata sulla preferenza di sistema durante la creazione dell'istanza Cloud Data Fusion. Viene utilizzato per criptare i dati scritti nelle risorse appena create da sink di pipeline come i sink di Cloud Storage, BigQuery, Pub/Sub o Spanner.
Questa chiave si applica solo alle risorse appena create. Se la risorsa esiste già prima dell'esecuzione della pipeline, devi applicare manualmente la chiave CMEK alle risorse esistenti.
Puoi modificare la chiave CMEK in uno dei seguenti modi:
- Utilizza un argomento di runtime.
- Imposta una preferenza di sistema per Cloud Data Fusion.
Argomento di runtime
- Nella pagina Pipeline Studio di Cloud Data Fusion, fai clic sulla freccia menu a discesa a destra del pulsante Esegui.
- Nel campo Nome, inserisci
gcp.cmek.key.name
. - Nel campo Valore, inserisci l'ID risorsa della chiave.
Fai clic su Salva.
L'argomento di runtime impostato qui si applica solo alle esecuzioni della pipeline attuale.
Preferenza
- Nell'interfaccia utente di Cloud Data Fusion, fai clic su AMMINISTRAZIONE DI SISTEMA.
- Fai clic sulla scheda Configuration (Configurazione).
- Fai clic sul menu a discesa Preferenze di Sistema.
- Fai clic su Modifica preferenze di sistema.
- Nel campo Chiave, inserisci
gcp.cmek.key.name
. - Nel campo Valore, inserisci l'ID risorsa della chiave.
- Fai clic su Salva e chiudi.