Utilizzare CMEK con Managed Service per Apache Spark

Per impostazione predefinita, Managed Service per Apache Spark cripta i contenuti inattivi dei clienti. Managed Service per Apache Spark gestisce la crittografia per tuo conto senza che tu debba fare altro. Questa opzione è denominata crittografia predefinita di Google.

Se vuoi controllare le chiavi di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud KMS con i servizi integrati con CMEK, incluso Managed Service per Apache Spark. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il livello di protezione , la località, la pianificazione della rotazione, le autorizzazioni di utilizzo e di accesso e i limiti crittografici. Con Cloud KMS puoi inoltre monitorare l'utilizzo delle chiavi, visualizzare gli audit log e controllare i cicli di vita delle chiavi. Invece di Google, sei tu ad avere la proprietà e la gestione delle chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati. Puoi controllare e gestire queste chiavi in Cloud KMS.

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

Utilizzo di CMEK

Segui i passaggi descritti in questa sezione per utilizzare CMEK per criptare i dati che Managed Service per Apache Spark scrive sul disco permanente e nel bucket di gestione temporanea di Managed Service per Apache Spark.

Puoi utilizzare Cloud Key Management Service per creare e gestire chiavi normali e automatizzate oppure utilizzare Cloud KMS Autokey per la creazione automatica semplificata di chiavi normali e automatizzate.

Utilizzo di Cloud KMS Autokey

  1. Abilita Autokey nella cartella che contiene il progetto.
  2. Crea un handle della chiave. Quando crei l'handle della chiave, specifica dataproc.googleapis.com/Batch o dataproc.googleapis.com/Session come --resource-type. Autokey genera una chiave e la assegna all'handle della chiave.
  3. Concedi le autorizzazioni ai service account e configura il carico di lavoro batch o sessione seguendo i passaggi 4 e 5 della sezione Creare e utilizzare manualmente le chiavi che segue. Quando invii il carico di lavoro, specifica il nome risorsa dell'handle della chiave al posto del nome risorsa della chiave nel campo kmsKey.

Creare e utilizzare manualmente le chiavi

Segui questi passaggi per creare manualmente le chiavi Cloud KMS e utilizzarle con Managed Service per Apache Spark.

  1. Crea una chiave utilizzando il Cloud Key Management Service (Cloud KMS).

  2. Copia il nome risorsa.

    Copia il nome della risorsa.
    Il nome risorsa è strutturato come segue:
    projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
    

  3. Consenti ai service account dell'agente di servizio Compute Engine, Managed Service per Apache Spark e Cloud Storage di utilizzare la chiave:

    1. Consulta Proteggere le risorse utilizzando le chiavi Cloud KMS > Ruoli obbligatori per assegnare il ruolo Cloud KMS CryptoKey Encrypter/Decrypter al service account dell'agente di servizio Compute Engine. Se questo account di servizio non è elencato nella pagina IAM della Google Cloud console, fai clic su Includi concessioni di ruoli fornite da Google per visualizzarlo.
    2. Assegna il Cloud KMS CryptoKey Encrypter/Decrypter ruolo al service account dell'agente di servizio Managed Service per Apache Spark. Puoi utilizzare Google Cloud CLI per assegnare il ruolo:

       gcloud projects add-iam-policy-binding KMS_PROJECT_ID \
       --member serviceAccount:service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \
       --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      Sostituisci quanto segue:

      KMS_PROJECT_ID: l'ID del tuo Google Cloud progetto che esegue Cloud KMS. Questo progetto può essere anche il progetto che esegue le risorse di Managed Service per Apache Spark.

      PROJECT_NUMBER: il numero di progetto (non l'ID progetto) del progetto che esegue le risorse di Managed Service per Apache Spark. Google Cloud

    3. Abilita l'API Cloud KMS nel progetto che esegue le risorse di Managed Service per Apache Spark.

    4. Se il ruolo dell'agente di servizio Managed Service per Apache Spark non è collegato al service account dell'agente di servizio Managed Service per Apache Spark, aggiungi l'autorizzazione serviceusage.services.use al ruolo personalizzato collegato al account di servizio dell'agente di servizio Managed Service per Apache Spark. Se il ruolo dell'agente di servizio Managed Service per Apache Spark è collegato al account di servizio dell'agente di servizio Managed Service per Apache Spark, puoi saltare questo passaggio.

    5. Segui i passaggi per aggiungere la chiave al bucket.

  4. Quando invii un carico di lavoro batch:

    1. Specifica la chiave nel parametro kmsKey del batch.
    2. Specifica il nome del bucket Cloud Storage nel parametro stagingBucket del batch.
  5. Quando crei una sessione interattiva o un modello di sessione:

    1. Specifica la chiave nel parametro della sessione kmsKey.
    2. Specifica il nome del bucket Cloud Storage nel parametro della sessione stagingBucket.