Kundenverwaltete Verschlüsselungsschlüssel verwenden

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

Wenn Sie bestimmte Compliance- oder regulatorische Anforderungen in Bezug auf die Schlüssel haben die Ihre Daten schützen, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) für Cloud Tasks 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, wird es für eine Region aktiviert. Wenn diese Option aktiviert ist, sind der Text und die Kopfzeile von Aufgaben, die in dieser Region erstellt wurden, geschützt mit deinem Schlüssel. Wenn eine Aufgabe erstellt wurde, während CMEK aktiviert war, und der Schlüssel später deaktiviert wird (durch Deaktivieren oder Löschen des Schlüssels oder durch CMEK deaktivieren), ist 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ätsbeschränkung betroffen

Kompatibilitätseinschränkungen

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

  • google-gax Versionen niedriger 4.0.0: Das NPM-Paket google-gax für Node.js bietet eingeschränkte Unterstützung unter Versionen unter 4.0.0. Bei diesen Versionen wird CMEK nur in der Region us-central1. Auch wenn Sie nur Aufgaben in dieser Region haben, empfohlen, ein Upgrade auf Version 4.0.0 oder höher durchzuführen.

  • Integrierter Taskqueue-Dienst der App Engine: Aufgaben, die mit dem integrierten Taskqueue-Dienst der App Engine erstellt wurden, werden nicht durch CMEK geschützt, auch wenn sie sich in einer Region befinden, in der CMEK aktiviert ist. Das Aktivieren des CMEK verhindert nicht, Erstellung oder Vorgang (z. B. Ausführen oder Löschen) dieser Aufgaben

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

    gcloud tasks queues describe QUEUE_NAME

    Ersetzen Sie QUEUE_NAME durch den Namen der 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. Um zu prüfen, ob Sie das Routing auf Warteschlangenebene aktiviert ist, gehen Sie so vor:

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

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

    2. Suchen Sie in der Ausgabe nach dem Feld httpTarget und prüfen Sie, ob das Feld uriOverride wurde festgelegt. Wenn ein host angegeben ist, wurde die Warteschlange Routing auf Warteschlangenebene aktiviert und 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. Und wenn task_ttl auf einen Wert größer als 60 Tagen ausführen, können Sie CMEK nicht aktivieren.

Hinweise

Führen Sie die folgenden Schritte aus, bevor Sie 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. Das sollte das Projekt sein, das die Cloud Tasks-Ressourcen enthält, die Sie mit CMEK schützen möchten. Wenn Sie einen Befehl in einem anderen Projekt ausführen müssen, z. B. mit Ihren Cloud KMS-Ressourcen enthält, wird diese Seite Fügen Sie das Flag --project in den Befehl der gcloud CLI ein und welches Projekt Sie angeben sollen.

      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. Das kann dasselbe Projekt sein wie das Ihrer Cloud Tasks-Ressourcen. Wenn Sie den Zugriff auf Ihre Cloud KMS-Schlüssel jedoch einschränken möchten, sollten 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 Logging ist aktiviert für die Cloud KMS API in Ihrem Projekt benötigen und Sie sich entschieden haben, welche Logging-spezifischen Berechtigungen und Rollen für Ihren Anwendungsfall gelten. Weitere Informationen finden Sie unter Audit-Logging-Informationen 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
    • Sehen Sie sich den verwendeten Schlüssel an: 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 Ihr Cloud KMS-Schlüssel und -Schlüsselbund.

  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. Wenn Sie den Zugriff auf Ihre Cloud KMS-Schlüssel jedoch einschränken möchten, sollten Sie 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 Tab Schlüsselinventar

    Zum 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. Geben Sie cloudtasks.iam.gserviceaccount.com in das Filterfeld ein, um das Cloud Tasks-Dienstkonto zu finden.

    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 Encrypter/Decrypter 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. Geben Sie keine Schlüsselversionsnummer an. 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 Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter hat, kann eine Aufgabe in Ihrer CMEK-fähigen Region ihre Daten mit dem CMEK-Schlüssel verschlüsseln und entschlüsseln. 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 mit der API oder der 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 sind alle Aufgaben in dieser Region durch einen CMEK geschützt.

API

Sie können CMEK durch Aufrufen der Methode Update CMEK config aktivieren. 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 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. Keinen Schlüssel hinzufügen Versionsnummer. Das Hinzufügen einer Schlüsselversionsnummer kann dazu führen, dass dieser Befehl fehlschlägt.

Folgen Sie der Anleitung in der Abschnitt Verwendeten Schlüssel identifizieren.

Für bereits vorhandene Aufgaben aktivieren

CMEK bietet keinen Schutz für Aufgaben, die erstellt wurden, bevor CMEK für Cloud Tasks aktiviert wurde. 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. Die die beste Vorgehensweise hängt davon ab, was Ihnen wichtig ist:

    • Kontinuierliche Ausführung:Für eine kontinuierliche Ausführung (mindestens einmal) Lieferung) haben, können Sie die Aufgabe zuerst neu erstellen und dann die bestehende nachdem Sie überprüft haben, ob die neue Aufgabe wie erwartet funktioniert. Dies kann zu doppelte Ausführungen, da sowohl die alte als auch die neue Aufgabe möglicherweise vor der Ausführung löschen Sie die alte Aufgabe.

    • Doppelte Ausführungen:Damit werden doppelte Ausführungen vermieden (höchstens einmal). Lieferung) haben, können Sie die alte Aufgabe zuerst löschen und dann neu erstellen. Dies kann Ausführungen aufgrund der Zeit zwischen dem Löschen der der alten Aufgabe und der Erstellung einer neuen.

Verwendeten Schlüssel identifizieren

So ermitteln Sie den für Ihre Cloud Tasks-Ressourcen verwendeten CMEK-Schlüssel: Führen Sie den folgenden gcloud CLI-Befehl in Ihrem Terminal aus:

gcloud tasks cmek-config describe --location=LOCATION

Ersetzen Sie LOCATION durch die Region Ihrer Cloud Tasks-Ressourcen

Wenn keine Ausgabe vorhanden ist, ist für den angegebenen Standort kein CMEK konfiguriert.

CMEK für Cloud Tasks deaktivieren

Sie können CMEK mithilfe der API oder der gcloud CLI deaktivieren. Für Cloud Tasks, CMEK ist nach Region deaktiviert. Es wurde nicht deaktiviert durch für einzelne Aufgaben. 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 bei aktiviertem CMEK erstellt wurden, bleiben erhalten. verschlüsselt und werden weitergeführt, solange der Cloud KMS-Schlüssel bleibt aktiv.

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 Ihres 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. Durch das Löschen eines CMEK-Schlüssels wird der Zugriff auf alle Daten dauerhaft gesperrt durch diese Schlüsselversion geschützt. 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. Wenn Sie einen vom Kunden verwalteten Verschlüsselungsschlüssel zerstören, kann es bis zu 5 Minuten dauern, bis die Änderung übernommen wird.

  • Widerrufen: cloudkms.cryptoKeyEncrypterDecrypterIAM-Rolle von der Cloud Tasks-Dienst-Agent. Dies wirkt sich auf alle Aufgaben in der 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.

Keiner dieser Vorgänge garantiert einen sofortigen Widerruf des Zugriffs. IAM-Änderungen werden im Allgemeinen schneller wirksam. 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. Für aktuelle Preise Weitere Informationen finden Sie unter Cloud KMS – Preise.