Utilizzo delle chiavi di crittografia gestite dal cliente (CMEK)

Questa pagina descrive come utilizzare la crittografia di Cloud Key Management Service (Cloud KMS) con Cloud Data Fusion.

Una chiave di crittografia gestita dal cliente (CMEK) consente la crittografia dei dati at-rest con una chiave che puoi controllare tramite Cloud KMS. Le CMEK forniscono all'utente il controllo 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 Cloud Storage, BigQuery, Pub/Sub e Sink di dati, azioni e origini Spanner

Risorse di Cloud Data Fusion

Per un elenco dei plug-in di Cloud Data Fusion che supportano CMEK, consulta 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 termine 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 file bucket di gestione temporanea di Dataproc creato dall'utente

Configurare CMEK

Crea una chiave Cloud KMS

Crea una chiave Cloud KMS nel progetto Google Cloud che contiene l'istanza Cloud Data Fusion o in un progetto utente separato. La località del keyring di Cloud KMS deve corrispondere alla regione in cui crei l'istanza. Una località multiregionale o la chiave regione globale non è consentita a livello di istanza perché Cloud Data Fusion è sempre associato a una particolare regione.

Ottieni il nome risorsa per la chiave

API REST

Ottieni il nome risorsa della chiave che hai creato con il comando seguente:

projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Sostituisci quanto segue:

  • PROJECT_ID: il progetto del cliente che ospita Istanza Cloud Data Fusion
  • REGION: una regione Google Cloud vicina alla tua posizione, 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

  1. Vai alla pagina Chiavi di crittografia.

    Vai a Chiavi di crittografia

  2. Accanto al token, fai clic su Altro .

  3. Seleziona Copia nome risorsa per copiare il nome risorsa appunti.

Aggiorna gli account di servizio del progetto per utilizzare la chiave

Per configurare gli account di servizio del progetto in modo che utilizzino la chiave:

  1. Obbligatorio: concedi l'autore della crittografia/decrittografia CryptoKey Cloud KMS ruolo (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

    Concessione del ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS al L'agente di servizio Cloud Data Fusion consente a Cloud Data Fusion di usare CMEK per criptare i dati dei clienti archiviati nei progetti tenant.

  2. Obbligatorio: concedi il Ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'agente di servizio di Compute Engine (vedi assegnazione di una chiave Cloud KMS a un account di servizio Cloud Storage). Questo account, che per impostazione predefinita riceve il servizio Compute Engine Ruolo di agente, ha questo formato:

    service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com

    Concessione del ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS al L'agente di servizio Compute Engine consente a Cloud Data Fusion di usa CMEK per crittografare i metadati del disco permanente (DP) scritti Cluster Dataproc in esecuzione nella pipeline.

  3. Obbligatorio: concedi la CryptoKey Cloud KMS Ruolo di criptatore/decrittografia per l'agente di servizio Cloud Storage (consulta Assegnazione di una chiave Cloud KMS a un agente di servizio Cloud Storage). Questo agente di servizio ha il seguente formato:

    service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com

    Concessione del ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS al L'agente di servizio Cloud Storage consente a Cloud Data Fusion di utilizzare CMEK per criptare i dati scritti nella gestione temporanea del cluster Dataproc e qualsiasi altra risorsa Cloud Storage usata dalla pipeline.

  4. Obbligatorio: concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'agente di servizio Google Cloud Dataproc. Questo agente di servizio fa parte modulo:

    service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com

  5. (Facoltativo) Se la pipeline utilizza risorse BigQuery, concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'account di servizio BigQuery (vedi Concessione dell'autorizzazione per crittografia e decriptazione). Questo account ha il seguente formato:

    bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com

  6. 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 ha il formato:

    service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com

  7. (Facoltativo) Se la pipeline utilizza risorse Spanner, concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'account di servizio Spanner. Questo account ha il seguente formato:

    service-PROJECT_NUMBER@gcp-sa-spanner.iam.gserviceaccount.com

Crea un'istanza Cloud Data Fusion con CMEK

Le chiavi CMEK sono disponibili in tutte le versioni di Cloud Data Fusion 6.5.0 e successive.

API REST

  1. Per creare un'istanza con una chiave di crittografia gestita dal cliente, imposta il valore 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 del Istanza Cloud Data Fusion
    • KEY_NAME: il nome completo della risorsa della chiave CMEK
  2. Esegui questo comando per creare un'istanza 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

  1. Vai alla pagina Cloud Data Fusion.

  2. Fai clic su Istanze, quindi su Crea un'istanza.

    Vai a Istanze

  3. In Opzioni avanzate, seleziona Utilizza una crittografia gestita dal cliente. (CMEK).

  4. Nel campo Seleziona una chiave gestita dal cliente, seleziona la nome risorsa della chiave.

    Seleziona il nome della chiave di crittografia

  5. Dopo aver inserito tutti i dettagli dell'istanza, fai clic su Crea. Quando è pronta per l'uso, viene visualizzata nella pagina Istanze.

Controlla se CMEK è abilitata su un'istanza

Console

Visualizza i dettagli dell'istanza:

  1. Nella console Google Cloud, vai alla pagina Cloud Data Fusion.

  2. Fai clic su Istanze, quindi sul nome dell'istanza per andare alla pagina Dettagli istanza.

    Vai a Istanze

Se la chiave CMEK è attivata, il campo Chiave di crittografia viene visualizzato come Disponibile.

Se CMEK è disabilitata, il campo Chiave di crittografia viene visualizzato come Non disponibili.

Utilizza 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

Nomi delle chiavi di crittografia

Nella tabella seguente viene descritto il comportamento della chiave nel Plug-in di Cloud Data Fusion che supportano CMEK.

Plug-in supportati Comportamento della chiave
Sink di Cloud Data Fusion
Cloud Storage Autentica i dati scritti in qualsiasi bucket creato dal plug-in. Se il bucket esiste già, questo valore viene ignorato.
Cloud Storage multifile 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 .
Multitabella BigQuery Autentica 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 database già esistente, questo valore viene ignorato.
Azioni di Cloud Data Fusion
Creazione di Cloud Storage
Copia Cloud Storage
Spostamento in Cloud Storage
Indicatore file completato di 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 in cui il plug-in crea archiviare i risultati della query. È applicabile solo se archivi i risultati della query in una tabella BigQuery.
Origini 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
BigQuery Pushdown Engine Autentica i dati scritti in qualsiasi bucket, set di dati o tabella creato dal plug-in.

Usa CMEK con i metadati del cluster Dataproc

I profili di calcolo creati in precedenza utilizzano la chiave CMEK fornita durante l'istanza per crittografare il Persistent Disk (DP) e bucket gestione temporanea metadati scritti dal cluster Dataproc in esecuzione nella pipeline. Tu può modificare in modo da utilizzare un'altra chiave eseguendo una delle seguenti operazioni:

  • Opzione consigliata: crea un nuovo profilo di computing Dataproc (Solo versione Enterprise).
  • Modifica un profilo di calcolo Dataproc esistente (versioni Developer, Basic o Enterprise).

Console

  1. Apri l'istanza Cloud Data Fusion:

    1. Nella console Google Cloud, vai alla pagina di Cloud Data Fusion.

    2. Per aprire l'istanza in Cloud Data Fusion Studio: Fai clic su Istanze e poi su Visualizza istanza.

      Vai a Istanze

  2. Fai clic su Amministratore di sistema > Configurazione.

  3. Fai clic sul menu a discesa Profili di calcolo di sistema.

  4. Fai clic su Crea nuovo profilo e seleziona Dataproc.

  5. Inserisci un'Etichetta del profilo, un Nome profilo e una Descrizione.

  6. Per impostazione predefinita, Dataproc crea bucket per temporanee e temporanee 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 calcolo. Per criptare il bucket di gestione temporanea, crea un bucket abilitato per CMEK e passalo come argomento a Dataproc nel profilo di calcolo.

  7. Per impostazione predefinita, Cloud Data Fusion crea automaticamente un bucket Cloud Storage per posizionare le dipendenze utilizzate da Dataproc. Se preferisci utilizzare un bucket Cloud Storage già esistente nel progetto, segui questi passaggi:

    1. Nella sezione Impostazioni generali, inserisci il nome Bucket Cloud Storage nel bucket Cloud Storage .

    2. Aggiungi la chiave Cloud KMS al bucket Cloud Storage.

  8. Recupera l'ID risorsa della tua chiave Cloud KMS. Nel sezione Impostazioni generali, inserisci il tuo ID risorsa nel Nome chiave di crittografia.

  9. Fai clic su Crea.

  10. Se sono elencati più profili nei profili di calcolo di sistema della scheda Configurazione, crea la nuova il profilo Dataproc è il profilo predefinito tenendo Posiziona il puntatore del mouse sul campo del nome del profilo e fai clic sulla stella che viene visualizzata.

    Seleziona il profilo predefinito.

Utilizzare CMEK con altre risorse

La chiave CMEK fornita è impostata sulla preferenza di sistema durante Creazione di un'istanza Cloud Data Fusion. Viene utilizzato per criptare i datiscritti nelle risorse appena create dagli sink della pipeline, come Cloud Storage, BigQuery, Pub/Sub o gli sink 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 le risorse esistenti.

Puoi modificare la chiave CMEK eseguendo una delle seguenti operazioni:

  • Utilizza un argomento di runtime.
  • Impostare una preferenza di sistema per Cloud Data Fusion.

Argomento di runtime

  1. Nella pagina Pipeline Studio di Cloud Data Fusion, Fai clic sulla freccia menu a discesa a destra del pulsante Esegui.
  2. Nel campo Nome, inserisci gcp.cmek.key.name.
  3. Nel campo Valore, inserisci l'ID risorsa della chiave.
    Seleziona la versione di Data Fusion.
  4. Fai clic su Salva.

    L'argomento di runtime che imposti qui si applica solo alle esecuzioni del una pipeline o un blocco note personalizzato.

Preferenza

  1. Nella UI di Cloud Data Fusion, fai clic su AMMINISTRAZIONE DI SISTEMA.
  2. Fai clic sulla scheda Configuration (Configurazione).
  3. Fai clic sul menu a discesa Preferenze di sistema.
  4. Fai clic su Modifica preferenze di sistema.
  5. Nel campo Key (Chiave), inserisci gcp.cmek.key.name.
  6. Nel campo Valore, inserisci l'ID risorsa della chiave.
    Seleziona la versione Data Fusion.
  7. Fai clic su Salva e chiudi.