CMEK mit Managed Service for Apache Spark verwenden

Managed Service for Apache Spark verschlüsselt ruhende Kundeninhalte standardmäßig. Die Verschlüsselung wird von 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 kundenverwaltete Verschlüsselungsschlüssel (CMEKs, Customer-Managed Encryption Keys) in Cloud KMS mit CMEK-integrierten Diensten wie Managed Service for Apache Spark verwenden. Mit Cloud KMS-Schlüsseln haben Sie die Kontrolle über Schutzlevel, 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üsselungsoptionen finden Sie unter Kundenverwaltete Verschlüsselungsschlüssel (CMEK).

CMEK verwenden

Folgen Sie der Anleitung in diesem Abschnitt, um mit CMEK Daten zu verschlüsseln, die von Managed Service for Apache Spark auf den persistenten Datenträger und in den Managed Service for Apache Spark-Staging-Bucket geschrieben werden.

Sie können mit Cloud Key Management Service Schlüsselbunde und Schlüssel erstellen und verwalten oder Cloud KMS Autokey verwenden, um Schlüsselbunde und Schlüssel automatisch erstellen zu lassen.

Cloud KMS Autokey verwenden

  1. Aktivieren Sie Autokey für den Ordner, der Ihr Projekt enthält.
  2. Schlüssel-Handle erstellen Geben Sie beim Erstellen des Schlüssel-Handles dataproc.googleapis.com/Batch oder dataproc.googleapis.com/Session als --resource-type an. Mit Autokey wird ein Schlüssel generiert und dem Schlüssel-Handle zugewiesen.
  3. Gewähren Sie Dienstkonten Berechtigungen und konfigurieren Sie Ihren Batch- oder Sitzungsworkload, indem Sie die Schritte 4 und 5 im folgenden Abschnitt Schlüssel manuell erstellen und verwenden ausführen. Wenn Sie Ihre Arbeitslast senden, geben Sie den Ressourcennamen des Schlüssel-Handles anstelle des Ressourcennamens des Schlüssels im Feld kmsKey an.

Schlüssel manuell erstellen und verwenden

Führen Sie die folgenden Schritte aus, um Cloud KMS-Schlüssel manuell zu erstellen und mit 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 Compute Engine-, Managed Service for Apache Spark- und Cloud Storage Service Agent-Dienstkonten die Verwendung Ihres Schlüssels:

    1. Informationen zum Zuweisen der Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler zum Compute Engine-Dienst-Agent-Dienstkonto finden Sie unter Ressourcen mit Cloud KMS-Schlüsseln schützenErforderliche Rollen. Wenn dieses Dienstkonto nicht auf der IAM-Seite in der Google Cloud -Konsole aufgeführt ist, klicken Sie auf Von Google bereitgestellte Rollenzuweisungen einschließen, um es aufzulisten.
    2. Weisen Sie dem Dienstkonto des Managed Service for Apache Spark-Dienst-Agents 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 Managed Service for Apache Spark-Ressourcen ausgeführt werden.

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

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

    4. Wenn die Rolle „Managed Service for Apache Spark Service Agent“ 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 Dienst-Agent-Rolle für Managed Service for Apache Spark dem Dienstkonto des Dienst-Agents für Managed Service for Apache Spark zugewiesen ist, können Sie diesen Schritt überspringen.

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

  4. Wenn Sie eine Batcharbeitslast senden, gilt Folgendes:

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

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