Cloud Tasks verschlüsselt ruhende Kundeninhalte standardmäßig. Die Verschlüsselung wird von Cloud Tasks übernommen. Weitere Maßnahmen Ihrerseits sind nicht erforderlich. Diese Option heißt Google-Standardverschlüsselung.
Wenn Sie Ihre Verschlüsselungsschlüssel selbst verwalten möchten, können Sie kundenverwaltete Verschlüsselungsschlüssel (CMEKs, Customer-Managed Encryption Keys) in Cloud KMS mit CMEK-integrierten Diensten wie Cloud Tasks verwenden. Mit Cloud KMS-Schlüsseln haben Sie die Kontrolle über Schutzlevel, Speicherort, Rotationszeitplan, Nutzungs- und Zugriffsberechtigungen sowie über kryptografische Grenzen. Mit Cloud KMS können Sie außerdem Audit-Logs aufrufen und den Lebenszyklus von Schlüsseln steuern. Statt es Google zu überlassen, die symmetrischen Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs) zum Schutz Ihrer Daten zu besitzen und zu verwalten, können Sie diese auch über Cloud KMS steuern und verwalten.
Nachdem Sie Ihre Ressourcen mit CMEKs eingerichtet haben, ähnelt der Zugriff auf Ihre Cloud Tasks-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselungsoptionen finden Sie unter Kundenverwaltete Verschlüsselungsschlüssel (CMEK).
Mit CMEK geschützte Inhalte
Wenn Sie CMEK in Cloud Tasks aktivieren, aktivieren Sie es für eine Region. Wenn diese Option aktiviert ist, werden der Textkörper und die Kopfzeile von Aufgaben, die in dieser Region erstellt werden, im Ruhezustand mit Ihrem Schlüssel geschützt. Wenn ein Task erstellt wurde, während CMEK aktiviert war, und der Schlüssel später inaktiv gemacht wird (durch Deaktivieren oder Löschen des Schlüssels oder durch Deaktivieren von CMEK), wird der Task mit Ihrem Schlüssel verschlüsselt, kann aber nicht ausgeführt werden.
In den folgenden Fällen sind Aufgaben nicht mit CMEK geschützt:
- Aufgabe wurde vor der Aktivierung von CMEK erstellt
- Die Aufgabe befindet sich nicht in der Region, für die CMEK aktiviert ist.
- Die Aufgabe ist von einer Kompatibilitätseinschränkung betroffen.
Einschränkungen bei der Kompatibilität
Die Cloud Tasks-Integration mit CMEK unterstützt Folgendes nicht:
google-gax-Versionen unter4.0.0:Das NPM-Paketgoogle-gaxfür Node.js wird in Versionen vor4.0.0nur eingeschränkt unterstützt. Für diese Versionen wird CMEK nur in der Regionus-central1unterstützt. Auch wenn Sie nur Aufgaben in dieser Region haben, wird empfohlen, ein Upgrade auf Version4.0.0oder höher durchzuführen.Integrierter App Engine-Taskqueue-Dienst:Aufgaben, die mit dem integrierten App Engine-Taskqueue-Dienst erstellt wurden, sind nicht durch CMEK geschützt, auch wenn sie sich in einer Region befinden, für die CMEK aktiviert ist. Durch die Aktivierung von CMEK wird das Erstellen oder Ausführen (z. B. Ausführung oder Löschen) dieser Aufgaben nicht verhindert.
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 ungewöhnlich. Führen Sie den folgenden gcloud CLI-Befehl in Ihrem Terminal aus, um zu prüfen, ob Ihre Warteschlange eine Pull-Warteschlange ist:
gcloud tasks queues describe QUEUE_NAME
Ersetzen Sie
QUEUE_NAMEdurch den Namen Ihrer Warteschlange.Wenn
typealspullaufgeführt ist, handelt es sich bei Ihrer Warteschlange um eine Pull-Warteschlange. Wenntypealspushaufgeführt ist, wirkt sich diese Einschränkung nicht auf Aufgaben in Ihrer 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 die Weiterleitung auf Warteschlangenebene aktiviert ist:
Führen Sie den folgenden gcloud CLI-Befehl in Ihrem Terminal aus:
Ersetzen Siegcloud tasks queues describe QUEUE_NAME
QUEUE_NAMEdurch den Namen Ihrer Warteschlange.Suchen Sie in der Ausgabe nach dem Feld
httpTargetund prüfen Sie, oburiOverridefestgelegt wurde. Wenn einhostangegeben ist, ist das Routing auf Warteschlangenebene für Ihre Warteschlange aktiviert und sie ist nicht mit CMEK kompatibel. Informationen zum Entfernen des Routings auf Warteschlangenebene finden Sie unter Routing auf Warteschlangenebene aktualisieren oder entfernen. Wenn in der AusgabeuriOverrideohnehostangezeigt wird, wird für Ihre Warteschlange kein Routing auf Warteschlangenebene verwendet.
TTL für Aufgaben:Wenn CMEK aktiviert ist, können Sie
task_ttlnicht auf einen Wert über 60 Tage festlegen. Wenn Sietask_ttlauf einen Wert über 60 Tage festgelegt haben, können Sie CMEK nicht aktivieren.
Hinweis
Führen Sie die folgenden Schritte aus, bevor Sie CMEK in Cloud Tasks verwenden:
Aktivieren Sie die APIs.
Console
-
Aktivieren Sie die Cloud KMS API und die Cloud Tasks API.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen
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 ein 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, wird auf dieser Seite das Flag
--projectim gcloud CLI-Befehl angegeben und Sie erfahren, welches Projekt Sie angeben müssen.gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch die ID des Projekts, das Ihre Cloud Tasks-Ressourcen enthält.Aktualisieren Sie die
gcloud-Komponenten:gcloud components update
Aktivieren Sie die Cloud KMS API und die Cloud Tasks API 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_IDdurch die ID des Projekts, in dem Ihre Verschlüsselungsschlüssel gespeichert werden. Dies kann dasselbe Projekt wie Ihre Cloud Tasks-Ressourcen sein. Um den Zugriff auf Ihre Cloud KMS-Schlüssel einzuschränken, sollten Sie jedoch Cloud KMS in einem separaten Projekt einrichten.
-
Cloud KMS erstellt Cloud-Audit-Logs, wenn Schlüssel aktiviert, deaktiviert oder von Cloud Tasks-Ressourcen zum Verschlüsseln und Entschlüsseln von Daten verwendet werden. Achten Sie darauf, dass für die Cloud KMS API in Ihrem Projekt Logging aktiviert ist und dass Sie entschieden haben, welche logging-spezifischen Berechtigungen und Rollen für Ihren Anwendungsfall gelten. Weitere Informationen finden Sie unter Audit-Logging-Informationen in Cloud KMS.
IAM-Rollen abrufen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zur Verwendung von CMEK mit Cloud Tasks benötigen:
-
CMEK aktivieren oder deaktivieren:
roles/cloudtasks.admin -
Verwendeten Schlüssel ansehen:
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.
-
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. Andernfalls können Sie so einen Cloud KMS-Schlüssel und -Schlüsselbund erstellen.
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.
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 Ressourcennamen kopieren.
Die Ressourcen-ID für den Schlüssel wird in die Zwischenablage kopiert. Das Format sieht in 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: die 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
Cloud Tasks-Dienst-Agent Zugriff auf den Schlüssel gewähren
Sie müssen dem Cloud Tasks-Dienst-Agent die IAM-Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler zuweisen, damit er auf den Cloud KMS-Schlüssel zugreifen kann:
Console
Rufen Sie in der Google Cloud Console die Seite IAM (Identity and Access Management) auf.
Klicken Sie auf das Kästchen Von Google bereitgestellte Rollenzuweisungen einschließen.
Suchen Sie das Cloud Tasks-Dienstkonto, indem Sie
cloudtasks.iam.gserviceaccount.comin den Filter eingeben.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 Bereich, der geöffnet wird, 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 vollständig 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.