Auf dieser Seite erfahren Sie, wie Sie mit dem Cloud Key Management Service (Cloud KMS) die folgenden symmetrischen Schlüsselvorgänge ausführen:
- Text oder binären Inhalt (Klartext) mithilfe eines Cloud KMS-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 Rohsymmetrischen Verschlüsselung finden Sie unter Rohsymmetrische Verschlüsselung.
Hinweise
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 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. Die Rolleroles/cloudkms.admin
bietet diese beiden Berechtigungen nicht. 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_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 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 base64 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/cryptoKeys/KEY_NAME:encrypt" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data "{\"plaintext\": \"PLAINTEXT_TO_ENCRYPT\"}"
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, das den Schlüsselbund und den Schlüssel enthält, die Sie für die Verschlü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 Verschlüsselung verwenden möchten.KEY_NAME
: Der Name des Schlüssels, den Sie für die Verschlüsselung verwenden möchten.PLAINTEXT_TO_ENCRYPT
: die Klartextdaten, die Sie verschlüsseln möchten. Der Klartext muss base64-codiert sein, bevor du die Methodeencrypt
aufrufst.
Hier ein Beispiel für eine Nutzlast mit base64-codierten Daten:
{ "plaintext": "U3VwZXIgc2VjcmV0IHRleHQgdGhhdCBtdXN0IGJlIGVuY3J5cHRlZAo=", }
Decrypt
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 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 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
-Anfrage und geben Sie das entsprechende Projekt und die Schlüsselinformationen sowie den zu entschlüsselnden verschlüsselten Text (Geheimtext) 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...", }
Nächste Schritte
- Weitere Informationen zur Rohsymmetrischen Verschlüsselung
- Weitere Informationen zu Umschlagverschlüsselung
- Daten mit Cloud KMS Codelab verschlüsseln und entschlüsseln