CMEK mit Dataproc Serverless verwenden

Wenn Sie Dataproc Serverless verwenden, werden Daten auf Laufwerken in der zugrunde liegenden serverlosen Infrastruktur und in einem Cloud Storage-Staging-Bucket gespeichert. Diese Daten werden mit einem von Google generierten Datenverschlüsselungsschlüssel (Data Encryption Key, DEK) und einem Schlüsselverschlüsselungsschlüssel (Key Encryption Key, KEK) verschlüsselt. Sie können einen vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) verwenden, um den Schlüsselverschlüsselungsschlüssel (Key Encryption Key, KEK) zu erstellen, zu verwenden und zu widerrufen. Google behält die Kontrolle über den DEK. Weitere Informationen zu Datenverschlüsselungsschlüsseln von Google finden Sie unter Standardverschlüsselung inaktiver Daten.

CMEK verwenden

Führen Sie die Schritte in diesem Abschnitt aus, um mit einem CMEK Daten zu verschlüsseln, die Dataproc Serverless in den nichtflüchtigen Speicher und in den Dataproc-Staging-Bucket schreibt.

  1. Erstellen Sie einen Schlüssel mit dem Cloud Key Management Service (Cloud KMS).

  2. Kopieren Sie den Ressourcennamen.

    Der Ressourcenname wird so aufgebaut:
    projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
    

  3. Aktivieren Sie die Dienstkonten des Compute Engine-, Dataproc- und Cloud Storage-Dienst-Agents, um Ihren Schlüssel zu verwenden:

    1. Unter Ressourcen mit Cloud KMS-Schlüsseln schützen > Erforderliche Rollen erfahren Sie, wie Sie dem Compute Engine-Dienst-Agent-Dienstkonto die Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler zuweisen. Wenn dieses Dienstkonto nicht auf der IAM-Seite in der Google Cloud Console aufgeführt ist, klicken Sie auf Von Google bereitgestellte Rollenzuweisungen einbeziehen, um es aufzulisten.
    2. Weisen Sie dem Dataproc-Dienst-Agent-Dienstkonto die Rolle Cloud KMS CryptoKey Encrypter/Decrypter zu. Sie können die Google Cloud CLI verwenden, um die Rolle zuzuweisen:

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

      Ersetzen Sie Folgendes:

      KMS_PROJECT_ID: Die ID Ihres Google Cloud-Projekts, in dem Cloud KMS ausgeführt wird. Dieses Projekt kann auch das Projekt sein, in dem Dataproc-Ressourcen ausgeführt werden.

      PROJECT_NUMBER: die Projektnummer (nicht die Projekt-ID) des Google Cloud-Projekts, in dem Dataproc-Ressourcen ausgeführt werden.

    3. Aktivieren Sie die Cloud KMS API für das Projekt, in dem serverlose Dataproc-Ressourcen ausgeführt werden.

    4. Wenn die Rolle "Dataproc-Dienst-Agent" nicht mit dem Dataproc-Dienst-Agent-Dienstkonto verknüpft ist, fügen Sie die Berechtigung serviceusage.services.use der benutzerdefinierten Rolle hinzu, die mit dem Dataproc-Dienst-Agent-Dienstkonto verknüpft ist. Wenn die Rolle des Dataproc-Dienst-Agents mit dem Dienstkonto des Dataproc-Dienst-Agents verknüpft ist, können Sie diesen Schritt überspringen.

    5. Führen Sie die Schritte zum Hinzufügen Ihres Schlüssels zum Bucket aus.

  4. Beim Senden einer Batcharbeitslast gilt Folgendes:

    1. Geben Sie Ihren Schlüssel im Parameter Batch kmsKey an.
    2. Geben Sie den Namen des Cloud Storage-Bucket im Parameter Batch stagingBucket an.