Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK)

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 Ressourcen vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) verwenden.

Weitere Informationen zu den spezifischen Vorteilen von CMEK mit Vertex AI-Ressourcen finden 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 verschiedene Vorteile von CMEK für Vertex AI-Ressourcen beschrieben. Außerdem wird erläutert, wie Sie einen Trainingsjob für CMEK konfigurieren.

CMEK für Vertex AI-Ressourcen

In den folgenden Abschnitten erhalten Sie grundlegende Informationen zu CMEK für Vertex AI-Ressourcen, die Voraussetzung für das Konfigurieren von CMEK für Ihre Jobs sind.

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 AutoML- oder benutzerdefinierten Trainingsjob ausführen, wird Ihr Code auf einer oder mehreren VM-Instanzen ausgeführt, die von Vertex AI verwaltet werden. Beim Aktivieren von CMEK für Vertex AI-Ressourcen 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 Codes auf den VMs.
  • Alle Daten, die von Ihrem Code geladen werden.
  • Alle temporären Daten, die durch den Code auf dem lokalen Laufwerk gespeichert werden.
  • Von AutoML trainierte Modelle.
  • Mediendateien (Daten), die in Medien-Datasets hochgeladen wurden.

Im Allgemeinen verschlüsselt der CMEK-Schlüssel keine Metadaten, die mit Ihrem Vorgang verknüpft sind, z. B. den Namen und die Region des Jobs oder den Anzeigenamen eines Datasets. Mit Vorgängen verknüpfte Metadaten werden immer mit dem Standardverschlüsselungsmechanismus von Google verschlüsselt.

Wenn ein Nutzer bei Datasets Daten in ein Dataset importiert, werden die Datenelemente und Annotationen mit CMEK verschlüsselt. Der Anzeigename des Datasets ist nicht mit CMEK verschlüsselt.

Bei Modellen sind die im Speichersystem (z. B. Laufwerk) gespeicherten Modelle CMEK-verschlüsselt. Alle Modellbewertungsergebnisse sind CMEK-verschlüsselt.

Bei Endpunkten sind alle Modelldateien, die für die Modellbereitstellung unter dem Endpunkt verwendet werden, mit CMEK verschlüsselt. Dies schließt keine Daten im Arbeitsspeicher ein.

Für die Batchvorhersage sind temporäre Dateien (z. B. Modelldateien, Logs, VM-Laufwerke), die zur Ausführung des Batchvorhersagejobs verwendet werden, mit CMEK verschlüsselt. Ergebnisse der Batchvorhersage werden im vom Nutzer angegebenen Ziel gespeichert. Deshalb berücksichtigt Vertex AI den Standardwert der Verschlüsselungskonfiguration des Ziels. Andernfalls werden die Ergebnisse auch mit CMEK verschlüsselt.

Für das Daten-Labeling sind alle Eingabedateien (Bild, Text, Video, Tabellarisch), temporäre Diskussionen (z. B. Fragen, Feedback) und die Ausgabe (Labeling-Ergebnis) CMEK-verschlüsselt. Die Anzeigenamen der Annotationsspezifikation sind nicht mit CMEK verschlüsselt.

Externe Schlüssel

Mit Cloud External Key Manager (Cloud EKM) können Sie von Ihnen verwaltete externe Schlüssel erstellen, um Daten in Google Cloud zu verschlüsseln.

Wenn Sie einen Cloud EKM-Schlüssel verwenden, hat Google keine Kontrolle über die Verfügbarkeit Ihres extern verwalteten Schlüssels. Wenn Sie Zugriff auf eine Ressource anfordern, die mit einem extern verwalteten Schlüssel verschlüsselt ist, und der Schlüssel nicht verfügbar ist, lehnt Vertex AI die Anfrage ab. Es kann bis zu 10 Minuten dauern, bis Sie auf die Ressource zugreifen können, sobald der Schlüssel verfügbar ist.

Weitere Überlegungen zur Verwendung externer Schlüssel finden Sie unter Cloud External Key Manager.

CMEK mit anderen Google Cloud-Produkten verwenden

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

Aktuelle von CMEK unterstützte Ressourcen

Die aktuellen, von CMEK unterstützten Vertex AI-Ressourcen sind: Die CMEK-Unterstützung für Vorschau-Features ist auch im Vorschaustatus.

Ressource Verschlüsseltes Material Links zur Dokumentation
Dataset
  • Alle vom Nutzer importierten Daten (z. B. Textinhalte oder Videos) für DataItems und Annotations.
  • Vom Nutzer erstellte Inhalte wie AnnotationSpecs, ColumnSpecs.
Modell
  • Hochgeladene Modelldateien.
  • Bewertungsergebnisse des trainierten Modells.
Endpunkt
  • Alle Modelldateien, die für die Modellbereitstellung unter dem Endpunkt verwendet werden. Dies enthält keine speicherinternen Daten, aber die Modellbereitstellung wird automatisch aufgehoben, wenn der Schlüssel deaktiviert wird.
CustomJob (schließt Ressourcen aus, die eine TPU-VM verwenden)
  • Die Kopie des Codes auf den VMs, die zum Ausführen des Vorgangs verwendet werden.
  • Alle Daten, die von Ihrem Code geladen werden.
  • Alle temporären Daten, die durch den Code auf dem lokalen Laufwerk gespeichert werden.
HyperparameterTuningJob (schließt Ressourcen aus, die eine TPU-VM verwenden)
  • Die Kopie des Codes auf den VMs, die zum Ausführen des Vorgangs verwendet werden.
  • Alle Daten, die von Ihrem Code geladen werden.
  • Alle temporären Daten, die durch den Code auf dem lokalen Laufwerk gespeichert werden.
TrainingPipeline (schließt Ressourcen aus, die eine TPU-VM verwenden)
  • Die Kopie des Codes auf den VMs, die zum Ausführen des Vorgangs verwendet werden.
  • Alle Daten, die von Ihrem Code geladen werden.
  • Alle temporären Daten, die durch den Code auf dem lokalen Laufwerk gespeichert werden.
  • Von AutoML trainierte Modelle.
BatchPredictionJob (ohne AutoML-Bild-batchPrediction)
  • Alle temporären Dateien (z. B. Modelldateien, Logs, VM-Laufwerke), die im Job verwendet werden, um den Batchvorhersagejob fortzusetzen.
  • Wenn die geschriebenen Ergebnisse der BatchPrediction im vom Nutzer angegebenen Ziel gespeichert werden, wird die Verschlüsselungskonfiguration des Standardwerts berücksichtigt. Andernfalls wird sie mit CMEK verschlüsselt.
ModelDeploymentMonitoringJob
  • Alle temporären Dateien (z. B. Trainings-Dataset-Dateien, Logs, VM-Laufwerke), die im Job verwendet werden, um den Monitoring-Job der Modellbereitstellung zu verarbeiten.
  • Alle Daten, die zur Erkennung von Monitoring-Anomalien verwendet werden.
  • Wenn der Schlüssel deaktiviert ist, wird der Monitoring-Job für die Modellbereitstellung angehalten.
PipelineJob
  • Der Pipelinejob und alle seine Unterressourcen.
Metadatenspeicher
  • Alle Inhalte im Metadatenspeicher.
TensorBoard
  • Alle Daten aus den hochgeladenen TensorBoard-Logs, einschließlich Skalaren, Histogrammen, Grafik-Definitionen, Bildern und Text
Feature Store
  • Der Feature Store und alle Inhalte im Feature Store.

CMEK-Unterstützung für generative KI-Abstimmungspipelines

CMEK wird in der Abstimmungspipeline der folgenden Modelle bereitgestellt:

  • text-bison for PaLM 2 (GPU)
  • BERT
  • T5
  • image-generation (GPU)

Beschränkungen

CMEK wird in den folgenden Fällen nicht unterstützt:

  • Batchvorhersage für AutoML-Bildmodell (BatchPredictionJob)
  • TPU-Abstimmung

CMEK für Ihre Ressourcen konfigurieren

In den folgenden Abschnitten wird beschrieben, wie Sie einen Schlüsselbund und einen Schlüssel in Cloud Key Management Service erstellen, Vertex AI-Berechtigungen zum Verschlüsseln und Entschlüsseln für Ihren Schlüssel gewähren und Ressourcen erstellen, die CMEK verwenden.

Hinweis

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

  • Ein Projekt zur Verwaltung Ihres Verschlüsselungsschlüssels, das als "Cloud KMS-Projekt" bezeichnet wird.
  • Ein Projekt für den Zugriff auf Vertex AI-Daten 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. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Enable the Cloud KMS API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  7. Enable the Cloud KMS API.

    Enable the API

AI Platform-Projekt einrichten

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Enable the Vertex AI API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  7. Enable the Vertex AI API.

    Enable the 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 Vertex AI-Vorgänge unterstützt. Das Vertex AI-Training unterstützt CMEK nur, wenn Ihre Ressource und Ihr 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.

Vertex AI-Berechtigungen erteilen

Wenn Sie CMEK für Ihre Ressourcen verwenden möchten, müssen Sie Vertex AI die Berechtigung gewähren, Daten mit Ihrem Schlüssel zu verschlüsseln und zu entschlüsseln. Vertex AI verwendet einen von Google verwalteten Dienst-Agent, um Vorgänge mit Ihren Ressourcen auszuführen. Dieses Dienstkonto wird durch eine E-Mail-Adresse im folgenden Format identifiziert:

service-PROJECT_NUMBER@gcp-sa-aiplatform.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 Vertex AI 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 der Google Cloud CLI gewähren:

Google Cloud Console

  1. Klicken Sie in der Google Cloud Console auf Sicherheit und wählen Sie Schlüsselverwaltung aus. Dadurch gelangen Sie zur Seite Kryptografische Schlüssel und wählen 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@gcp-sa-aiplatform.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@gcp-sa-aiplatform.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.

Ressourcen mit dem KMS-Schlüssel erstellen

Wenn Sie eine neue von CMEK unterstützte Ressource erstellen, können Sie Ihren Schlüssel als einen der Erstellungsparameter angeben.

Console

Wenn Sie im Vertex AI-Bereich der Google Cloud Console eine neue von CMEK unterstützte Ressource erstellen, können Sie den Schlüssel im Abschnitt für allgemeine oder erweiterte Optionen auswählen:

Abschnitt für Auswahl des Verschlüsselungsschlüssels für Ressource

REST UND BEFEHLSZEILE

Wenn Sie eine unterstützte Ressource erstellen, fügen Sie der Anfrage ein encryptionSpec-Objekt hinzu und legen Sie das Feld encryptionSpec.kmsKeyName so fest, dass es auf Ihre Schlüsselressource verweist.

Wenn Sie beispielsweise eine Ressource dataset erstellen, geben Sie Ihren Schlüssel im Anfragetext an:

 {
   "displayName": DATASET_NAME,
   "metadataSchemaUri": METADATA_URI,
   "encryptionSpec": {
     "kmsKeyName": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME"
   }
 }

Java

Wenn Sie eine unterstützte Ressource erstellen, setzen Sie die EncryptionSpec so fest, dass sie auf Ihre Schlüsselressource verweist. Weitere Informationen finden Sie in der Dokumentation zur Vertex AI-Clientbibliothek für Java.

Node.js

Wenn Sie eine unterstützte Ressource erstellen, legen Sie den Parameter encryptionSpec so fest, dass er auf Ihre Schlüsselressource verweist. Weitere Informationen finden Sie in der Dokumentation zur Vertex AI-Clientbibliothek für Node.js.

Python

Wenn Sie eine unterstützte Ressource erstellen, legen Sie den Parameter encryption_spec so fest, dass er auf Ihre Schlüsselressource verweist. Weitere Informationen finden Sie in der Dokumentation zum Python-Client für Cloud AI Platform.

Nächste Schritte