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
--version
mit ein. - Wenn Sie die API nach Anleitung verwenden, verwenden Sie
CryptoKeyVersions
stattCryptoKeys
. 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
Um Cloud KMS in der Befehlszeile zu verwenden, Installieren Sie die Google Cloud CLI oder führen Sie ein Upgrade auf die neueste Version durch.
gcloud kms decrypt \ --key key \ --keyring key-ring \ --location location \ --ciphertext-file file-path-with-encrypted-data \ --plaintext-file file-path-to-store-plaintext
Ersetzen Sie key durch den Namen des Schlüssels, der für die Entschlüsselung verwendet werden soll. Ersetzen Sie key-ring durch den Namen des Schlüsselbunds, in dem sich der Schlüssel befinden wird. Ersetzen Sie location durch den Cloud KMS-Standort für den Schlüsselbund. Ersetzen Sie file-path-with-encrypted-data und file-path-to-store-plaintext durch die lokalen Dateipfade, um die verschlüsselten Daten zu lesen und die entschlüsselte Ausgabe zu speichern.
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 PHP in Google Cloud verwenden lernen 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
-Anforderung und geben Sie das entsprechende Projekt und die Schlüsselinformationen sowie den verschlüsselten Text 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-name/cryptoKeys/key-name:decrypt" \ --request "POST" \ --header "authorization: Bearer token" \ --header "content-type: application/json" \ --data "{\"ciphertext\": \"encrypted-content\"}"
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
Um Cloud KMS in der Befehlszeile zu verwenden, Installieren Sie die Google Cloud CLI oder führen Sie ein Upgrade auf die neueste Version durch.
gcloud kms encrypt \ --key key \ --keyring key-ring \ --location location \ --plaintext-file file-with-data-to-encrypt \ --ciphertext-file file-to-store-encrypted-data
Ersetzen Sie key durch den Namen des Schlüssels, der für die Verschlüsselung verwendet werden soll. Ersetzen Sie key-ring durch den Namen des Schlüsselbunds, in dem sich der Schlüssel befindet. Ersetzen Sie location durch den Cloud KMS-Standort für die Schlüsselbund enthält. Ersetzen Sie file-with-data-to-encrypt und file-to-store-encrypted-data durch die lokalen Dateipfade, um die Klartextdaten zu lesen und die verschlüsselte Ausgabe zu speichern.
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 PHP in Google Cloud verwenden lernen 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.
Wenn Sie JSON und die REST API verwenden, müssen Inhalte mit base-64 codiert sein, bevor sie von Cloud KMS verschlüsselt werden können.
Erstellen Sie eine POST
-Anfrage und geben Sie die entsprechenden Projekt- und Schlüsselinformationen an. Außerdem geben Sie den zu verschlüsselnden base64-codierten Text im Feld plaintext
des Anfragetexts an, um Daten zu verschlüsseln.
curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location/keyRings/key-ring-name/cryptoKeys/key-name:encrypt" \ --request "POST" \ --header "authorization: Bearer token" \ --header "content-type: application/json" \ --data "{\"plaintext\": \"base64-encoded-input\"}"
Hier ein Beispiel für eine Nutzlast mit base64-codierten Daten:
{ "plaintext": "U3VwZXIgc2VjcmV0IHRleHQgdGhhdCBtdXN0IGJlIGVuY3J5cHRlZAo=", }
Alte Schlüsselversion deaktivieren oder zum Löschen vormerken
Wenn Sie einen Schlüssel als Sicherheitsmaßnahme bei einem vermuteten unautorisierten Zugriff rotiert haben, müssen die Daten neu verschlüsselt werden. Anschließend muss die alte Schlüsselversion deaktiviert oder zum Löschen vorgemerkt werden.
Eine aktivierte Schlüsselversion deaktivieren
Nur eine Schlüsselversion, die aktiviert ist, kann deaktiviert werden. Dazu verwenden Sie die Methode UpdateCryptoKeyVersion
.
Console
Rufen Sie in der Google Cloud Console die Seite Schlüsselverwaltung auf.
Klicken Sie auf den Namen des Keyrings, der den Schlüssel enthält, dessen Schlüsselversion Sie deaktivieren möchten.
Klicken Sie auf den Schlüssel, dessen Schlüsselversion Sie deaktivieren möchten.
Klicken Sie auf das Kästchen neben den Schlüsselversionen, die Sie deaktivieren möchten.
Klicken Sie im Header auf Deaktivieren.
Klicken Sie in der Bestätigungsaufforderung auf Deaktivieren.
gcloud
Um Cloud KMS in der Befehlszeile zu verwenden, Installieren Sie die Google Cloud CLI oder führen Sie ein Upgrade auf die neueste Version durch.
gcloud kms keys versions disable key-version \ --key key \ --keyring key-ring \ --location location
Ersetzen Sie key-version durch die Version des Schlüssels, die deaktiviert werden soll. Ersetzen Sie key durch den Namen des Schlüssels. Ersetzen Sie key-ring durch den Namen des Schlüsselbunds, in dem sich der Schlüssel befindet. Ersetzen Sie location durch den Cloud KMS-Standort für den Schlüsselbund.
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 PHP in Google Cloud verwenden lernen 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.
Schlüsselversion zum Löschen vormerken
Nur eine Schlüsselversion, die aktiviert oder deaktiviert ist, kann zum Löschen vorgemerkt werden. Dies geschieht mit der Methode DestroyCryptoKeyVersion
.
Console
Wechseln Sie in der Google Cloud Console zur Key Management (Schlüsselverwaltung).
Klicken Sie das Kästchen neben der Schlüsselversion an, deren Löschen Sie planen möchten.
Klicken Sie im Header auf Löschen.
Geben Sie in der Bestätigungsaufforderung den Schlüsselnamen ein und klicken Sie auf Löschung planen.
gcloud
Um Cloud KMS in der Befehlszeile zu verwenden, Installieren Sie die Google Cloud CLI oder führen Sie ein Upgrade auf die neueste Version durch.
gcloud kms keys versions destroy KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION
Ersetzen Sie Folgendes:
KEY_VERSION
: Versionsnummer der gewünschten Schlüsselversion zu zerstören.KEY_NAME
: der Name des Schlüssels, für den Sie einen Schlüssel löschen möchten Version.KEY_RING
: der Name des Schlüsselbunds, der den Schlüssel enthält.LOCATION
: der Cloud KMS-Standort des Schlüsselbunds.
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 PHP in Google Cloud verwenden lernen 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.
Löschen Sie eine Schlüsselversion, indem Sie die Methode CryptoKeyVersions.destroy .
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION:destroy" \ --request "POST" \ --header "authorization: Bearer TOKEN"