In diesem Thema wird erläutert, wie Daten mit einem symmetrischen Schlüssel für den Cloud Key Management Service neu verschlüsselt werden. Sie können diese Beispiele für asymmetrische Schlüssel anpassen. Wenn Sie den Verdacht haben, dass ein Schlüssel ohne Autorisierung verwendet wird, sollten Sie die durch den betroffenen Schlüssel geschützten Daten neu verschlüsseln und die alte Schlüsselversion anschließend deaktivieren oder zum Löschen vormerken.
Hinweis
Für dieses Szenario gelten die folgenden Voraussetzungen.
Sie haben mit Cloud KMS bereits Daten verschlüsselt.
Die für die Verschlüsselung verwendete Schlüsselversion wurde nicht deaktiviert, zum Löschen vorgemerkt oder gelöscht. Diese Schlüsselversion wird benötigt, um die verschlüsselten Daten zu entschlüsseln.
Sie haben bereits Schlüssel rotiert. Bei Schlüsselrotationen wird eine neue primäre Schlüsselversion erstellt. Sie benötigen die neue primäre Schlüsselversion, um die Daten neu zu verschlüsseln.
Daten mit asymmetrischen Schlüsseln neu verschlüsseln
Die Beispiele in diesem Thema zeigen, wie Daten mit einem symmetrischen Schlüssel noch einmal verschlüsselt werden. Wenn Sie einen symmetrischen Schlüssel verwenden, leitet Cloud KMS automatisch die Schlüsselversion zur Verwendung für die Entschlüsselung ab. Wenn Sie einen asymmetrischen Schlüssel verwenden, müssen Sie die Schlüsselversion angeben.
- Wenn Sie die Google Cloud CLI nach Anleitung verwenden, schließen Sie immer das Flag
--versionmit ein. - Wenn Sie die API nach Anleitung verwenden, verwenden Sie
CryptoKeyVersionsstattCryptoKeys. Weitere Informationen zur Verschlüsselung und Entschlüsselung von Daten mit einem asymmetrischen Schlüssel
Der Workflow zum erneuten Verschlüsseln von Daten mit asymmetrischen Schlüsseln ähnelt dem in diesem Thema beschriebenen.
Daten verschlüsseln – Workflow
Führen Sie die folgenden Schritte aus, um Daten neu zu verschlüsseln und die Schlüsselversion der ursprünglichen Verschlüsselung zu deaktivieren oder zum Löschen vorzumerken.
Daten mit der neuen primären Schlüsselversion neu verschlüsseln
Alte Schlüsselversion deaktivieren oder zum Löschen vormerken
Daten mit der alten Schlüsselversion entschlüsseln
Cloud KMS entschlüsselt Daten automatisch mit der korrekten Schlüsselversion, wenn sie nicht deaktiviert, zum Löschen vorgemerkt oder gelöscht wurde. Die folgenden Beispiele zeigen, wie Daten entschlüsselt werden. Dabei wird derselbe Entschlüsselungscode verwendet wie unter Daten verschlüsseln und entschlüsseln.
gcloud
Wenn Sie Cloud KMS in der Befehlszeile verwenden möchten, müssen Sie zuerst Google Cloud CLI installieren oder ein Upgrade ausführen.
gcloud kms decrypt \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--ciphertext-file FILE_TO_DECRYPT \
--plaintext-file DECRYPTED_OUTPUT
Ersetzen Sie Folgendes:
KEY_NAME: Der Name des Schlüssels, den Sie für die Entschlüsselung verwenden möchten.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort, der den Schlüsselbund enthält.FILE_TO_DECRYPT: Der Pfad zur Datei, die Sie entschlüsseln möchten.DECRYPTED_OUTPUT: der Pfad, unter dem Sie die entschlüsselte Ausgabe speichern möchten.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.
C#
Um diesen Code auszuführen, müssen Sie zuerst eine C#-Entwicklungsumgebung einrichten und das Cloud KMS C# SDK installieren.
Go
Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Cloud KMS Go SDK installieren.
Java
Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Cloud KMS Java SDK installieren.
Node.js
Um diesen Code auszuführen, richten Sie zuerst eine Node.js-Entwicklungsumgebung ein und installieren Sie das Cloud KMS Node.js SDK.
PHP
Um diesen Code auszuführen, müssen Sie zuerst die Informationen zur Verwendung von PHP in Google Cloud lesen und das Cloud KMS PHP SDK installieren.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python SDK installieren.
Ruby
Um diesen Code auszuführen, müssen Sie zuerst eine Ruby-Entwicklungsumgebung einrichten und das Cloud KMS Ruby SDK installieren.
API
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Der vom Cloud KMS im JSON-Dokument zurückgegebene entschlüsselte Text ist Base64-codiert.
Erstellen Sie eine POST-Anfrage und geben Sie das entsprechende Projekt und die Schlüsselinformationen sowie den verschlüsselten Text (auch als Geheimtext bezeichnet) im Feld ciphertext des Anfragetexts an, um verschlüsselte Daten zu entschlüsseln.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME:decrypt" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data "{\"ciphertext\": \"ENCRYPTED_DATA\"}"
Ersetzen Sie Folgendes:
PROJECT_ID: die ID des Projekts, das den Schlüsselbund und den Schlüssel enthält, die Sie für die Entschlüsselung verwenden möchten.LOCATION: der Cloud KMS-Speicherort, der den Schlüsselbund enthält.KEY_RING: der Schlüsselbund, der den Schlüssel enthält, den Sie für die Entschlüsselung verwenden möchten.KEY_NAME: Der Name des Schlüssels, den Sie für die Entschlüsselung verwenden möchten.ENCRYPTED_DATA: Die verschlüsselten Daten, die Sie entschlüsseln möchten.
Hier ein Beispiel für eine Nutzlast mit base64-codierten Daten:
{ "ciphertext": "CiQAhMwwBo61cHas7dDgifrUFs5zNzBJ2uZtVFq4ZPEl6fUVT4kSmQ...", }
Daten mit der neuen primären Schlüsselversion neu verschlüsseln
Cloud KMS verwendet automatisch die neue primäre Schlüsselversion zum Verschlüsseln von Daten. Die folgenden Beispiele zeigen, wie die Daten verschlüsselt werden. Derselbe Verschlüsselungscode wird auch in Daten verschlüsseln und entschlüsseln verwendet.
gcloud
Wenn Sie Cloud KMS in der Befehlszeile verwenden möchten, müssen Sie zuerst Google Cloud CLI installieren oder ein Upgrade ausführen.
gcloud kms encrypt \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--plaintext-file FILE_TO_ENCRYPT \
--ciphertext-file ENCRYPTED_OUTPUT
Ersetzen Sie Folgendes:
KEY_NAME: Der Name des Schlüssels, den Sie für die Verschlüsselung verwenden möchten.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort, der den Schlüsselbund enthält.FILE_TO_ENCRYPT: der Pfad zur Datei, die Sie verschlüsseln möchten.ENCRYPTED_OUTPUT: der Pfad, unter dem Sie die verschlüsselte Ausgabe speichern möchten.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.
C#
Um diesen Code auszuführen, müssen Sie zuerst eine C#-Entwicklungsumgebung einrichten und das Cloud KMS C# SDK installieren.
Go
Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Cloud KMS Go SDK installieren.
Java
Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Cloud KMS Java SDK installieren.
Node.js
Um diesen Code auszuführen, richten Sie zuerst eine Node.js-Entwicklungsumgebung ein und installieren Sie das Cloud KMS Node.js SDK.
PHP
Um diesen Code auszuführen, müssen Sie zuerst die Informationen zur Verwendung von PHP in Google Cloud lesen und das Cloud KMS PHP SDK installieren.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python SDK installieren.