Google Key Management (GCP KMS): Leitfaden für den Einstieg

Die Sicherung von Daten hat für jede Organisation oberste Priorität, und Verschlüsselung ist eine der effektivsten Möglichkeiten, Daten zu schützen. Aber wie genau? Die Google Cloud Platform (GCP) bietet einen Schlüsselverwaltungsdienst namens Google Key Management Service (KMS), mit dem Sie schnell Verschlüsselungsschlüssel erstellen und verwalten können.

In diesem Tutorial erfahren Sie, wie Sie einen Schlüssel in GCP KMS erstellen und verwenden können. Sie werden auch einige wichtige Konzepte im Zusammenhang mit der Schlüsselverwaltung durchgehen, wie Schlüssel, Schlüsselringe und Schlüsselversionen.

Bereit? Lesen Sie weiter und bringen Sie Ihre Datensicherheit auf die nächste Stufe!

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Um mitzumachen, stellen Sie sicher, dass Sie über ein GCP-Konto mit aktiver Abrechnung verfügen, aber eine kostenlose Testversion würde ausreichen.

A Google Cloud Project is a collection of resources you create and manage in GCP. Note that you should create separate projects for each of your applications. Doing so lets you efficiently manage the resources for each application. In the end, you can delete all the resources associated with a project, which is helpful for clean-up.

Um ein neues Google Cloud-Projekt zu erstellen:

1. Öffnen Sie Ihren bevorzugten Webbrowser und melden Sie sich im GCP Console an. Wie die AWS-Konsole ist die GCP-Konsole eine webbasierte Oberfläche zur Verwaltung Ihrer Ressourcen in der Google Cloud.

2. Navigieren Sie in Ihrer GCP-Konsole zur Seite Ressourcen verwalten, auf der Sie alle Ihre vorhandenen Projekte sehen und verwalten können.

3. Klicken Sie anschließend auf die Schaltfläche PROJEKT ERSTELLEN, um ein neues Projekt zu erstellen.

Creating a new Google Cloud project

Konfigurieren Sie abschließend die folgenden Einstellungen für Ihr neues Projekt und klicken Sie auf ERSTELLEN, um Ihr Projekt zu erstellen.

  • Projektname – Geben Sie einen Namen für Ihr Projekt ein, der nicht eindeutig sein muss und später geändert werden kann. Die Wahl dieses Tutorials für den Projektnamen lautet gcp-kms-demo.

  • Ort – Wählen Sie die übergeordnete Organisation oder den Ordner aus, in dem Sie dieses Projekt erstellen möchten. Ihr neu erstelltes Projekt wird die oberste übergeordnete Ebene sein. Sie können dieses Feld jedoch überspringen, wenn Sie keine Organisation haben.

Das Feld „Ort“ wird möglicherweise nicht angezeigt, wenn Sie ein Testkonto verwenden.

Configuring a new Google Cloud project

Wenn erfolgreich, sehen Sie Ihr neu erstelltes Google Cloud-Projekt unten aufgeführt.

Viewing the newly-created Google Cloud project

Aktivieren der Cloud KMS API für das Google Cloud-Projekt

Sie haben gerade Ihr erstes, wenn erfolgreich, sehen Sie Ihr neu erstelltes Google Cloud-Projekt unten aufgeführt. Cloud-Projekt erstellt, und normalerweise können Sie es nicht ungeschützt lassen. Keine Sorge! Die Cloud KMS API ist eine Reihe von von Google bereitgestellten Verschlüsselungs-APIs, die Sie zum Schutz Ihrer Daten verwenden können.

Um die Cloud KMS API zu verwenden, müssen Sie sie für Ihr Projekt aktivieren:

1. Gehen Sie zur Seite Google Projekt-Auswähler und wählen Sie Ihr Google Cloud-Projekt (gcp-kms-demo) aus.

Selecting a project

2. Gehen Sie anschließend zur Seite Zugriff auf die API aktivieren und klicken Sie auf WEITER, um die API für das ausgewählte Projekt zu aktivieren.

Confirming the selected Google Cloud project

3. Klicken Sie nun auf AKTIVIEREN, um die Cloud KMS API zu aktivieren.

Enabling the Cloud KMS API

An diesem Punkt ist die Cloud KMS API für Ihr Projekt aktiviert. Sie können nun die Cloud KSM API verwenden, um Verschlüsselungsschlüssel zu erstellen und zu verwalten.

Verifying the Cloud KMS API is enabled

Starten Sie die Cloud Shell, um Schlüssel und Schlüsselringe zu erstellen

Die Aktivierung der Cloud KMS API bereitet Sie darauf vor, Schlüssel und Schlüsselringe zur Verschlüsselung und Entschlüsselung Ihrer Daten zu erstellen. Schlüssel und Schlüsselringe sind grundlegende Konzepte in der Cloud KMS.

Key A key is an encryption key stored in a keyring that you can use to encrypt and decrypt your data. Each key has a name, and the name must be unique within the keyring. You can use IAM ( Identity and Access Management) policies to control who has access to keys.
Keyring A keyring is a container in Cloud KMS that holds a set of keys. You can think of the keyring as a folder on your computer that contains many files. But in essence, a keyring holds a set of keys in a specific Cloud KMS location.

Aber bevor Sie Schlüssel und Schlüsselringe erstellen können, müssen Sie zuerst die Cloud Shell starten. Die Cloud Shell ist eine kostenlose und interaktive Shell, die Sie verwenden können, um Befehle auf der Google Cloud Platform auszuführen, ohne Tools auf Ihrem Rechner installieren zu müssen.

1. Klicken Sie in der GCP Console auf die Schaltfläche „Cloud Shell aktivieren“ (oben rechts), wie unten gezeigt, um die Cloud Shell zu starten.

Starting the Cloud Shell

A Cloud Shell session initializes, as shown below (at the bottom of the page), where you can run commands.

Viewing the Cloud Shell prompt

2. Führen Sie anschließend den folgenden gcloud-Befehl in der Cloud Shell aus. Dieser Dialog wird angezeigt, wenn Sie den gcloud-Befehl zum ersten Mal in der Cloud Shell ausführen und bittet Sie, das gcloud-Tool zu autorisieren, auf die KSM API zuzugreifen. Dadurch wird ein neuer Schlüsselring (keyrings) mit dem Namen „kms-demo-keyring“ im globalen Standort erstellt.

gcloud kms keyrings create "kms-demo-keyring" \
--location "global"

–location „global“

Wenn Sie aufgefordert werden, klicken Sie auf AUTORISIEREN, um den Befehl fortzusetzen.

Authorizing access to the KSM API

Diese Aufforderung erscheint das erste Mal, wenn Sie den gcloud-Befehl in der Cloud Shell ausführen, und fragt Sie, ob Sie dem gcloud-Tool den Zugriff auf die KSM-API erlauben möchten.

Creating a new keyring

Wie unten gezeigt, gibt es keine Ausgabemeldungen, wenn der Schlüsselbund erfolgreich erstellt wurde.

Verwandte:Verwenden Sie Verschlüsselungsschlüssel wie ein Profi mit AWS Key Management

gcloud kms keys create "kms-demo-key01" \
  --location "global" \
  --keyring "kms-demo-keyring" \
  --purpose "encryption"

Beachten Sie, dass der Ort (global) der gleiche sein muss wie der, den Sie für den Schlüsselbund festgelegt haben.

–location „global“ \

–keyring „kms-demo-keyring“ \

Creating a key for encryption

–purpose „Verschlüsselung“

gcloud kms keys list --location "global" --keyring "kms-demo-keyring"

Jedes Mal, wenn Sie einen Schlüssel erstellen oder rotieren, erstellt Cloud KMS eine neue Version des Schlüssels. Diese Funktion ermöglicht es Ihnen, bei Bedarf einfach auf eine frühere Version zurückzugreifen.

PURPOSE ENCRYPT_DECRYPT Indicates the purpose of the key (encryption and decryption).
ALGORITHM GOOGLE_SYMMETRIC_ENCRYPTION Indicates the key uses Google Symmetric Encryption, the default algorithm for Cloud KMS keys.
PROTECTION_LEVEL SOFTWARE Indicates the key is software-protected.
LABELS You can add labels to keys to categorize them or to add additional information.
PRIMARY ID 1 Indicates the key is the primary key for the keyring, which is what Cloud KMS uses by default when you do not specify a key.

Note that you can have only one primary key per keyring.

PRIMARY STATE ENABLED Shows the current status of the key. The ENABLED state indicates the key can be used for its specified purpose.
Listing the keys in a keyring

Wie beim Erstellen eines Schlüsselbunds gibt es keine Ausgabemeldungen, wenn der Schlüssel erfolgreich erstellt wurde.

Aber zu diesem Zeitpunkt haben Sie einen Schlüsselbund und einen Schlüssel, den Sie zum Verschlüsseln und Entschlüsseln Ihrer Daten verwenden können.

4. Führen Sie nun den folgenden Befehl aus, um die Schlüssel in einem -keyring (kms-demo-keyring) aufzulisten.

Du wirst eine Ausgabe ähnlich dem untenstehenden Bildschirmfoto mit folgenden Informationen sehen:

echo "This is some sensitive data that I want to encrypt." > gcp-kms-demo.txt

Verschlüsseln und Entschlüsseln von Daten mit GCP KMS

Verschlüsselung ist eine entscheidende Verteidigungslinie, um den Zugriff bösartiger Parteien auf sensible Daten zu verhindern. Und jetzt, da du einen Verschlüsselungsschlüssel hast, kannst du ihn verwenden, um deine Daten zu verschlüsseln.
ls cat gcp-kms-demo.txt
Um Daten mit GCP KMS zu verschlüsseln, führe folgenden Befehl aus:
cat gcp-kms-demo.txt
Listing the text file and verifying the data

1. Führe den untenstehenden Befehl aus, der keine Ausgabe liefert, aber eine Textdatei (gcp-kms-demo.txt) mit einigen zu verschlüsselnden Texten erstellt.

2. Führe dann jeden der folgenden Befehle aus, um die Textdatei (gcp-kms-demo.txt) aufzulisten (ls) und ihren Inhalt anzuzeigen (cat), um die Daten zu überprüfen.

gcloud kms encrypt \
    --location "global" \
    --keyring "kms-demo-keyring" \
    --key "kms-demo-key01" \
    --plaintext-file ./gcp-kms-demo.txt \
    --ciphertext-file ./gcp-kms-demo.txt.encrypted
Encrypting data

# Liste die Textdatei auf

cat gcp-kms-demo.txt.encrypted

# Zeige den Inhalt der Textdatei an

3. Nach der Überprüfung führe den untenstehenden Befehl aus, um die Daten in deiner Datei (gcp-kms-demo.txt) mit deinem Schlüssel (kms-demo-key01) zu verschlüsseln. Die verschlüsselten Daten werden dann in einer neuen Datei namens gcp-kms-demo.txt.encrypted gespeichert.

Verifying the file data is encrypted

–location „global“ \

–keyring „kms-demo-keyring“ \

gcloud kms decrypt \
  --location "global" \
  --keyring "kms-demo-keyring" \
  --key "kms-demo-key01" \
  --ciphertext-file ./gcp-kms-demo.txt.encrypted \
  --plaintext-file ./gcp-kms-demo.txt.decrypted
Decrypting encrypted data

–key „kms-demo-key01“ \

cat gcp-kms-demo.txt.decrypted

–plaintext-file ./gcp-kms-demo.txt \

Verifying the encrypted file has been decrypted

–ciphertext-file ./gcp-kms-demo.txt.encrypted

4. Jetzt führen Sie den folgenden Befehl aus, um zu versuchen, die Daten der verschlüsselten Datei (gcp-kms-demo.txt.encrypted) anzuzeigen.

Sie werden zerbrochene, seltsame und unleserliche Symbole sehen, wie unten gezeigt. Dieser Output zeigt an, dass die Datei erfolgreich verschlüsselt wurde.

gcloud kms keys versions list \
  --location "global" \
  --keyring "kms-demo-keyring" \
  --key "kms-demo-key01"

Sie müssen diese verschlüsselte Datei an einem sicheren Ort aufbewahren. Sie können beispielsweise mehrere Kopien in AWS S3, GCP Cloud Storage oder Azure Blob Storage speichern. Google Cloud speichert die Klartextversion Ihrer Daten nicht. Wenn Sie die verschlüsselte Datei verlieren, ist es unmöglich, die Originaldaten zurückzuerhalten.

Listing all the key versions

Verwandt:So laden Sie eine Datei mit dem AWS CLI in S3 hoch

5. Nach der Verschlüsselung führen Sie den folgenden Befehl aus, um Ihre Daten (gcp-kms-demo.txt.encrypted) mit demselben Schlüssel (kms-demo-key01) zu entschlüsseln. Diesmal werden die entschlüsselten Daten in einer neuen Datei namens gcp-kms-demo.txt.decrypted gespeichert.

gcloud kms keys versions destroy 1\
  --location "global" \
  --keyring "kms-demo-keyring" \
  --key "kms-demo-key01"

Wie bei der Verschlüsselung liefert dieser Befehl keine Ausgabe, aber Sie überprüfen die Entschlüsselung im nächsten Schritt.

gcloud kms keys versions list

–location „global“ \

–keyring „kms-demo-keyring“ \

Verifying the key has been scheduled for destruction

–key „kms-demo-key01“ \

Deleting the Google Cloud project

–ciphertext-file ./gcp-kms-demo.txt.encrypted \

–plaintext-file ./gcp-kms-demo.txt.decrypted

Confirming Google Cloud project deletion

6. Führen Sie abschließend den folgenden Befehl aus, um (cat) die entschlüsselte Datei (gcp-kms-demo.txt.decrypted) anzuzeigen und zu überprüfen, ob die Daten erfolgreich entschlüsselt wurden.

Unten sehen Sie die originalen Daten, die Sie in der Textdatei gespeichert haben. Herzlichen Glückwunsch! Sie haben Daten erfolgreich mit Google Cloud KMS verschlüsselt und entschlüsselt.

Bereinigung von Google Cloud-Ressourcen

Source:
https://adamtheautomator.com/gcp-kms/