In diesem Thema erfahren Sie, wie Sie die folgenden symmetrischen Schlüsselvorgänge ausführen:
- Text oder binären Inhalt (Klartext) mithilfe eines Cloud Key Management Service-Schlüssels verschlüsseln
- Geheimtext entschlüsseln, der mit einem Cloud KMS-Schlüssel verschlüsselt wurde
Wenn Sie stattdessen einen asymmetrischen Schlüssel für die Verschlüsselung verwenden möchten, finden Sie unter Daten mit einem asymmetrischen Schlüssel verschlüsseln und entschlüsseln weitere Informationen. Weitere Informationen zur symmetrischen Rohverschlüsselung finden Sie unter symmetrische Rohverschlüsselung.
Hinweis
Erstellen Sie einen Schlüsselbund und einen Schlüssel, wie in Schlüsselbunde und Schlüssel erstellen beschrieben.
Achten Sie darauf, dass der Nutzer, der die Methoden zum Verschlüsseln und Entschlüsseln aufruft, über die Berechtigungen
cloudkms.cryptoKeyVersions.useToEncrypt
undcloudkms.cryptoKeyVersions.useToDecrypt
für den zum Verschlüsseln oder Entschlüsseln verwendeten Schlüssel verfügt.Eine Möglichkeit, einem Nutzer die Verschlüsselung oder Entschlüsselung zu ermöglichen, besteht darin, den Nutzer den IAM-Rollen
roles/cloudkms.cryptoKeyEncrypter
,roles/cloudkms.cryptoKeyDecrypter
oderroles/cloudkms.cryptoKeyEncrypterDecrypter
für diesen Schlüssel hinzuzufügen. Beachten Sie, dass die Rolleroles/cloudkms.admin
diese Berechtigungen nicht bietet. Weitere Informationen finden Sie unter Berechtigungen und Rollen.
Verschlüsseln
gcloud
Wenn Sie Cloud KMS in der Befehlszeile verwenden möchten, müssen Sie zuerst die neueste Version der Google Cloud CLI installieren oder ein Upgrade ausführen.
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-Speicherort für den Schlüsselbund. 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=", }
Decrypt
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...", }
Nächste Schritte
- Weitere Informationen zur symmetrischen Rohverschlüsselung
- Weitere Informationen zu Umschlagverschlüsselung
- Daten mit Cloud KMS Codelab verschlüsseln und entschlüsseln