Daten mit einem symmetrischen Schlüssel verschlüsseln und entschlüsseln

Auf dieser Seite erfahren Sie, wie Sie mit 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 symmetrischen Rohverschlüsselung finden Sie unter Symmetrische Rohverschlüsselung.

Hinweis

  1. Erstellen Sie einen Schlüsselbund und einen Schlüssel erstellen.

  2. Achten Sie darauf, dass der Nutzer, der die Methoden zum Verschlüsseln und Entschlüsseln aufruft, über die Berechtigungen cloudkms.cryptoKeyVersions.useToEncrypt und cloudkms.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 roles/cloudkms.cryptoKeyEncrypter, roles/cloudkms.cryptoKeyDecrypter, oder roles/cloudkms.cryptoKeyEncrypterDecrypter IAM-Rollen für diesen Schlüssel hinzuzufügen. Die Rolle roles/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 Google Cloud CLI installieren oder ein Upgrade auf die neueste Version 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ält.
  • LOCATION: der Cloud KMS-Standort, 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.


using Google.Cloud.Kms.V1;
using Google.Protobuf;
using System.Text;

public class EncryptSymmetricSample
{
    public byte[] EncryptSymmetric(
      string projectId = "my-project", string locationId = "us-east1", string keyRingId = "my-key-ring", string keyId = "my-key",
      string message = "Sample message")
    {
        // Create the client.
        KeyManagementServiceClient client = KeyManagementServiceClient.Create();

        // Build the key name.
        CryptoKeyName keyName = new CryptoKeyName(projectId,