Utilizzare CMEK con Google Cloud Serverless per Apache Spark

Per impostazione predefinita, Google Cloud Serverless per Apache Spark cripta i contenuti inattivi dei clienti. Serverless per Apache Spark gestisce la crittografia per te senza ulteriori azioni da parte tua. 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 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 chiavi 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 staging Dataproc.

Puoi utilizzare Cloud Key Management Service per creare e gestire i portachiavi e le chiavi oppure utilizzare Autokey di Cloud KMS 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 agli account di servizio 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 Serverless per 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. Consenti agli account di servizio dell'agente di servizio Compute Engine, Dataproc e Cloud Storage di utilizzare la tua chiave:

    1. Consulta Proteggi le risorse utilizzando le chiavi Cloud KMS > Ruoli richiesti per assegnare il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS 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 Autore crittografia/decrittografia CryptoKey Cloud KMS all'account di servizio Dataproc 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 Dataproc.

      PROJECT_NUMBER: il numero di progetto (non l'ID progetto) del tuo progetto Google Cloud 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 Agente di servizio Dataproc non è collegato al service account Agente di servizio Dataproc, aggiungi l'autorizzazione serviceusage.services.use al ruolo personalizzato collegato al account di servizio Agente di servizio Dataproc. Se il ruolo Agente di servizio Dataproc è associato all'account di servizio Agente di servizio Dataproc, 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.