Crittografare i dati con chiavi di crittografia gestite dal cliente

Per impostazione predefinita, Dataproc Metastore cripta i contenuti at-rest dei clienti. Dataproc Metastore 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 i servizi integrati con CMEK, tra cui Dataproc Metastore. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il loro livello di protezione, la posizione, la pianificazione della rotazione, le autorizzazioni di utilizzo e di accesso e i limiti crittografici. L'utilizzo di Cloud KMS ti consente inoltre di visualizzare gli audit log e controllare i cicli di vita delle chiavi. Invece che essere di proprietà e gestite da Google, le chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati sono sotto il tuo controllo e vengono gestite in Cloud KMS.

Dopo aver configurato le risorse con i CMEK, l'esperienza di accesso alle risorse Dataproc Metastore è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).

Prima di iniziare

Considerazioni

Tieni presenti i seguenti punti quando utilizzi Dataproc Metastore con CMEK.

  • CMEK è supportato sia per i servizi Dataproc Metastore a livello di una sola regione sia per quelli su più regioni (anteprima).

  • Il database Cloud Monitoring non supporta la crittografia CMEK. Al contrario, Google Cloud utilizza le chiavi di crittografia di Google per proteggere i nomi e le configurazioni dei servizi dei tuoi servizi Dataproc Metastore.

  • Se vuoi che il servizio Dataproc Metastore venga eseguito all'interno di un perimetro Controlli di servizio VPC, devi aggiungere l'API Cloud Key Management Service (Cloud KMS) al perimetro.

  • Quando utilizzi una chiave Cloud External Key Manager, Google non ha alcun controllo sulla disponibilità della chiave gestita esternamente. Se la chiave diventa non disponibile durante il periodo di creazione del servizio Dataproc Metastore, la creazione del servizio non va a buon fine. Dopo aver creato un servizio Dataproc Metastore, se la chiave non è più disponibile, il servizio non sarà più disponibile finché la chiave non sarà di nuovo disponibile. Per ulteriori considerazioni sull'utilizzo delle chiavi esterne, consulta Considerazioni su Cloud EKM.

Limitazioni

Tieni presenti le seguenti limitazioni quando utilizzi Dataproc Metastore con CMEK.

  • Non puoi attivare CMEK su un servizio esistente.

  • Non puoi ruotare le chiavi CMEK utilizzate da un servizio abilitato per CMEK.

  • Non puoi utilizzare le chiavi CMEK per criptare i dati utente in transito, ad esempio le query e le risposte degli utenti.

Configura CMEK per Dataproc Metastore

Se non hai già una chiave Cloud KMS, puoi crearne una per il servizio Dataproc Metastore. In caso contrario, puoi saltare questo passaggio e utilizzare una chiave esistente.

(Facoltativo) Crea una nuova chiave Cloud KMS

Per creare una chiave Cloud KMS, devi prima creare un mazzo di chiavi e poi una chiave memorizzata al suo interno.

Per creare un mazzo di chiavi

Per creare un portachiavi, esegui il seguente comando gcloud kms keyrings create.

gcloud kms keyrings create KEY_RING \
  --project=PROJECT_ID \
  --location=LOCATION

Sostituisci quanto segue:

  • KEY_RING: un nome per il keyring.
  • PROJECT_ID: l'ID del Google Cloud progetto in cui vuoi creare il portachiavi.
  • LOCATION: la regione in cui vuoi creare il portachiavi.

Per creare una chiave

Per creare una chiave memorizzata all'interno del tuo keyring, esegui il seguente gcloud kms keys create comando.

gcloud kms keys create KEY_NAME \
  --project=PROJECT_ID \
  --location=LOCATION \
  --keyring=KEY_RING \
  --purpose=encryption

Sostituisci quanto segue:

  • KEY_NAME: il nome della chiave.
  • KEY_RING: il nome del keyring che hai creato nel passaggio precedente.

Concedi le autorizzazioni per le chiavi Cloud KMS

Utilizza i seguenti comandi per concedere le autorizzazioni per le chiavi Cloud KMS per Dataproc Metastore:

  1. Concedi le autorizzazioni all'account di servizio Agente di servizio Dataproc Metastore:

    Se vuoi configurare CMEK per un servizio Dataproc Metastore multiregione, devi concedere a ogni chiave le autorizzazioni Cloud KMS necessarie sia per gli account di servizio Dataproc Metastore sia per quelli di Cloud Storage.

      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member=serviceAccount:$(gcloud beta services identity create \
        --service=metastore.googleapis.com 2>&1 | awk '{print $4}') \
        --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

  1. Concedi le autorizzazioni all'account di servizio Cloud Storage:

      gcloud storage service-agent --authorize-cmek projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME

Creare un servizio monoregione con una chiave CMEK

Per configurare la crittografia CMEK per un servizio Dataproc Metastore con una sola regione, segui questi passaggi.

Console

  1. Nella Google Cloud console, vai alla pagina Dataproc Metastore:

    Vai a Dataproc Metastore

  2. Nella parte superiore della pagina Dataproc Metastore, fai clic su Crea.

    Viene visualizzata la pagina Crea servizio.

  3. Configura il servizio in base alle tue esigenze.

  4. In Crittografia, fai clic su Chiave di crittografia gestita dal cliente (CMEK).

  5. Seleziona la chiave gestita dal cliente.

  6. Fai clic su Invia.

Verifica la configurazione della crittografia del servizio:

  1. Nella Google Cloud console, vai alla pagina Dataproc Metastore:

    Vai alla Google Cloud console

  2. Nella pagina Dataproc Metastore, fai clic sul nome del servizio che vuoi visualizzare.

    Viene visualizzata la pagina Dettagli del servizio.

  3. Nella scheda Configurazione, verifica che i dettagli mostrino che CMEK è attivo.

gcloud

  1. Per creare un servizio in una singola regione con crittografia CMEK, esegui il comando Google Cloud gcloud metastore services create:

    gcloud metastore services create SERVICE \
       --encryption-kms-key=KMS_KEY
    

    Sostituisci quanto segue:

    • SERVICE: il nome del nuovo servizio.
    • KMS_KEY: l'ID risorsa chiave.

Creare un servizio multiregione con una chiave CMEK

Per i servizi CMEK Dataproc Metastore su più regioni, devono essere fornite più chiavi di crittografia. Sono incluse una chiave per ogni regione costituente del servizio Dataproc Metastore su più regioni, una chiave per la regione di Spanner e una chiave per il continente.

Per informazioni sul servizio multiregione e sulle regioni con cui è configurato, puoi eseguire il seguente comando.

gcloud metastore locations describe LOCATION
  • Sostituisci LOCATION con la regione multipla in cui hai creato il servizio Dataproc Metastore.

Per creare un servizio multi-regione con una chiave CMEK

Per configurare la crittografia CMEK per un servizio Dataproc Metastore multiregione, segui questi passaggi.

Console

  1. Nella Google Cloud console, vai alla pagina Dataproc Metastore:

    Vai a Dataproc Metastore

  2. Nella parte superiore della pagina Dataproc Metastore, fai clic su Crea.

    Viene visualizzata la pagina Crea servizio.

  3. Seleziona Dataproc Metastore 2.

  4. Nella sezione Prezzi e capacità, seleziona Enterprise Plus - Due regioni.

  5. Per Protocollo endpoint, seleziona l'endpoint appropriato.

  6. In Crittografia, seleziona Chiave Cloud KMS.

  7. Seleziona le chiavi da utilizzare per ogni regione, ad esempio la regione del testimone Spanner e il continente.

  8. Configura le restanti opzioni di servizio in base alle tue esigenze.

  9. Fai clic su Invia.

Verifica la configurazione della crittografia del servizio:

  1. Nella Google Cloud console, vai alla pagina Dataproc Metastore:

    Vai a Dataproc Metastore

  2. Nella pagina Dataproc Metastore, fai clic sul nome del servizio che vuoi visualizzare.

    Viene visualizzata la pagina Dettagli servizio.

  3. Nella scheda Configurazione, verifica che CMEK sia abilitato.

gcloud

  1. Per creare un servizio multiregione con crittografia CMEK, esegui il comando gcloud beta metastore services create:
gcloud beta metastore services create SERVICE \
    --location=LOCATION \
    --instance-size=INSTANCE_SIZE \
    --encryption-kms-keys=KMS_KEY1,KMS_KEY2,KMS_KEY_WITNESS,KMS_KEY_CONTINENT

Sostituisci quanto segue:

  • SERVICE: il nome del nuovo servizio Dataproc Metastore.
  • LOCATION: la Google Cloud regione Google Cloud in cui vuoi creare il servizio Dataproc Metastore. Puoi anche impostare una località predefinita.
  • INSTANCE_SIZE: le dimensioni dell'istanza del servizio Dataproc Metastore su più regioni. Ad esempio, small, medium o large.
  • KMS_KEY1, KMS_KEY2, KMS_KEY_WITNESS, KMS_KEY_CONTINENT: l'ID risorsa della chiave per ciascuna delle chiavi obbligatorie, inclusa una chiave nel continente e una chiave nella regione di controllo di Spanner. I nomi delle chiavi sono elencati nel seguente formato nel progetto: projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME.

Importa ed esporta dati da e verso un servizio compatibile con CMEK

Se vuoi che i dati rimangano criptati con una chiave gestita dal cliente durante un'importazione, devi impostare la chiave CMEK sul bucket Cloud Storage prima di importarne i dati.

Puoi eseguire l'importazione da un bucket Cloud Storage non protetto da CMEK. Dopo l'importazione, i dati archiviati in Dataproc Metastore sono protetti in base alle impostazioni CMEK del servizio di destinazione.

Durante l'esportazione, il dump del database esportato è protetto in base alle impostazioni CMEK del bucket di archiviazione di destinazione.

Passaggi successivi