Utilizzare CMEK con Managed Service per Apache Spark

Per impostazione predefinita, Managed Service for Apache Spark cripta i contenuti inattivi dei clienti. Managed Service for Apache Spark 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 Managed Service for 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 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 CMEK, l'esperienza di accesso alle risorse di Managed Service for 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 for Apache Spark scrive su disco permanente e nel bucket di gestione temporanea di Managed Service for Apache Spark.

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

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 workload batch o di sessione seguendo i passaggi 4 e 5 della sezione Crea e utilizza le chiavi manualmente di seguito. Quando invii il workload, specifica il nome risorsa dell'handle della chiave anziché il nome risorsa della chiave nel campo kmsKey.

Crea e utilizza le chiavi manualmente

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

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

  2. Copia il nome della risorsa.

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

  3. Attiva i service account Compute Engine, Managed Service for Apache Spark e Cloud Storage Service Agent per utilizzare la tua chiave:

    1. Consulta Proteggi le risorse utilizzando le chiavi Cloud KMS > Ruoli richiesti per assegnare il ruolo Cloud KMS CryptoKey Encrypter/Decrypter al service account Compute Engine Service Agent. Se questo account di servizio non è elencato nella pagina IAM della console Google Cloud , fai clic su Includi concessioni di ruoli fornite da Google per elencarlo.
    2. Assegna il ruolo Cloud KMS CryptoKey Encrypter/Decrypter al service account Managed Service for Apache Spark Service Agent. 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. \
       --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      Sostituisci quanto segue:

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

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

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

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

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

  4. Quando invii un workload batch:

    1. Specifica la chiave nel parametro batch kmsKey.
    2. Specifica il nome del bucket Cloud Storage nel parametro batch stagingBucket.
  5. Quando crei una sessione interattiva o un profilo di runtime (template di sessione), configura la chiave di crittografia e il bucket di gestione temporanea:

    1. Specifica la chiave. Nella pagina Crea un profilo di runtime della consoleGoogle Cloud , in Configurazione aggiuntiva, modifica Rete e sicurezza, seleziona Chiave Cloud KMS in Crittografia e seleziona la tua chiave. In alternativa, specifica la chiave nel parametro kmsKey della sessione o del template di sessione.

    2. Specifica il nome del bucket Cloud Storage. Nella pagina Crea un profilo di runtime della console Google Cloud , in Configurazione aggiuntiva, modifica Configurazione runtime e seleziona il tuo bucket nel campo Bucket di gestione temporanea. In alternativa, specifica il bucket nel parametro stagingBucket della sessione o del template di sessione.