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 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. Informationen zur symmetrischen Rohverschlüsselung finden Sie unter Symmetrische Rohverschlüsselung.

Hinweise

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

  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 IAM-Rollen roles/cloudkms.cryptoKeyEncrypter, roles/cloudkms.cryptoKeyDecrypter oder roles/cloudkms.cryptoKeyEncrypterDecrypter 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 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ält
  • LOCATION: der Cloud KMS-Speicherort, der den Schlüsselbund enthält.
  • FILE_TO_ENCRYPT: der Pfad zu der 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",