Kundenverwaltete Verschlüsselungsschlüssel verwenden

Cloud Tasks verschlüsselt inaktive Daten. Diese Standardverschlüsselung wird von Google Cloud verwaltet. Zusätzliche Maßnahmen Ihrerseits sind nicht erforderlich.

Wenn Sie bestimmte Compliance- oder behördlichen Anforderungen in Bezug auf die Schlüssel zum Schutz Ihrer Daten haben, können Sie für Cloud Tasks vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) verwenden. Ihre Aufgabe und die zugehörigen inaktiven Daten (Textkörper und Header) werden mit einem Verschlüsselungsschlüssel geschützt, auf den nur Sie zugreifen können und den Sie mit Cloud Key Management Service (Cloud KMS) steuern und verwalten können.

Mit CMEK geschützte Inhalte

Wenn Sie CMEK in Cloud Tasks aktivieren, aktivieren Sie ihn für eine Region. Wenn diese Option aktiviert ist, werden der Text und die Überschrift von Aufgaben, die in dieser Region erstellt wurden, im Ruhemodus mit Ihrem Schlüssel geschützt. Wenn eine Aufgabe erstellt wurde, während CMEK aktiviert war, und der Schlüssel später inaktiv gemacht wird (indem er deaktiviert oder gelöscht wird oder CMEK deaktiviert wird), wird die Aufgabe mit Ihrem Schlüssel verschlüsselt, kann aber nicht ausgeführt werden.

In den folgenden Fällen sind Aufgaben nicht mit CMEK geschützt:

  • Die Aufgabe wurde erstellt, bevor CMEK aktiviert wurde
  • Aufgabe befindet sich nicht in der Region, für die CMEK aktiviert ist
  • Die Aufgabe ist von einer Kompatibilitätseinschränkung betroffen

Kompatibilitätsbeschränkungen

Die Cloud Tasks-Einbindung in CMEK unterstützt nicht den Folgendes:

  • google-gax-Versionen unter 4.0.0: Das NPM-Paket google-gax für Node.js wird bei Versionen unter 4.0.0 nur eingeschränkt unterstützt. Für diese Versionen wird CMEK nur in der Region us-central1 unterstützt. Auch wenn Sie nur Aufgaben in dieser Region haben, empfohlen, ein Upgrade auf Version 4.0.0 oder höher durchzuführen.

  • Integrierter App Engine-Aufgabenwarteschlangendienst: Aufgaben, die mit dem Der integrierte App Engine-Aufgabenwarteschlangendienst ist nicht durch CMEK geschützt, auch wenn Sie befinden sich in einer Region, für die sie aktiviert ist. Das Aktivieren des CMEK verhindert nicht, Erstellung oder Vorgang (z. B. Ausführen oder Löschen) dieser Aufgaben

  • Pull-Queues: Wenn Sie CMEK aktivieren, können Sie Aufgaben in Pull-Queues erstellen und ausführen. Diese Aufgaben sind jedoch nicht durch CMEK geschützt. Pull-Warteschlangen sind ungewöhnlich. Führen Sie folgenden gcloud CLI-Befehl in Ihrem Terminal aus, um zu prüfen, ob es sich um eine Pull-Warteschlange handelt:

    gcloud tasks queues describe QUEUE_NAME

    Ersetzen Sie QUEUE_NAME durch den Namen Ihrer Warteschlange.

    Wenn die aufgeführte type pull ist, ist die Warteschlange eine Pull-Warteschlange. Wenn die type push lautet, wirkt sich diese Beschränkung nicht auf Aufgaben in Ihrer Warteschlange aus.

  • Routing auf Warteschlangenebene: Wenn CMEK aktiviert ist, können Sie kein Routing auf Warteschlangenebene anwenden. Und wenn Das Routing auf Warteschlangenebene ist aktiviert. CMEK kann nicht aktiviert werden. So prüfen Sie, ob das Routing auf Warteschlangenebene aktiviert ist:

    1. Führen Sie den folgenden gcloud CLI-Befehl in Ihrem Terminal aus:

      gcloud tasks queues describe QUEUE_NAME
      Ersetzen Sie QUEUE_NAME durch den Namen der Warteschlange.

    2. Suchen Sie in der Ausgabe nach dem Feld httpTarget und prüfen Sie, ob uriOverride festgelegt wurde. Wenn ein host angegeben ist, ist für die Warteschlange das Routing auf Warteschlangenebene aktiviert und sie ist nicht mit CMEK kompatibel. Entfernen Routing auf Warteschlangenebene, siehe Routing auf Warteschlangenebene aktualisieren oder entfernen Wenn in der Ausgabe uriOverride nicht mit angegebenem host angezeigt wird, Die Warteschlange verwendet kein Routing auf Warteschlangenebene.

  • Aufgaben-TTL: Wenn CMEK aktiviert ist, können Sie nichts festlegen. task_ttl bis mehr als 60 Tage. Wenn task_ttl auf einen Wert über 60 Tage festgelegt ist, können Sie CMEK nicht aktivieren.

Hinweise

Führen Sie die folgenden Schritte aus, bevor Sie einen CMEK in Cloud Tasks verwenden:

  1. APIs aktivieren

    Console

    1. Enable the Cloud KMS and Cloud Tasks APIs.

      Enable the APIs

    gcloud

    1. In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

      At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    2. Legen Sie Ihr Standardprojekt fest. Dies sollte das Projekt sein, das Cloud Tasks-Ressourcen, die Sie schützen möchten, CMEK Wenn Sie einen Befehl in einem anderen Projekt ausführen möchten, z. B. in dem Projekt, das Ihre Cloud KMS-Ressourcen enthält, wird auf dieser Seite das Flag --project im gcloud CLI-Befehl angegeben und Sie werden darüber informiert, welches Projekt Sie angeben müssen.

      gcloud config set project PROJECT_ID

      Ersetzen Sie PROJECT_ID durch die ID des Projekts. der Ihre Cloud Tasks-Ressourcen enthält.

    3. Aktualisieren Sie die gcloud-Komponenten:

      gcloud components update

    4. Aktivieren Sie die Cloud KMS und Cloud Tasks APIs für das Projekt, in dem Ihre Verschlüsselungsschlüssel gespeichert werden.

      gcloud services enable cloudkms.googleapis.com cloudtasks.googleapis.com 
      --project=PROJECT_ID

      Ersetzen Sie PROJECT_ID durch die ID des Projekts, in dem Ihre Verschlüsselungsschlüssel gespeichert werden sollen. Dies kann dasselbe Projekt sein wie um den Zugriff auf Ihre Cloud Tasks-Ressourcen Cloud KMS-Schlüssel, erwägen Sie Cloud KMS in einem separaten Projekt einrichten

  2. Cloud KMS erstellt Cloud-Audit-Logs, wenn Schlüssel aktiviert sind, deaktiviert oder von Cloud Tasks-Ressourcen zum Verschlüsseln und Entschlüsseln verwendet Daten. Achten Sie darauf, dass für die Cloud KMS API in Ihrem Projekt Logging aktiviert ist, und dass Sie festgelegt haben, welche protokollspezifischen Berechtigungen und Rollen für Ihren Anwendungsfall gelten. Weitere Informationen finden Sie unter Informationen zum Audit-Logging in Cloud KMS.

  3. Identity and Access Management-Rollen abrufen

    So erhalten Sie die Berechtigungen, die Sie zur Verwendung eines CMEK mit Cloud Tasks benötigen: bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen für Ihr Projekt:

    • Aktivieren oder deaktivieren Sie CMEK: roles/cloudtasks.admin
    • Verwendeten Schlüssel anzeigen: roles/cloudtasks.viewer

    Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Cloud KMS-Schlüsselbund und -Schlüssel erstellen

Wenn Sie bereits einen Schlüsselbund in derselben Region wie Ihr Cloud Tasks-Ressourcen und Sie möchten diesen Schlüssel und Schlüsselbund verwenden, überspringen Sie diesen Abschnitt. Falls nicht, folgen Sie dieser Anleitung, um einen Cloud KMS-Schlüssel und einen Schlüsselbund zu erstellen.

  1. Erstellen Sie einen Schlüsselbund.

    • Der Schlüsselbund muss sich in der Region befinden, in der sich die Cloud Tasks-Ressourcen befinden, die Sie schützen möchten. Weitere Informationen finden Sie unter Cloud KMS-Standorte und Cloud Tasks-Standorte.

    • Der Schlüsselbund und die CMEK-geschützten Cloud Tasks-Ressourcen können sich im selben Projekt befinden, sondern um den Zugriff auf Ihren Cloud KMS zu beschränken. sollten Sie sich Cloud KMS in einem separaten Projekt einrichten

  2. Schlüssel für einen bestimmten Schlüsselbund erstellen

ID für einen Cloud KMS-Schlüssel abrufen

Die Ressourcen-ID für einen Cloud KMS-Schlüssel ist erforderlich, wenn Sie CMEK aktivieren für Cloud Tasks.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Schlüsselverwaltung auf und wählen Sie den Tab Schlüsselinventar aus.

    Zu „Schlüsselinventar“

  2. Klicken Sie für den Schlüssel, dessen Ressourcen-ID Sie abrufen, auf Aktionen.

  3. Klicken Sie auf Ressourcenname kopieren.

    Die Ressourcen-ID für den Schlüssel wird in die Zwischenablage kopiert. Das Format ist etwa so:

    projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
    

gcloud

  1. Alle Schlüssel eines bestimmten Schlüsselbunds auflisten:

    gcloud kms keys list --keyring=KEY_RING --location=LOCATION --project=PROJECT_ID

    Ersetzen Sie Folgendes:

    • KEY_RING: der Name des Schlüsselbunds
    • LOCATION: Region des Schlüsselbunds
    • PROJECT_ID: die ID des Projekts, das enthält den Schlüsselbund

    Die Ausgabe enthält die Schlüssel-ID für jeden Schlüssel. Beispiel:

    NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
    

Dem Cloud Tasks-Dienst-Agent Zugriff auf den Schlüssel gewähren

Sie müssen dem Cloud Tasks-Dienst-Agent die entsprechende Berechtigung erteilen. die Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler IAM-Rolle (Identity and Access Management), damit auf Cloud KMS zugegriffen werden kann Schlüssel:

Console

  1. Rufen Sie in der Google Cloud Console die Seite „Identity and Access Management“ auf.

    IAM aufrufen

  2. Klicken Sie auf das Kästchen Von Google bereitgestellte Rollenzuweisungen einschließen.

  3. Suchen Sie nach dem Cloud Tasks-Dienstkonto, indem Sie Folgendes eingeben: cloudtasks.iam.gserviceaccount.com im Filter.

    Das Cloud Tasks-Dienstkonto hat das Format service-PROJECT_NUMBER@gcp-sa-cloudtasks.iam.gserviceaccount.com.

  4. Klicken Sie auf das Stiftsymbol Hauptkonto bearbeiten.

  5. Klicken Sie im Bereich, der daraufhin geöffnet wird, auf Weitere Rolle hinzufügen.

  6. Suchen Sie nach der Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler und wählen Sie sie aus.

  7. Klicken Sie auf Speichern.

gcloud

gcloud kms keys add-iam-policy-binding KEY_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudtasks.iam.gserviceaccount.com \
    --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Ersetzen Sie Folgendes:

  • KEY_ID: die voll qualifizierte Ressourcen-ID für Ihren Schlüssel. Eine Anleitung dazu finden Sie unter Rufen Sie die ID für einen Cloud KMS-Schlüssel ab. Fügen Sie kein Schlüsselversionsnummer. Wenn Sie eine Schlüsselversionsnummer einfügen, schlägt fehl.
  • PROJECT_NUMBER: Ihre Google Cloud-Projektnummer. Sie finden Ihre Projektnummer auf der Willkommensseite der Google Cloud Console oder durch Ausführen des folgenden Befehls:

    PROJECT=$(gcloud info --format='value(config.project)')
    gcloud projects describe ${PROJECT} --format="value(projectNumber)"

Solange der Dienst-Agent die roles/cloudkms.cryptoKeyEncrypterDecrypter hat Rolle kann eine Aufgabe in Ihrer CMEK-fähigen Region ihre Daten mit den CMEK-Schlüssel. Wenn Sie diese Rolle widerrufen oder den CMEK deaktivieren oder löschen dass kein Zugriff auf diese Daten besteht. In diesem Dokument Deaktivieren Sie Cloud KMS.

CMEK für Cloud Tasks aktivieren

Sie können CMEK über die API oder die gcloud CLI aktivieren. Bei Cloud Tasks wird CMEK je nach Region aktiviert. Sie wird nicht für einzelne Aufgaben aktiviert. Wenn CMEK für eine bestimmte Region in Cloud Tasks aktiviert ist, sind alle Aufgaben in dieser Region durch CMEK geschützt.

API

Sie können CMEK durch Aufrufen der Methode Update CMEK config aktivieren. Die Cloud Tasks API bietet die Methode Update CMEK config sowohl in der REST API als auch in der RPC API:

gcloud

Verwenden Sie den folgenden Befehl, um CMEK mit der Google Cloud CLI zu aktivieren:

gcloud tasks cmek-config update --location=LOCATION --kms-key-name=KEY_ID

Ersetzen Sie Folgendes:

  • LOCATION: die Region Ihres Cloud Tasks-Ressource
  • KEY_ID: die voll qualifizierte Ressourcen-ID für Ihr . Eine Anleitung dazu finden Sie unter ID für einen Cloud KMS-Schlüssel abrufen. Fügen Sie keine Schlüsselversionsnummer ein. Das Hinzufügen einer Schlüsselversionsnummer kann dazu führen, dass dieser Befehl fehlschlägt.

Folgen Sie der Anleitung im Abschnitt Verwendeten Schlüssel ermitteln, um zu prüfen, ob der Schlüssel erfolgreich aktiviert wurde.

Für vorhandene Aufgaben aktivieren

CMEK schützt nicht Aufgaben, die vor der Aktivierung von CMEK erstellt wurden für Cloud Tasks So schützen Sie bereits vorhandene Aufgaben mit CMEK:

  1. Aktivieren Sie CMEK (siehe Abschnitt CMEK aktivieren).
  2. Ersetzen Sie die bereits vorhandenen Aufgaben. Dafür gibt es im Wesentlichen zwei Möglichkeiten. Welche Methode am besten geeignet ist, hängt davon ab, was für Sie wichtig ist:

    • Kontinuierliche Ausführung: Um eine kontinuierliche Ausführung zu gewährleisten (Auslieferung mindestens einmal), können Sie die Aufgabe zuerst neu erstellen und dann die vorhandene Aufgabe löschen, nachdem Sie überprüft haben, dass die neue Aufgabe wie erwartet funktioniert. Das kann zu doppelten Ausführungen führen, da sowohl die alte als auch die neue Aufgabe ausgeführt werden kann, bevor Sie die alte Aufgabe löschen.

    • Duplikate verhindern: Um doppelte Ausführungen zu vermeiden (Auslieferung höchstens einmal), können Sie zuerst die alte Aufgabe löschen und dann neu erstellen. Dies kann zu verlorenen Ausführungen führen, da zwischen dem Löschen der alten Aufgabe und dem Erstellen der neuen Zeit vergeht.

Verwendeten Schlüssel identifizieren

Um den CMEK-Schlüssel zu ermitteln, der für Ihre Cloud Tasks-Ressourcen verwendet wird, führen Sie in Ihrem Terminal den folgenden gcloud CLI-Befehl aus:

gcloud tasks cmek-config describe --location=LOCATION

Ersetzen Sie LOCATION durch die Region Ihrer Cloud Tasks-Ressourcen

Wenn keine Ausgabe vorhanden ist, ist CMEK für den angegebenen Speicherort nicht konfiguriert.

CMEK für Cloud Tasks deaktivieren

Sie können CMEK mithilfe der API oder der gcloud CLI deaktivieren. Für Cloud Tasks ist CMEK je nach Region deaktiviert. Sie wird nicht durch einzelne Aufgaben deaktiviert. Wenn CMEK für eine bestimmte Region in Cloud Tasks-Aufgaben in dieser Region sind nicht durch CMEK geschützt.

Das Deaktivieren von CMEK wirkt sich auf Aufgaben aus, die in der Zukunft erstellt werden, nicht auf Aufgaben, die im Vergangen:

  • Neue Aufgaben: sind nicht durch CMEK geschützt.
  • Bereits vorhandene Aufgaben: Aufgaben, die erstellt wurden, während CMEK aktiviert war, bleiben verschlüsselt und werden so lange ausgeführt, wie der Cloud KMS-Schlüssel aktiv ist.

API

Sie können CMEK deaktivieren, indem Sie die Methode Update CMEK config aufrufen und den Cloud KMS-Schlüssel löschen, indem Sie ihn durch einen leeren String ersetzen. Die Die Cloud Tasks API bietet die Methode Update CMEK config sowohl in der REST- und RPC APIs:

gcloud

Verwenden Sie den folgenden Befehl, um CMEK mit der Google Cloud CLI zu deaktivieren:

gcloud tasks cmek-config update --location=LOCATION --clear-kms-key

Ersetzen Sie Folgendes:

  • LOCATION: die Region Ihrer Cloud Tasks-Ressource.

Cloud KMS entfernen

Wenn Sie den Datenzugriff auf Ihre Aufgaben widerrufen möchten, können Sie Cloud KMS entfernen. Dafür gibt es drei Möglichkeiten:

  • Deaktivieren Sie den vom Kunden verwalteten Verschlüsselungsschlüssel. Durch das Deaktivieren eines CMEK-Schlüssels wird der Zugriff auf alle Daten gesperrt, die durch während der Schlüssel deaktiviert ist. Sie können keine Aufgaben erstellen oder darauf zugreifen mit einem deaktivierten Schlüssel. Es wird versucht, eine CMEK-geschützte Aufgabe auszuführen, während Wenn der Schlüssel deaktiviert ist, führt dies zu einem UNKNOWN-Fehler in Cloud Logging. Sie können Sie können den Schlüssel später bei Bedarf wieder aktivieren. Wenn Sie einen vom Kunden verwalteten Verschlüsselungsschlüssel deaktivieren, kann es bis zu 5 Minuten dauern damit die Änderung wirksam wird.

  • Vom Kunden verwaltete Datei löschen Verschlüsselungsschlüssel. Wenn Sie einen CMEK-Schlüssel löschen, wird der Zugriff auf alle Daten, die durch diese Schlüsselversion geschützt sind, dauerhaft gesperrt. Sie können keine Aufgaben mit einem Schlüssel aufrufen oder erstellen, der zerstört wurde. Wenn eine Aufgabe erstellt wurde, während CMEK aktiviert war, und der Schlüssel später gelöscht wird, wird die Aufgabe mit Ihrem Schlüssel verschlüsselt, kann aber nicht ausgeführt werden. Wenn wenn die Aufgabe ausgeführt wird, protokolliert Cloud Logging den Fehler UNKNOWN. Wann? einen vom Kunden verwalteten Verschlüsselungsschlüssel löschen, kann es bis zu 5 Minuten dauern, die anzuwendende Änderung.

  • Widerrufen: cloudkms.cryptoKeyEncrypterDecrypterIAM-Rolle von der Cloud Tasks-Dienst-Agent. Dies betrifft alle Aufgaben im Google Cloud-Projekt, die die Verschlüsselung mit CMEK unterstützen. Sie können nicht neue CMEK-integrierte Aufgaben erstellen oder CMEK-verschlüsselte Ressourcen anzeigen.

Obwohl keiner dieser Vorgänge eine sofortige Zugriffssperre garantiert, werden IAM-Änderungen im Allgemeinen schneller übernommen. Weitere Informationen Siehe Konsistenz von Cloud KMS-Ressourcen und Weitergabe von Zugriffsänderungen

Preise

Durch diese Integration entstehen keine zusätzlichen Kosten, die über die Schlüsselvorgänge hinausgehen. die Ihrem Google Cloud-Projekt in Rechnung gestellt werden. Aktuelle Preisinformationen finden Sie unter Cloud KMS-Preise.