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:
Cloud Storage: Wenn Sie einen nicht benutzerdefinierten Containerjob ausführen, lädt AI Platform Training Ihre Trainingsanwendung aus einem Cloud Storage-Bucket. Darüber hinaus werden bei den meisten Trainingsjobs auch trainierte Modellartefakte wie ein TensorFlow SaveModel-Verzeichnis in ein Cloud Storage-Bucket als Teil der Ausgabe exportiert.
Informationen zur Verschlüsselung Ihrer Daten in Cloud Storage mit CMEK finden Sie im Cloud Storage-Leitfaden zur Verwendung von vom Kunden verwalteten Verschlüsselungsschlüsseln. Sie können Ihren Verschlüsselungsschlüssel als Standardschlüssel für die Cloud Storage-Buckets festlegen, die Sie mit AI Platform Training verwenden, oder damit bestimmte Objekte verschlüsseln.
Weitere Informationen zur Verwendung von CMEK in Cloud Storage
Container Registry: Wenn Sie einen benutzerdefinierten Containerjob ausführen, lädt AI Platform Training Ihr Container-Image aus Container Registry.
Informationen zur Verschlüsselung Ihres Container-Images mit CMEK finden Sie im Container Registry-Leitfaden zur Verwendung von vom Kunden verwalteten Verschlüsselungsschlüsseln.
Cloud Logging: Wenn Sie einen Trainingsjob ausführen, speichert AI Platform Training Logs in Logging. Diese Logs sind nicht mit CMEK verschlüsselt. Wenn Sie jedoch den Logrouter verwenden, können Sie CMEK für bestimmte temporäre Dateien konfigurieren, die der Logrouter erstellt.
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
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud KMS API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud KMS API.
AI Platform-Projekt einrichten
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction API.
Google Cloud CLI einrichten
Die gcloud CLI ist für einige Schritte in diesem Leitfaden erforderlich und für andere optional.Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
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 einen Dienstent, um Ihre Trainingsjobs auszuführen. Dieser Dienst-Agent wird durch eine E-Mail-Adresse im folgenden Format identifiziert:
service-AI_PLATFORM_PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com
Den entsprechenden Dienst-Agenten 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. Der Dienst-Agent hat auch den Namen Google Cloud ML Engine Service Agent
.
Notieren Sie sich die E-Mail-Adresse für diesen Dienst-Agent 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 der Google Cloud CLI gewähren:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Kryptografische Schlüssel auf und wählen Sie Ihr Cloud KMS-Projekt aus.
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.
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.
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:- 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
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.
Klicken Sie auf Speichern.
- Geben Sie im Feld Neue Mitglieder die E-Mail-Adresse des Dienstkontos ein, die Sie im vorherigen Abschnitt notiert haben:
gcloud
Führen Sie dazu 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.
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 der gcloud CLI möglich ist. Sie können derzeit keinen Trainingsjob mit CMEK in der Google 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.
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.
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.11 \ --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
- Vom Kunden verwaltete Verschlüsselungsschlüssel (Customer Managed Encryption Keys, CMEK)
- CMEK mit anderen Google Cloud-Produkten verwenden
- Informationen zum Konfigurieren zusätzlicher Optionen neben CMEK finden Sie im Leitfaden zum Ausführen eines Trainingsjobs