Utilizzare CMEK con Managed Service per Apache Spark

Per impostazione predefinita, Managed Service for Apache Spark cripta i contenuti dei clienti inattivi. Managed Service for 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 tue chiavi di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud KMS con 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 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 chiavi 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, vedi 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 staging di Managed Service for Apache Spark.

Puoi utilizzare Cloud Key Management Service per creare e gestire i portachiavi e le chiavi oppure utilizzare Cloud KMS Autokey per la creazione automatica semplificata di portachiavi 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 carico di lavoro batch o di sessione seguendo i passaggi 4 e 5 della sezione Creare e utilizzare le chiavi manualmente riportata di seguito. 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 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 è strutturato come segue:
    projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
    

  3. Abilita 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 dell'agente di servizio Compute Engine. 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.iam.gserviceaccount.com \
       --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 Managed Service for Apache Spark.

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

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

    4. Se il ruolo service agent Managed Service for Apache Spark non è collegato al service account service agent Managed Service for Apache Spark, aggiungi l'autorizzazione serviceusage.services.use al ruolo personalizzato collegato al account di servizio agent Managed Service for Apache Spark. Se il ruolo di service agent Managed Service for Apache Spark è collegato al account di servizio agent Managed Service for Apache Spark, puoi ignorare 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 batch kmsKey.
    2. Specifica il nome del bucket Cloud Storage nel parametro batch stagingBucket.
  5. Quando crei una sessione interattiva o un modello di sessione:

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