CMEK mit Dataproc Serverless verwenden

Wenn Sie Dataproc Serverless verwenden, werden Daten auf Laufwerken in der zugrunde liegenden serverlosen Infrastruktur und in einem Staging-Bucket von Cloud Storage 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 (Customer-Managed Encryption Key, 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 Datenverschlüsselungsschlüssel (Data Encryption Key, 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 Daten mit CMEK 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 setzt sich so zusammen:
    projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
    

  3. Aktivieren Sie die Dienstkonten für Compute Engine, Dataproc und Cloud Storage-Dienst-Agent zur Verwendung Ihres Schlüssels:

    1. Unter Ressourcen mit Cloud KMS-Schlüsseln schützen > Erforderliche Rollen erfahren Sie, wie Sie dem Dienstkonto des Compute Engine-Dienst-Agents die Rolle Cloud KMS CryptoKey Encrypter/Decrypter zuweisen. Wenn dieses Dienstkonto nicht auf der IAM-Seite in der Google Cloud Console aufgeführt ist, klicken Sie auf Von Google bereitgestellte Rollenzuweisungen einschließen.
    2. Weisen Sie dem Dienstkonto „Dataproc Service Agent“ 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 in dem Projekt, in dem Dataproc Serverless-Ressourcen ausgeführt werden.

    4. Wenn die Rolle „Dataproc Service Agent“ nicht dem Dienstkonto „Dataproc Service Agent“ zugeordnet ist, fügen Sie der benutzerdefinierten Rolle, die dem Dienstkonto von Dataproc-Dienst-Agent zugeordnet ist, die Berechtigung serviceusage.services.use hinzu. Wenn die Rolle „Dataproc-Dienst-Agent“ an das Dienstkonto des Dataproc-Dienst-Agents angehängt ist, können Sie diesen Schritt überspringen.

    5. Folgen Sie der Anleitung, um den Schlüssel zum Bucket hinzuzufügen.

  4. Wenn Sie eine Batcharbeitslast senden, geschieht Folgendes:

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