Utilizzare CMEK con Google Cloud Serverless per Apache Spark

Per impostazione predefinita, Google Cloud Serverless per Apache Spark cripta i contenuti inattivi dei clienti inattivi. Serverless per 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 chiavi di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud KMS con i servizi integrati con CMEK, tra cui Serverless 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 Serverless per 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 Google Cloud Serverless per Apache Spark scrive sul disco permanente e nel bucket di gestione temporanea di Dataproc.

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

Utilizzo di Autokey di Cloud KMS

  1. Abilita Autokey nella cartella che contiene il tuo 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 manualmente le chiavi che segue. Quando invii il carico di lavoro, specifica il nome risorsa dell'handle della chiave in luogo 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 Serverless 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, Dataproc e Cloud Storage di utilizzare la tua chiave:

    1. Consulta la sezione Proteggere le risorse utilizzando le chiavi Cloud KMS > Ruoli obbligatori per assegnare il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS al service account dell'agente di servizio Compute Engine. Se questo service account non è elencato nella pagina IAM della Google Cloud console, fai clic su Includi concessioni di ruoli fornite da Google per visualizzarlo.
    2. Assegna il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS al service account dell'agente di servizio Dataproc. 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 Dataproc.

      PROJECT_NUMBER: il numero di progetto (non l'ID progetto) del tuo Google Cloud progetto che esegue le risorse Dataproc.

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

    4. Se il ruolo dell'agente di servizio Dataproc non è collegato al service account dell'agente di servizio Dataproc, aggiungi l'autorizzazione serviceusage.services.use al ruolo personalizzato collegato al service account dell'agente di servizio Dataproc. Se il ruolo dell'agente di servizio Dataproc è collegato al service account dell'agente di servizio Dataproc, 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.