CMEK mit Managed Service for Apache Spark verwenden

Standardmäßig verschlüsselt der Managed Service for Apache Spark ruhende Kundeninhalte. Die Verschlüsselung wird vom Managed Service for Apache Spark übernommen. Weitere Maßnahmen Ihrerseits sind nicht erforderlich. Diese Option heißt Google-Standardverschlüsselung.

Wenn Sie Ihre Verschlüsselungsschlüssel selbst verwalten möchten, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEKs, Customer-Managed Encryption Keys) in Cloud KMS mit CMEK-integrierten Diensten wie dem Managed Service for Apache Spark verwenden. Mit Cloud KMS-Schlüsseln haben Sie die Kontrolle über Schutz level, Speicherort, Rotationszeitplan, Nutzungs- und Zugriffsberechtigungen sowie über kryptografische Grenzen. Mit Cloud KMS können Sie außerdem die Schlüsselnutzung verfolgen, Audit-Logs aufrufen und den Lebenszyklus von Schlüsseln steuern. Statt es Google zu überlassen, die symmetrischen Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs) zum Schutz Ihrer Daten zu besitzen und zu verwalten, können Sie diese auch über Cloud KMS steuern und verwalten.

Nachdem Sie Ihre Ressourcen mit CMEKs eingerichtet haben, ähnelt der Zugriff auf Ihre Managed Service for Apache Spark-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselung soptionen finden Sie unter Kundenverwaltete Verschlüsselungsschlüssel (CMEK).

CMEK verwenden

Folgen Sie der Anleitung in diesem Abschnitt, um Daten mit CMEK zu verschlüsseln, die vom Managed Service for Apache Spark auf eine nichtflüchtige Festplatte und in den Staging-Bucket des Managed Service for Apache Spark geschrieben werden.

Sie können den Cloud Key Management Service verwenden, um Schlüsselbunde und Schlüssel zu erstellen und zu verwalten, oder Cloud KMS Autokey für die vereinfachte automatische Erstellung von Schlüsselbunden und Schlüsseln nutzen.

Cloud KMS Autokey verwenden

  1. Aktivieren Sie Autokey für den Ordner, der Ihr Projekt enthält.
  2. Erstellen Sie einen Schlüssel-Handle. Geben Sie beim Erstellen des Schlüssel-Handles dataproc.googleapis.com/Batch oder dataproc.googleapis.com/Session als --resource-type an. Autokey generiert einen Schlüssel und weist ihn dem Schlüssel-Handle zu.
  3. Gewähren Sie Dienstkonten Berechtigungen und konfigurieren Sie Ihre Batch- oder Sitzungs arbeitslast. Folgen Sie dazu den Schritten 4 und 5 im folgenden Abschnitt Schlüssel manuell erstellen und verwenden. Wenn Sie Ihre Arbeitslast senden, geben Sie anstelle des Schlüsselressourcennamens im Feld kmsKey den Ressourcennamen des Schlüssel-Handles an.

Schlüssel manuell erstellen und verwenden

Folgen Sie dieser Anleitung, um Cloud KMS-Schlüssel manuell zu erstellen und mit dem Managed Service for Apache Spark zu verwenden.

  1. Erstellen Sie einen Schlüssel mithilfe des Cloud Key Management Service (Cloud KMS).

  2. Kopieren Sie den Ressourcennamen.

    Kopieren Sie den Ressourcennamen.
    Der Ressourcenname wird so erstellt:
    projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
    

  3. Ermöglichen Sie den Dienstkonten des Compute Engine-, Managed Service for Apache Spark- und Cloud Storage-Dienst-Agents die 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-Verschlüsseler/Entschlüsseler“ zuweisen. Wenn dieses Dienstkonto nicht auf der Seite „IAM“ in der Console aufgeführt ist, klicken Sie auf **Von Google bereitgestellte Rollenzuweisungen einschließen** , um es aufzulisten. Google Cloud
    2. Weisen Sie dem Dienstkonto des Managed Service for Apache Spark-Dienst-Agents die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler “ 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 die Managed Service for Apache Spark-Ressourcen ausgeführt werden.

      PROJECT_NUMBER: die Projektnummer (nicht die Projekt-ID) Ihres Google Cloud Projekts, in dem die Managed Service for Apache Spark-Ressourcen ausgeführt werden.

    3. Aktivieren Sie die Cloud KMS API für das Projekt, in dem die Managed Service for Apache Spark-Ressourcen ausgeführt werden.

    4. Wenn die Rolle des Managed Service for Apache Spark-Dienst-Agents nicht an das Dienstkonto des Managed Service for Apache Spark-Dienst-Agents angehängt ist, fügen Sie der benutzerdefinierten Rolle, die an das Dienstkonto des Managed Service for Apache Spark-Dienst-Agents angehängt ist, die Berechtigung serviceusage.services.use hinzu. Wenn die Rolle des Managed Service for Apache Spark-Dienst-Agents an das Dienstkonto des Managed Service for Apache Spark-Dienst-Agents angehängt ist, können Sie diesen Schritt überspringen.

    5. Folgen Sie der Anleitung, um Ihren Schlüssel im Bucket hinzuzufügen.

  4. Wenn Sie eine Batcharbeitslast senden:

    1. Geben Sie Ihren Schlüssel im Batch kmsKey parameter an.
    2. Geben Sie den Namen Ihres Cloud Storage-Bucket im Batch stagingBucket parameter an.
  5. Wenn Sie eine interaktive Sitzung oder eine Sitzungsvorlage erstellen:

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