Standardmäßig verschlüsselt Cloud Tasks Ihre inaktiven Daten. Google Cloud verwaltet diese Standardverschlüsselung, sodass von Ihrer Seite keine weiteren Maßnahmen erforderlich sind.
Wenn Sie für die Schlüssel zum Schutz Ihrer Daten bestimmte Compliance- oder regulatorische Anforderungen haben, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) für Cloud Tasks verwenden. Ihre Aufgabe und die zugehörigen inaktiven Daten (Text und Header) werden mit einem Verschlüsselungsschlüssel geschützt, auf den nur Sie zugreifen können und den Sie mit dem 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 der Header von Aufgaben, die in dieser Region erstellt wurden, im Ruhezustand mit Ihrem Schlüssel geschützt. 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 Deaktivieren von CMEK), wird die Aufgabe mit Ihrem Schlüssel verschlüsselt, kann aber nicht ausgeführt werden.
Aufgaben sind in den folgenden Fällen nicht mit CMEK geschützt:
- Aufgabe wurde erstellt, bevor CMEK aktiviert wurde
- Aufgabe befindet sich nicht in der Region, für die CMEK aktiviert ist
- Aufgabe ist von einer Kompatibilitätsbeschränkung betroffen
Kompatibilitätsbeschränkungen
Die Einbindung von Cloud Tasks in CMEK unterstützt Folgendes nicht:
google-gax
-Versionen unter4.0.0
: Das NPM-Paketgoogle-gax
für Node.js wird in Versionen unter4.0.0
nur eingeschränkt unterstützt. Bei diesen Versionen wird CMEK nur in der Regionus-central1
unterstützt. Auch wenn Sie nur Aufgaben in dieser Region haben, wird ein Upgrade auf Version4.0.0
oder höher empfohlen.Integrierter App Engine-Dienst für Aufgabenwarteschlangen:Aufgaben, die mit dem integrierten Aufgabenwarteschlangendienst von App Engine erstellt wurden, werden nicht durch CMEK geschützt, auch wenn sie sich in einer Region befinden, für die er aktiviert ist. Das Aktivieren von CMEK verhindert nicht das Erstellen oder Ausführen (z. B. Ausführen oder Löschen) dieser Aufgaben.
Pull-Warteschlangen:Wenn Sie CMEK aktivieren, können Sie Aufgaben in Pull-Warteschlangen erstellen und ausführen. Diese Aufgaben sind jedoch nicht durch CMEK geschützt. Pull-Warteschlangen sind selten. Führen Sie den folgenden gcloud CLI-Befehl in Ihrem Terminal aus, um zu prüfen, ob die Warteschlange eine Pull-Warteschlange ist:
gcloud beta tasks queues describe QUEUE_NAME
Ersetzen Sie
QUEUE_NAME
durch den Namen der Warteschlange.Wenn
type
den Wertpull
hat, ist die Warteschlange eine Pull-Warteschlange. Wenn die aufgelistetetype
den Wertpush
hat, wirkt sich diese Einschränkung nicht auf Aufgaben in der Warteschlange aus.Routing auf Warteschlangenebene:Wenn CMEK aktiviert ist, können Sie kein Routing auf Warteschlangenebene anwenden. Wenn das Routing auf Warteschlangenebene aktiviert ist, können Sie CMEK nicht aktivieren. So prüfen Sie, ob das Routing auf Warteschlangenebene aktiviert ist:
Führen Sie den folgenden gcloud CLI-Befehl in Ihrem Terminal aus:
gcloud beta tasks queues describe QUEUE_NAME
Ersetzen SieQUEUE_NAME
durch den Namen der Warteschlange.Suchen Sie in der Ausgabe nach dem Feld
httpTarget
und prüfen Sie, oburiOverride
festgelegt wurde. Wenn einhost
angegeben ist, ist für die Warteschlange das Routing auf Warteschlangenebene aktiviert und nicht mit CMEK kompatibel. Informationen zum Entfernen des Routings auf Warteschlangenebene finden Sie unter Routing auf Warteschlangenebene aktualisieren oder entfernen. Wenn in der AusgabeuriOverride
nicht mit einem festgelegtenhost
-Wert angezeigt wird, verwendet Ihre Warteschlange kein Routing auf Warteschlangenebene.
Aufgaben-TTL: Wenn CMEK aktiviert ist, können Sie
task_ttl
nicht auf mehr als 60 Tage festlegen. Wenn eintask_ttl
auf mehr als 60 Tage festgelegt ist, können Sie CMEK nicht aktivieren.
Hinweise
Führen Sie die folgenden Schritte aus, bevor Sie CMEK in Cloud Tasks verwenden:
Aktivieren Sie die APIs.
Console
-
Cloud KMS and Cloud Tasks APIs aktivieren.
gcloud
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
Legen Sie Ihr Standardprojekt fest. Dies 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. in dem Projekt, das Ihre Cloud KMS-Ressourcen enthält, enthält diese Seite das Flag
--project
im Befehl der gcloud CLI und teilt Ihnen mit, welches Projekt angegeben werden soll.gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_ID
durch die ID des Projekts, das Ihre Cloud Tasks-Ressourcen enthält.gcloud
-Komponenten aktualisieren.gcloud components update
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_IDErsetzen Sie
PROJECT_ID
durch die ID des Projekts, in dem Ihre Verschlüsselungsschlüssel gespeichert werden. Dies kann dasselbe Projekt wie Ihre Cloud Tasks-Ressourcen sein. Wenn Sie den Zugriff auf Ihre Cloud KMS-Schlüssel jedoch einschränken möchten, sollten Sie Cloud KMS in einem separaten Projekt einrichten.
-
Cloud KMS erstellt Cloud-Audit-Logs, wenn Schlüssel aktiviert oder deaktiviert sind oder von Cloud Tasks-Ressourcen zum Verschlüsseln und Entschlüsseln von Daten verwendet werden. Prüfen Sie, ob für die Cloud KMS API in Ihrem Projekt Logging aktiviert ist und ob Sie entschieden haben, welche Logging-spezifischen Berechtigungen und Rollen für Ihren Anwendungsfall gelten. Weitere Informationen finden Sie unter Informationen zum Audit-Logging in Cloud KMS.
Identity and Access Management-Rollen erhalten
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Verwenden von CMEK mit Cloud Tasks benötigen:
-
CMEK aktivieren oder deaktivieren:
roles/cloudtasks.admin
-
Sehen Sie sich den verwendeten Schlüssel an:
roles/cloudtasks.viewer
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
-
CMEK aktivieren oder deaktivieren:
Cloud KMS-Schlüsselbund und -Schlüssel erstellen
Wenn Sie bereits einen Schlüsselbund in derselben Region wie Ihre Cloud Tasks-Ressourcen haben und diesen Schlüssel und Schlüsselbund verwenden möchten, überspringen Sie diesen Abschnitt. Wenn nicht, erstellen Sie Ihren Cloud KMS-Schlüssel und Schlüsselbund anhand dieser Anleitung.
Erstellen Sie einen Schlüsselbund.
Der Schlüsselbund muss sich in der Region befinden, die die Cloud Tasks-Ressourcen enthält, 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.
Erstellen Sie einen Schlüssel für einen bestimmten Schlüsselbund.
ID für einen Cloud KMS-Schlüssel abrufen
Die Ressourcen-ID für einen Cloud KMS-Schlüssel ist erforderlich, wenn Sie CMEK für Cloud Tasks aktivieren.
Console
Rufen Sie in der Google Cloud Console die Seite Schlüsselverwaltung auf und wählen Sie den Tab Schlüsselinventar aus.
Klicken Sie für den Schlüssel, dessen Ressourcen-ID Sie abrufen, auf more_vert Aktionen.
Klicken Sie auf Ressourcenname kopieren.
Die Ressourcen-ID für den Schlüssel wird in die Zwischenablage kopiert. Das Format sieht etwa so aus:
projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
gcloud
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üsselbundsLOCATION
: Region des SchlüsselbundsPROJECT_ID
: die ID des Projekts, das den Schlüsselbund enthält
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 IAM-Rolle (Identity and Access Management) Cloud KMS CryptoKey Encrypter/Decrypter erteilen, damit er auf den Cloud KMS-Schlüssel zugreifen kann:
Console
Rufen Sie in der Google Cloud Console die Seite „Identity and Access Management“ auf.
Klicken Sie auf das Kästchen Von Google bereitgestellte Rollenzuweisungen einschließen.
Suchen Sie das Cloud Tasks-Dienstkonto. Geben Sie dazu
cloudtasks.iam.gserviceaccount.com
in den Filter ein.Das Cloud Tasks-Dienstkonto hat das Format
service-PROJECT_NUMBER@gcp-sa-cloudtasks.iam.gserviceaccount.com
.Klicken Sie auf das Stiftsymbol Hauptkonto bearbeiten.
Klicken Sie im angezeigten Bereich auf Weitere Rolle hinzufügen.
Suchen Sie nach der Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler und wählen Sie sie aus.
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 ID für einen Cloud KMS-Schlüssel abrufen. Geben Sie keine Schlüsselversionsnummer an. Wenn Sie eine Schlüsselversionsnummer angeben, kann dieser Befehl fehlschlagen.PROJECT_NUMBER
ist die Nummer Ihres Google Cloud-Projekts. Sie finden Ihre Projektnummer auf der Seite Dashboard 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 der CMEK-fähigen Region die Daten mit dem CMEK-Schlüssel verschlüsseln und entschlüsseln. Wenn Sie diese Rolle widerrufen oder den CMEK-Schlüssel deaktivieren oder löschen, kann nicht mehr auf diese Daten zugegriffen werden. In diesem Dokument finden Sie unter Cloud KMS deaktivieren.
CMEK für Cloud Tasks aktivieren
Sie können CMEK über die API oder die gcloud CLI aktivieren. Für Cloud Tasks wird CMEK nach Region aktiviert. Sie wird nicht durch einzelne Aufgaben aktiviert. Wenn CMEK für eine bestimmte Region in Cloud Tasks aktiviert ist, werden 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:
- REST: Verwenden Sie die Methode
updateCmekConfig
. - RPC: Verwenden Sie die Methode
UpdateCmekConfigRequest
.
gcloud
Verwenden Sie den folgenden Befehl, um CMEK über die Google Cloud CLI zu aktivieren:
gcloud tasks cmek-config update --location=LOCATION --kms-key-name=KEY_ID
Ersetzen Sie Folgendes:
LOCATION
: Region Ihrer Cloud Tasks-RessourceKEY_ID
: die voll qualifizierte Ressourcen-ID für Ihren Schlüssel. Eine Anleitung dazu finden Sie unter ID für einen Cloud KMS-Schlüssel abrufen. Geben Sie keine Schlüsselversionsnummer an. Wenn Sie eine Schlüsselversionsnummer angeben, kann dieser Befehl fehlschlagen.
Folgen Sie der Anleitung im Abschnitt Verwendeter Schlüssel identifizieren, um zu prüfen, ob der Schlüssel erfolgreich aktiviert wurde.
Für vorhandene Aufgaben aktivieren
Ein CMEK schützt keine Aufgaben, die vor der Aktivierung von CMEK für Cloud Tasks erstellt wurden. So schützen Sie vorhandene Aufgaben mit CMEK:
- Aktivieren Sie CMEK (siehe Abschnitt zum Aktivieren von CMEK).
Bereits vorhandene Aufgaben ersetzen Dafür gibt es im Wesentlichen zwei Möglichkeiten. Die beste Vorgehensweise hängt davon ab, was Ihnen wichtig ist:
Kontinuierliche Ausführung: Um eine kontinuierliche Ausführung zu gewährleisten, also mindestens eine Übermittlung, können Sie die Aufgabe zuerst neu erstellen und dann die bereits vorhandene Aufgabe löschen, nachdem Sie geprüft haben, ob die neue Aufgabe wie erwartet funktioniert. Dies kann zu doppelten Ausführungen führen, da möglicherweise sowohl die alte als auch die neue Aufgabe ausgeführt werden, bevor Sie die alte Aufgabe löschen.
Verhinderung von doppelten Einträgen:Um doppelte Ausführungen (d. h. die Zustellung höchstens einmal) zu verhindern, können Sie zuerst die alte Aufgabe löschen und dann neu erstellen. Dies kann dazu führen, dass Ausführungen verloren gehen, da zwischen dem Löschen der alten Aufgabe und dem Erstellen der neuen Aufgabe viel Zeit verstrichen ist.
Verwendeten Schlüssel identifizieren
Führen Sie den folgenden gcloud CLI-Befehl in Ihrem Terminal aus, um den CMEK-Schlüssel zu identifizieren, der für Ihre Cloud Tasks-Ressourcen verwendet wird:
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 Standort nicht konfiguriert.
CMEK für Cloud Tasks deaktivieren
Sie können CMEK über die API oder die gcloud CLI deaktivieren. Für Cloud Tasks ist CMEK nach Region deaktiviert. Er wird nicht durch einzelne Aufgaben deaktiviert. Wenn CMEK für eine bestimmte Region in Cloud Tasks deaktiviert ist, werden Aufgaben in dieser Region nicht durch CMEK geschützt.
Das Deaktivieren von CMEK wirkt sich auf Aufgaben aus, die in der Zukunft erstellt werden, nicht auf in der Vergangenheit erstellte Aufgaben:
- Neue Aufgaben: sind nicht durch einen CMEK geschützt
Bereits vorhandene Aufgaben:Aufgaben, die bei aktiviertem CMEK erstellt wurden, bleiben verschlüsselt und werden so lange ausgeführt, wie der Cloud KMS-Schlüssel aktiv bleibt.
API
Sie können CMEK deaktivieren, indem Sie die Methode Update CMEK config
aufrufen und den Cloud KMS-Schlüssel löschen. Ersetzen Sie ihn dazu durch einen leeren String. Die Cloud Tasks API bietet die Methode Update CMEK config
sowohl in der REST API als auch in der RPC API:
- REST: Verwenden Sie die Methode
updateCmekConfig
. - RPC: Verwenden Sie die Methode
UpdateCmekConfigRequest
.
gcloud
Verwenden Sie den folgenden Befehl, um CMEK über die Google Cloud CLI zu deaktivieren:
gcloud tasks cmek-config update --location=LOCATION --clear-kms-key
Ersetzen Sie Folgendes:
LOCATION
: 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. Wenn Sie einen CMEK-Schlüssel deaktivieren, wird der Zugriff auf alle durch diese Schlüsselversion geschützten Daten gesperrt, während der Schlüssel deaktiviert ist. Mit einem deaktivierten Schlüssel können Sie weder Aufgaben erstellen noch darauf zugreifen. Der Versuch, eine CMEK-geschützte Aufgabe auszuführen, während der Schlüssel deaktiviert ist, führt in Cloud Logging zu einem
UNKNOWN
-Fehler. Bei Bedarf können Sie den Schlüssel später wieder aktivieren. Wenn Sie einen vom Kunden verwalteten Verschlüsselungsschlüssel deaktivieren, kann es bis zu 5 Minuten dauern, bis die Änderung wirksam wird.Löschen Sie den vom Kunden verwalteten Verschlüsselungsschlüssel. Durch das Löschen eines CMEK-Schlüssels wird der Zugriff auf alle Daten, die durch diese Schlüsselversion geschützt sind, dauerhaft gesperrt. Sie können keine Aufgaben mit einem gelöschten Schlüssel aufrufen oder erstellen. 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 die Aufgabe ausgeführt werden soll, protokolliert Cloud Logging den Fehler
UNKNOWN
. Wenn Sie einen vom Kunden verwalteten Verschlüsselungsschlüssel löschen, kann es bis zu 5 Minuten dauern, bis die Änderung wirksam wird.Widerrufen Sie die IAM-Rolle
cloudkms.cryptoKeyEncrypterDecrypter
für den Cloud Tasks-Dienst-Agent. Dies betrifft alle Aufgaben im Google Cloud-Projekt, die die Verschlüsselung mit CMEK unterstützen. Sie können keine neuen CMEK-integrierten Aufgaben erstellen und keine CMEK-verschlüsselten Ressourcen ansehen.
Obwohl keiner dieser Vorgänge einen sofortigen Zugriffswiderruf garantiert, werden IAM-Änderungen in der Regel schneller wirksam. Weitere Informationen finden Sie unter Konsistenz von Cloud KMS-Ressourcen und Weitergabe von Zugriffsänderungen.
Preise
Durch diese Einbindung entstehen keine zusätzlichen Kosten über die Schlüsselvorgänge hinaus, die Ihrem Google Cloud-Projekt in Rechnung gestellt werden. Aktuelle Preisinformationen finden Sie unter Cloud KMS – Preise.