Workflows verschlüsselt inaktive Kundendaten standardmäßig. Workflows übernimmt die Verschlüsselung für Sie, sodass keine zusätzlichen Maßnahmen Ihrerseits erforderlich sind. Diese Option wird Google-Standardverschlüsselung genannt.
Wenn Sie Ihre Verschlüsselungsschlüssel selbst verwalten möchten, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEKs, Customer-Managed Encryption Keys) in Cloud KMS mit CMEK-integrierten Diensten wie Workflows 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 die Schlüsselnutzung im Blick behalten, Audit-Logs aufrufen und den Lebenszyklus von Schlüsseln steuern. Statt es Google zu überlassen und zu verwalten, das die symmetrischen Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs) zum Schutz Ihrer Daten enthält, können Sie diese auch über Cloud KMS steuern und verwalten.
Nachdem Sie Ihre Ressourcen mit CMEKs eingerichtet haben, ähnelt der Zugriff auf Ihre Workflows-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselungsoptionen finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK).
Sie können Ihren Workflow und die zugehörigen inaktiven Daten mit einem Verschlüsselungsschlüssel schützen, auf den nur Sie zugreifen können und den Sie mit Cloud KMS verwalten können.
Mit CMEK geschützte Inhalte
Beim Bereitstellen eines Workflows können Sie einen Cloud KMS-Schlüssel angeben. Dieser Schlüssel wird zum Verschlüsseln des Workflows und seiner Ausführungen verwendet:
Für einen Workflow ist eine Quelldatei mit einer gültigen Workflowdefinition erforderlich. Diese Quelldatei ist mit dem Schlüssel verschlüsselt.
Bei einer Workflow-Ausführung wird die aktuelle Workflowdefinition (eine bestimmte Workflow-Überarbeitung) ausgeführt. Der kompilierte Workflow sowie alle gespeicherten Ausführungs-, Ein- und Ausgabedaten und Laufzeitdaten werden mit dem Schlüssel verschlüsselt, der zum Zeitpunkt der Bereitstellung mit der Workflow-Revision verknüpft war. Dazu gehören Ausführungsargumente, Ergebnisse, Fehler und Ausnahmen, die als Eventarc-Ereignisse bereitgestellt werden, sowie Callback- und HTTP-Anfragen und -Antworten.
Hinweise
Führen Sie die folgenden Schritte aus, bevor Sie CMEK in Workflows verwenden:
Aktivieren Sie die APIs.
Console
-
Enable the Cloud KMS and Workflows APIs.
gcloud
-
In the Google Cloud console, 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.
- Aktualisieren Sie die
gcloud
-Komponenten:gcloud components update
- Aktivieren Sie die Cloud KMS und Workflows APIs für das Projekt, in dem Ihre Verschlüsselungsschlüssel gespeichert werden.
gcloud services enable cloudkms.googleapis.com workflows.googleapis.com
-
Cloud KMS erstellt Cloud-Audit-Logs, wenn Schlüssel aktiviert, deaktiviert oder von Workflows-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.
Cloud KMS-Schlüsselbund und -Schlüssel erstellen
Sie können einen neuen Schlüsselbund erstellen oder einen vorhandenen verwenden. Sie können dem Schlüsselbund einen neuen Schlüssel hinzufügen oder einen vorhandenen Schlüssel verwenden.
Ressourcen-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 einen Workflow aktivieren. Weitere Informationen finden Sie in diesem Dokument unter CMEK für einen Workflow aktivieren.
Console
Rufen Sie in der Google Cloud Console die Seite Schlüsselverwaltung auf.
Klicken Sie auf den Schlüsselbund, der den Schlüssel enthält.
Klicken Sie für den Schlüssel, dessen Ressourcen-ID Sie abrufen, auf more_vert Mehr.
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
Ein Schlüssel hat null oder mehr Schlüsselversionen. Die Ressourcen-ID für eine Schlüsselversion ist die Schlüssel-ID, ein Schrägstrich (
/
) und die Versions-ID. So listen Sie alle Versionen eines Schlüssels auf:- Klicken Sie auf den Namen des Schlüssels.
- Klicken Sie bei einer bestimmten Version auf das Dreipunkt-Menü Mehr.
- Klicken Sie auf Ressourcennamen kopieren.
gcloud
Alle Schlüssel eines bestimmten Schlüsselbunds auflisten:
gcloud kms keys list --keyring RING_NAME --location LOCATION
Ersetzen Sie Folgendes:
RING_NAME
: der Name des SchlüsselbundsLOCATION
: die Region des Schlüsselbunds
Die Ausgabe enthält die Ressourcen-ID für jeden Schlüssel. Beispiel:
NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
Ein Schlüssel hat null oder mehr Schlüsselversionen. Die Ressourcen-ID für eine Schlüsselversion ist die Schlüssel-ID, ein Schrägstrich (
/
) und die Versions-ID. So listen Sie alle Versionen eines Schlüssels auf:gcloud kms keys versions list --location LOCATION --keyring RING_NAME --key KEY_NAME
Die Ausgabe enthält die Ressourcen-ID für jede Schlüsselversion. Beispiel:
NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME/2
Dem Workflows-Dienst-Agent Zugriff auf den Schlüssel gewähren
Sie müssen dem Workflows-Dienst-Agent die IAM-Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler zuweisen, damit er auf den Cloud KMS-Schlüssel zugreifen kann:
Console
Wenn Sie CMEK für einen Workflow über die Console aktivieren, werden Sie aufgefordert, dem Dienstkonto die Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler zuzuweisen. Weitere Informationen finden Sie in diesem Dokument unter CMEK für einen Workflow aktivieren.
gcloud
gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring RING_NAME \ --location LOCATION \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-workflows.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Dabei gilt:
KEY_NAME
: Der Name des Schlüssels. Beispiel:my-key
.RING_NAME
: Der Name des Schlüsselbunds. Beispiel:my-keyring
LOCATION
: Der Speicherort des Schlüssels. Beispiel:us-central1
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden Ihre Projektnummer auf der Willkommensseite der Google Cloud -Konsole oder durch Ausführen des folgenden Befehls:export 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 ein Workflow in Ihrem Projekt seine 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 auf diese Daten zugegriffen werden. Weitere Informationen finden Sie in diesem Dokument unter Cloud KMS deaktivieren.
CMEK für einen Workflow aktivieren
Wenn Sie einen Workflow erstellen oder ihn später aktualisieren, können Sie den Cloud KMS-Schlüssel angeben, den der Workflow für die Datenverschlüsselung verwenden soll.
Console
Rufen Sie in der Google Cloud Console die Seite Workflows auf.
Klicken Sie auf den Namen des Workflows, den Sie aktualisieren möchten.
Die Seite Workflowdetails wird angezeigt.
Klicken Sie auf
Bearbeiten.Wählen Sie Cloud KMS-Schlüssel aus.
Wählen Sie einen Schlüsseltyp aus.
Sie können Ihre Schlüssel manuell verwalten oder Autokey verwenden, um Schlüsselbunde und Schlüssel bei Bedarf zu generieren. Wenn die Autokey-Option deaktiviert ist, wurde sie noch nicht in den aktuellen Ressourcentyp eingebunden.
Wählen Sie in der Liste Cloud KMS-Schlüssel auswählen einen Cloud KMS-Schlüssel aus oder filtern Sie danach.
Optional: Wenn Sie den Ressourcennamen des Schlüssels manuell eingeben möchten, klicken Sie in der Liste Wählen Sie einen vom Kunden verwalteten Schlüssel aus auf Schlüssel manuell eingeben und geben Sie den Namen der Schlüsselressource im angegebenen Format ein.
Wenn Sie dazu aufgefordert werden, weisen Sie dem Workflows-Dienstkonto die Rolle
cloudkms.cyptoKeyEncrypterDecrypter
mit der Rolleworkflows.serviceAgent
zu.Klicken Sie auf Weiter.
Klicken Sie auf Bereitstellen, um die Änderungen zu speichern und den aktualisierten Workflow bereitzustellen.
gcloud
gcloud workflows deploy WORKFLOW_NAME \ --source=SOURCE_FILE \ --kms-key=KEY \ --location LOCATION \ --service-account=SERVICE_ACCOUNT
Ersetzen Sie Folgendes:
WORKFLOW_NAME
: Der Name Ihres Workflows.SOURCE_FILE
: Ihre Workflow-Quelldatei mit der Dateiendungyaml
für eine YAML-Datei oder mit der Dateiendungjson
für eine JSON-Datei, z. B.myWorkflow.yaml
.KEY
: Die Ressourcen-ID des Schlüssels im Formatprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
. Sie können die Schlüssel-ID abrufen.LOCATION
: Der Speicherort des WorkflowsSERVICE_ACCOUNT
: Das Dienstkonto, das Ihr Workflow für den Zugriff auf andere Google Cloud -Dienste verwendet, z. B.SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com
. Es wird dringend empfohlen, ein Dienstkonto mit den geringsten Berechtigungen zu verwenden, die für den Zugriff auf die benötigten Ressourcen erforderlich sind. Wenn Sie dieses Feld leer lassen, wird das Standarddienstkonto verwendet. Weitere Informationen finden Sie unter Zugriff auf Google Cloud -Ressourcen für einen Workflow gewähren.
Wichtige Hinweise:
- Workflow-Revisionen und ‑Ausführungen werden mit dem Schlüssel verschlüsselt, der zum Zeitpunkt der Bereitstellung angegeben wurde. Ressourcen, die zuvor mit einem früheren Schlüssel verschlüsselt wurden, bleiben mit diesem früheren Schlüssel verschlüsselt. Wenn ein Workflow später bearbeitet und ein neuer Schlüssel angegeben wird, wird diese Überarbeitung des Workflows mit dem neuen Schlüssel verschlüsselt und bei allen nachfolgenden Ausführungen wird der neue Schlüssel verwendet.
- Bisher nicht CMEK-verschlüsselte Workflow-Revisionen und ‑Ausführungen bleiben unverschlüsselt.
- Wenn Sie CMEK für eine Workflow-Revision deaktivieren, werden alle nachfolgenden Ausführungen ohne CMEK-Verschlüsselung erstellt. Weitere Informationen finden Sie in diesem Dokument unter CMEK für einen Workflow deaktivieren. Vorhandene Workflow-Revisionen und -Ausführungen bleiben mit den Schlüsseln verschlüsselt, mit denen sie zuvor verschlüsselt wurden.
Cloud KMS-Integration prüfen
Sie können die CMEK-Integration überprüfen, indem Sie die Metadaten für einen Workflow aufrufen.
Console
Rufen Sie in der Google Cloud Console die Seite Workflows auf.
Klicken Sie auf den Namen des Workflows, den Sie überprüfen möchten.
Die Seite Workflowdetails wird angezeigt.
Klicken Sie auf den Tab Details.
Der Wert Verschlüsselung zeigt die Ressourcen-ID des Cloud KMS-Schlüssels an, der zum Sichern des Workflows und seiner Ausführung verwendet wird.
gcloud
gcloud workflows describe WORKFLOW_NAME \ --location=LOCATION
Die Ausgabe sollte in etwa so aussehen:
createTime: '2022-08-10T19:57:58.233177709Z' cryptoKeyName: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME name: projects/PROJECT_NAME/locations/LOCATION/workflows/WORKFLOW_NAME revisionCreateTime: '2022-11-18T19:44:04.933633237Z' revisionId: 000009-8be serviceAccount: projects/PROJECT_NAME/serviceAccounts/SA_NAME@PROJECT_NAME.iam.gserviceaccount.com sourceContents: [...] state: ACTIVE updateTime: '2022-11-18T19:44:05.171793128Z'
Der Wert cryptokeyName
ist die Ressourcen-ID des Cloud KMS-Schlüssels, der zum Sichern des Workflows und seiner Ausführung verwendet wird.
CMEK für einen Workflow deaktivieren
Sie können CMEK für einen Workflow deaktivieren, sodass der zugehörige Cloud KMS-Schlüssel nicht mehr verwendet wird.
Console
Rufen Sie in der Google Cloud Console die Seite Workflows auf.
Klicken Sie auf den Namen des Workflows, den Sie aktualisieren möchten.
Die Seite Workflowdetails wird angezeigt.
Klicken Sie auf
Bearbeiten.Wenn Sie das Optionsfeld Cloud KMS-Schlüssel deaktivieren möchten, wählen Sie Google-managed encryption key aus.
Klicken Sie auf Weiter.
Klicken Sie auf Bereitstellen, um die Änderungen zu speichern und den aktualisierten Workflow bereitzustellen.
gcloud
gcloud workflows deploy WORKFLOW_NAME \ --source=SOURCE_FILE \ --clear-kms-key \ --service-account=SERVICE_ACCOUNT
Dadurch wird CMEK für die aktuelle Workflow-Revision deaktiviert und alle nachfolgenden Ausführungen werden ohne CMEK-Verschlüsselung erstellt. Vorhandene Workflow-Revisionen und ‑Ausführungen bleiben mit den Schlüsseln verschlüsselt, mit denen sie zuvor verschlüsselt wurden.
Cloud KMS deaktivieren
Wenn Sie den Datenzugriff auf Ihren Workflow oder Ihre Workflowausführungen widerrufen möchten, können Sie Cloud KMS auf eine der folgenden Arten deaktivieren:
Deaktivieren oder löschen Sie die primäre Schlüsselversion Ihres vom Kunden verwalteten Verschlüsselungsschlüssels. Durch das Deaktivieren einer CMEK-Schlüsselversion wird der Zugriff auf alle Daten gesperrt, die durch diese Schlüsselversion geschützt sind. Das Löschen einer Schlüsselversion ist das permanente Gegenstück dieser Aktion. Beide wirken sich nur auf die Workflows und Workflow-Ausführungen aus, die mit dem jeweiligen Schlüssel verknüpft sind. Sie können keine neuen Ausführungen erstellen oder die Ressourcen ansehen, die mit dem deaktivierten oder gelöschten Schlüssel verknüpft sind. Alle aktiven Ausführungen schlagen mit einer entsprechenden Fehlermeldung fehl.
Entziehen Sie dem Workflows-Dienst-Agent die IAM-Rolle
cloudkms.cryptoKeyEncrypterDecrypter
. Dies betrifft alle Workflows imGoogle Cloud -Projekt, die die Verschlüsselung mit CMEK unterstützen. Sie können keine neuen CMEK-integrierten Workflows und Ausführungen erstellen oder CMEK-verschlüsselte Ressourcen ansehen. Alle aktiven Ausführungen schlagen mit einer entsprechenden Fehlermeldung fehl.
Obwohl keiner der Vorgänge eine sofortige Zugriffssperre garantiert, werden IAM-Änderungen im Allgemeinen schneller übernommen. Weitere Informationen finden Sie unter Konsistenz von Cloud KMS-Ressourcen und Weitergabe von Zugriffsänderungen.
Fehlerbehebung
Bei der Verwendung von Cloud KMS mit Workflows können Fehler auftreten. In der folgenden Tabelle werden verschiedene Probleme und deren Behebung beschrieben.
Problem | Beschreibung |
---|---|
Berechtigung cloudkms.cryptoKeyVersions.useToEncrypt wurde verweigert |
Entweder ist der angegebene Cloud KMS-Schlüssel nicht vorhanden oder die Berechtigung ist nicht ordnungsgemäß konfiguriert.
Lösung:
|
Schlüsselversion ist nicht aktiviert | Die bereitgestellte Cloud KMS-Schlüsselversion wurde deaktiviert.
Lösung: Aktivieren Sie die Cloud KMS-Schlüsselversion wieder. |
Die Region des Schlüsselbunds stimmt nicht mit der zu schützenden Ressource überein | Die bereitgestellte KMS-Schlüsselbundregion unterscheidet sich von der Region des Workflows.
Lösung: Verwenden Sie einen Cloud KMS-Schlüsselbund und einen geschützten Workflow aus derselben Region. Sie können sich in verschiedenen Projekten befinden. Weitere Informationen finden Sie unter Cloud KMS-Standorte und Workflows-Standorte. |
Cloud KMS-Kontingent überschritten | Ihr Kontingentlimit für Cloud KMS-Anfragen wurde erreicht.
Lösung: Beschränken Sie die Anzahl der Cloud KMS-Aufrufe oder erhöhen Sie das Kontingentlimit. Weitere Informationen finden Sie unter Cloud KMS-Kontingente. |
Umgang mit einem nicht verfügbaren Schlüsselstatus
Wenn Cloud KMS aus irgendeinem Grund nicht verfügbar ist, kann Workflows den Status Ihres Schlüssels möglicherweise nicht aus Cloud KMS abrufen.
Wenn der Schlüsselstatus nicht verfügbar ist, wird im Workflow oder bei der Ausführung ein state: UNAVAILABLE
-Wert und zugehörige Details im Feld stateError
zurückgegeben.
Wenn der Schlüsselstatus im Laufe der Workflowausführung nicht mehr verfügbar ist (z. B. wenn eine Berechtigung während eines Rückrufs widerrufen wird), tritt ein Laufzeitfehler auf, der den Wert state: FAILED
und zugehörige Details im Feld error
zurückgibt.
Preise
Durch diese Integration 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.