Vom Kunden verwaltete Verschlüsselungsschlüssel verwenden

Standardmäßig verschlüsselt Google Cloud Daten im inaktiven Zustand automatisch mit von Google verwalteten Verschlüsselungsschlüsseln. Wenn Sie bestimmte Compliance- oder behördlichen Anforderungen in Bezug auf die Schlüssel zum Schutz Ihrer Daten haben, können Sie für Ihre Trainingsjobs vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) verwenden.

Weitere Informationen zu den spezifischen Vorteilen von CMEK mit AI Platform Training erhalten Sie im folgenden Abschnitt dieses Leitfadens. Weitere allgemeine Informationen zu CMEK einschließlich ihrer Aktivierung finden Sie in der Dokumentation zum Cloud Key Management Service.

In diesem Leitfaden werden einige Vorteile von CMEK für AI Platform Training beschrieben. Außerdem wird erläutert, wie Sie einen Trainingsjob für CMEK konfigurieren.

Details zu CMEK für AI Platform Training

In den folgenden Abschnitten werden grundlegende Informationen zu CMEK für AI Platform Training beschrieben, mit denen Sie sich vor der Konfiguration von CMEK für Ihre Trainingsjobs vertraut machen sollten.

Vorteile von CMEK

Im Allgemeinen sind CMEK am nützlichsten, wenn Sie vollständige Kontrolle über die Schlüssel benötigen, die zum Verschlüsseln Ihrer Daten verwendet werden. Mit CMEK können Sie Ihre Schlüssel in Cloud KMS verwalten. Sie haben beispielsweise die Möglichkeit, einen Schlüssel zu rotieren oder zu deaktivieren oder einen Rotationsplan mit der Cloud KMS API einzurichten. Weitere Informationen zu CMEK und deren Aktivierung finden Sie in der Cloud KMS-Dokumentation.

Wenn Sie einen Trainingsjob ausführen, wird Ihr Code auf einer oder mehreren VM-Instanzen ausgeführt, die von AI Platform Training verwaltet werden. Beim Aktivieren von CMEK für AI Platform Training wird der von Ihnen festgelegte Schlüssel anstelle eines von Google verwalteten Schlüssels zum Verschlüsseln von Daten auf den Bootlaufwerken dieser VMs verwendet. Der CMEK-Schlüssel verschlüsselt die folgenden Arten von Daten:

  • Die Kopie Ihres Trainingscodes auf den VMs.
  • Alle Daten, die von Ihrem Trainingscode geladen werden.
  • Alle temporären Daten, die durch den Trainingscode auf der lokalen Festplatte gespeichert werden.

Der CMEK-Schlüssel verschlüsselt keine Metadaten, die mit Ihrem Trainingsjob verknüpft sind, z. B. den Namen und die Region des Jobs. Metadaten, die mit Trainingsjobs verknüpft sind, werden immer mit dem Standardverschlüsselungsmechanismus von Google verschlüsselt.

CMEK mit anderen Google Cloud-Produkten verwenden

Wenn Sie CMEK für AI Platform Training konfigurieren, wird CMEK nicht automatisch für andere Google Cloud-Produkte konfiguriert, die Sie zusammen mit AI Platform Training verwenden. Zur Verschlüsselung von Daten in anderen Google Cloud-Produkten mit CMEK ist eine zusätzliche Konfiguration erforderlich. Beispiel:

Beschränkungen

In folgenden Situationen können Sie CMEK nicht mit AI Platform Training verwenden:

  • Sie können CMEK nicht mit Trainingsjobs mit TPUs verwenden.
  • Wenn Sie seit 2017 oder früher die AI Platform Training and Prediction API verwenden und einen Trainingsjob mit CMEK senden, erhalten Sie unter Umständen einen Fehler, der einen inkompatiblen Legacy-Authentifizierungsmechanismus beschreibt. Erstellen Sie in diesem Fall ein neues Google Cloud-Projekt oder wählen Sie ein anderes Projekt aus, um Ihren AI Platform Training-Job auszuführen.

CMEK für den Trainingsjob konfigurieren

In den folgenden Abschnitten wird beschrieben, wie Sie einen Schlüsselbund und einen Schlüssel in Cloud Key Management Service erstellen, Berechtigungen zum Verschlüsseln und Entschlüsseln für AI Platform Training für Ihren Schlüssel gewähren und einen Trainingsjob erstellen, der CMEK verwendet.

Hinweise

In diesem Leitfaden wird davon ausgegangen, dass Sie zwei separate Google Cloud-Projekte verwenden, um CMEK für das Training zu konfigurieren:

  • Ein Projekt zur Verwaltung Ihres Verschlüsselungsschlüssels, das als "Cloud KMS-Projekt" bezeichnet wird.
  • Ein Projekt für den Zugriff auf AI Platform Training, die Verwaltung von Trainingsdaten oder -ausgaben in Cloud Storage und die Interaktion mit anderen Google Cloud-Produkten, die Sie für Ihren Anwendungsfall benötigen (als AI Platform-Projekt bezeichnet).

Diese empfohlene Einrichtung unterstützt eine Aufgabentrennung.

Alternativ können Sie für den gesamten Leitfaden ein einzelnes Google Cloud-Projekt verwenden. Nutzen Sie dazu dasselbe Projekt für alle folgenden Aufgaben, die sich auf das Cloud KMS-Projekt beziehen, und die Aufgaben, die sich auf das AI Platform-Projekt beziehen.

Cloud KMS-Projekt einrichten

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Aktivieren Sie die Cloud KMS API.

    Aktivieren Sie die API

AI Platform-Projekt einrichten

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Aktivieren Sie die AI Platform Training & Prediction API.

    Aktivieren Sie die API

gcloud-Befehlszeilentool einrichten

Das Tool gcloud ist für einige Schritte in diesem Leitfaden erforderlich und für andere optional. Installieren und initialisieren Sie das Cloud SDK.

Schlüsselbund und Schlüssel erstellen

Folgen Sie dem Cloud KMS-Leitfaden zum Erstellen von synchronen Schlüsseln, um einen Schlüsselbund und einen Schlüssel zu erstellen. Geben Sie beim Erstellen des Schlüsselbunds als Standort des Schlüsselbunds eine Region an, die AI Platform Training unterstützt. AI Platform Training unterstützt CMEK nur, wenn Ihr Trainingsjob und Schlüssel dieselbe Region verwenden. Sie dürfen keinen dual-regionalen, multiregionalen oder globalen Standort für Ihren Schlüsselbund angeben.

Achten Sie darauf, Schlüsselbund und Schlüssel in Ihrem Cloud KMS-Projekt zu erstellen.

Berechtigungen für AI Platform Training gewähren

Wenn Sie CMEK für Ihren Trainingsjob verwenden möchten, müssen Sie AI Platform Training die Berechtigung gewähren, Daten mit Ihrem Schlüssel zu verschlüsseln und zu entschlüsseln. AI Platform Training verwendet ein von Google verwaltetes Dienstkonto, um Ihre Trainingsjobs auszuführen. Dieses Dienstkonto wird durch eine E-Mail-Adresse im folgenden Format identifiziert:

service-AI_PLATFORM_PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com

Das Dienstkonto für Ihr AI Platform-Projekt finden Sie in der Google Cloud Console auf der Seite IAM. Suchen Sie das Mitglied mit diesem E-Mail-Adressformat, wobei die Variable AI_PLATFORM_PROJECT_NUMBER der Projektnummer Ihres AI Platform-Projekts entspricht. Das Dienstkonto hat auch den Namen Google Cloud ML Engine Service Agent.

Zur Seite "IAM"

Notieren Sie sich die E-Mail-Adresse für dieses Dienstkonto und erteilen Sie ihm in den folgenden Schritten die Berechtigung, Daten mit Ihrem Schlüssel zu verschlüsseln und zu entschlüsseln. Sie können die Berechtigung mithilfe der Google Cloud Console oder mithilfe des gcloud-Befehlszeilentools gewähren:

Cloud Console

  1. Rufen Sie in der Cloud Console die Seite Kryptografische Schlüssel auf und wählen Sie Ihr Cloud KMS-Projekt aus.

    Zur Seite "Kryptografische Schlüssel"

  2. Klicken Sie auf den Namen des Schlüsselbunds, den Sie in einem vorherigen Abschnitt dieses Leitfadens erstellt haben, um zur Seite Schlüsselbunddetails zu gelangen.

  3. Klicken Sie auf das Kästchen für den Schlüssel, den Sie in einem der vorherigen Abschnitte dieses Leitfadens erstellt haben. Wenn ein Infofeld mit dem Namen Ihres Schlüssels noch nicht geöffnet ist, klicken Sie auf Infofeld ansehen.

  4. Klicken Sie im Infobereich auf  Mitglied hinzufügen, um das Dialogfeld KEY_NAME Mitglieder zu hinzufügen zu öffnen. Führen Sie in diesem Dialogfeld folgende Schritte aus:

    1. Geben Sie im Feld Neue Mitglieder die E-Mail-Adresse des Dienstkontos ein, die Sie im vorherigen Abschnitt notiert haben: service-AI_PLATFORM_PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com
    2. Klicken Sie in der Drop-down-Liste Rolle auswählen auf Cloud KMS und wählen Sie dann die Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler aus.

    3. Klicken Sie auf Speichern.

gcloud

Führen Sie diesen Befehl aus:

gcloud kms keys add-iam-policy-binding KEY_NAME \
  --keyring=KEY_RING_NAME \
  --location=REGION \
  --project=KMS_PROJECT_ID \
  --member=serviceAccount:service-AI_PLATFORM_PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com \
  --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Ersetzen Sie in diesem Befehl die folgenden Platzhalter:

  • KEY_NAME: Name des Schlüssels, den Sie in diesem Abschnitt des Leitfadens erstellt haben.
  • KEY_RING_NAME: Schlüsselbund, den Sie in diesem Abschnitt des Leitfadens erstellt haben.
  • REGION: Region, in der Sie Ihren Schlüsselbund erstellt haben.
  • KMS_PROJECT_ID: ID Ihres Cloud KMS-Projekts.
  • AI_PLATFORM_PROJECT_NUMBER: Projektnummer Ihres AI Platform-Projekts, die Sie im vorherigen Abschnitt als Teil der E-Mail-Adresse eines Dienstkontos notiert haben.

Training mit einem benutzerdefinierten Dienstkonto

Wenn Sie vorhaben, ein benutzerdefiniertes Dienstkonto für das Training zu verwenden, weisen Sie Ihrem benutzerdefinierten Dienstkonto auch die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter zu.

Wiederholen Sie dazu die vorherigen Schritte, aber geben Sie anstelle der E-Mail-Adresse des von AI Platform verwalteten Dienstkontos die E-Mail-Adresse Ihres benutzerdefinierten Dienstkontos an.

Trainingsjob mit CMEK erstellen

Nachdem Sie AI Platform Training die Berechtigung zum Verschlüsseln und Entschlüsseln von Daten mit Ihrem Schlüssel gewährt haben, können Sie einen Trainingsjob erstellen, der temporäre Daten mit diesem Schlüssel verschlüsselt. Wenn Sie einen Trainingsjob erstellen, geben Sie das Feld encryptionConfig im Feld trainingInput des Jobs an.

Im folgenden Beispiel wird gezeigt, wie das mit dem Tool gcloud möglich ist. Sie können derzeit keinen Trainingsjob mit CMEK in der Cloud Console erstellen.

In diesem Beispiel wird davon ausgegangen, dass Sie eine Trainingsanwendung in Ihrem lokalen Dateisystem in einem Verzeichnis mit dem Namen trainer mit dem Modul task haben.

  1. Erstellen Sie eine config.yaml-Konfigurationsdatei, die Folgendes enthält:

    trainingInput:
      encryptionConfig:
        kmsKeyName: projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
    

    Ersetzen Sie in der Konfigurationsdatei die folgenden Platzhalter:

    • KMS_PROJECT_ID: ID Ihres Cloud KMS-Projekts.
    • KEY_RING_NAME: Name des Schlüsselbunds.
    • KEY_NAME: Name des Schlüssels.
  2. Führen Sie den folgenden Befehl aus, um den Trainingsjob zu erstellen:

    gcloud ai-platform jobs submit training JOB_ID \
      --config=config.yaml \
      --job-dir=JOB_DIR \
      --module-name=trainer.task \
      --package-path=trainer \
      --python-version=3.7 \
      --region=REGION \
      --runtime-version=2.2 \
      --scale-tier=basic
    

    Ersetzen Sie in diesem Befehl die folgenden Platzhalter:

    • JOB_ID: Ein Name, den Sie für den Job auswählen.
    • JOB_DIR: Ein Pfad zu einem Cloud Storage-Verzeichnis, in das Ihre Trainingsanwendung hochgeladen wird. Der Trainingsjob kann dieses Verzeichnis auch während des Trainings verwenden, um beispielsweise die Ausgabe zu speichern. Wählen Sie der Einfachheit halber ein Verzeichnis in einem Cloud Storage-Bucket in Ihrem AI Platform-Projekt aus.

    • REGION: Region, in der Sie den Schlüsselbund und den Trainingsjob erstellt haben.

    Der Befehl erzeugt bei Erfolg folgende Ausgabe:

    Job [JOB_ID] submitted successfully.
    Your job is still active. You may view the status of your job with the command
    
      $ gcloud ai-platform jobs describe JOB_ID
    
    or continue streaming the logs with the command
    
      $ gcloud ai-platform jobs stream-logs JOB_ID
    jobId: JOB_ID
    state: QUEUED
    

    Sie können jetzt Ihren Trainingsjob beobachten.

Neben den Feldern region und encryptionConfig können Sie die Konfiguration des Trainingsjobs an Ihre Anforderungen anpassen. Sie haben auch die Möglichkeit, einen benutzerdefinierten Container für das Training zu verwenden.

Nächste Schritte