arrow_back

Erste Schritte mit Cloud KMS

Anmelden Teilnehmen
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Erste Schritte mit Cloud KMS

Lab 45 Minuten universal_currency_alt 1 Guthabenpunkt show_chart Einsteiger
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP079

Logo: Google Cloud-Labs zum selbstbestimmten Lernen

Übersicht

In diesem Lab lernen Sie, wie Sie einige der erweiterten Funktionen der Sicherheits- und Datenschutz-APIs von Google Cloud verwenden. Sie erledigen folgende Aufgaben:

  • Sichere Cloud Storage-Buckets einrichten
  • Schlüssel und verschlüsselte Daten mit dem Key Management Service verwalten
  • Cloud Storage-Audit-Logs aufrufen

Sie verwenden dazu gekürzte Daten aus dem Enron Corpus, verschlüsseln sie und laden sie in Cloud Storage.

Lerninhalte

  • Mit dem Cloud Key Management Service (KMS) Daten verschlüsseln und Verschlüsselungsschlüssel verwalten

Einrichtung und Anforderungen

Vor dem Klick auf „Start Lab“ (Lab starten)

Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange die Ressourcen für das Lab verfügbar sind.

In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung selbst durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.

Für dieses Lab benötigen Sie Folgendes:

  • Einen Standardbrowser (empfohlen wird Chrome)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus, um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
  • Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Hinweis: Wenn Sie über ein persönliches Google Cloud-Konto oder -Projekt verfügen, verwenden Sie es nicht für dieses Lab. So werden zusätzliche Kosten für Ihr Konto vermieden.

Lab starten und bei der Google Cloud Console anmelden

  1. Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Pop-up-Fenster geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite befindet sich der Bereich Details zum Lab mit diesen Informationen:

    • Schaltfläche Google Cloud Console öffnen
    • Restzeit
    • Temporäre Anmeldedaten für das Lab
    • Ggf. weitere Informationen für dieses Lab
  2. Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).

    Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite Anmelden geöffnet.

    Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.

    Hinweis: Wird das Dialogfeld Konto auswählen angezeigt, klicken Sie auf Anderes Konto verwenden.
  3. Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.

    {{{user_0.username | "Username"}}}

    Sie finden den Nutzernamen auch im Bereich Details zum Lab.

  4. Klicken Sie auf Weiter.

  5. Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.

    {{{user_0.password | "Password"}}}

    Sie finden das Passwort auch im Bereich Details zum Lab.

  6. Klicken Sie auf Weiter.

    Wichtig: Sie müssen die für das Lab bereitgestellten Anmeldedaten verwenden. Nutzen Sie nicht die Anmeldedaten Ihres Google Cloud-Kontos. Hinweis: Wenn Sie Ihr eigenes Google Cloud-Konto für dieses Lab nutzen, können zusätzliche Kosten anfallen.
  7. Klicken Sie sich durch die nachfolgenden Seiten:

    • Akzeptieren Sie die Nutzungsbedingungen.
    • Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
    • Melden Sie sich nicht für kostenlose Testversionen an.

Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.

Hinweis: Wenn Sie sich eine Liste der Google Cloud-Produkte und ‑Dienste ansehen möchten, klicken Sie oben links auf das Navigationsmenü. Symbol für Navigationsmenü

Cloud Shell aktivieren

Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.

  1. Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren Symbol für Cloud Shell-Aktivierung.

Wenn Sie verbunden sind, sind Sie bereits authentifiziert und das Projekt ist auf Ihre Project_ID, eingestellt. Die Ausgabe enthält eine Zeile, in der die Project_ID für diese Sitzung angegeben ist:

Ihr Cloud-Projekt in dieser Sitzung ist festgelegt als {{{project_0.project_id | "PROJECT_ID"}}}

gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.

  1. (Optional) Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list
  1. Klicken Sie auf Autorisieren.

Ausgabe:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Um das aktive Konto festzulegen, führen Sie diesen Befehl aus: $ gcloud config set account `ACCOUNT`
  1. (Optional) Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project

Ausgabe:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Hinweis: Die vollständige Dokumentation für gcloud finden Sie in Google Cloud in der Übersicht zur gcloud CLI.

Aufgabe 1: Cloud Storage-Bucket erstellen

Sie benötigen einen eigenen Cloud Storage-Bucket, in dem die Daten dieses Labs gespeichert werden.

  1. Wählen Sie einen Namen für den Cloud Storage-Bucket aus, z. B. -enron_corpus. Weitere Informationen zum Benennen von Buckets finden Sie im Abschnitt Bucket-Namen unter „Informationen zu Cloud Storage-Buckets“. Führen Sie in der Cloud Shell-Befehlszeile den folgenden Befehl aus, um eine Variable für den Namen Ihres Buckets festzulegen:
BUCKET_NAME="{{{ project_0.project_id }}}-enron_corpus"
  1. Erstellen Sie dann den Bucket, indem Sie folgenden Befehl ausführen:
gsutil mb gs://${BUCKET_NAME}

Mit diesem Befehl können Sie auch überprüfen, ob Sie den Client für das Befehlszeilentool gsutil korrekt eingerichtet haben, ob die Authentifizierung funktioniert und ob Sie Schreibzugriff auf das Cloud-Projekt haben.

  1. Nachdem Ihr Bucket erstellt wurde, können Sie den Enron Corpus herunterladen.

Klicken Sie auf Fortschritt prüfen.

Cloud Storage-Bucket erstellen

Aufgabe 2: Daten analysieren

Der Enron Corpus ist eine riesige Datenbank mit über 600.000 E-Mails, die von 158 Mitarbeitern der Enron Corporation verfasst wurden. Diese Daten wurden in den Cloud Storage-Bucket gs://enron_emails/ kopiert.

  1. Laden Sie eine der Quelldateien mit dem folgenden Befehl herunter, um sie sich anzusehen:
gsutil cp gs://enron_emails/allen-p/inbox/1. .
  1. Verwenden Sie für die heruntergeladene Datei nun den Befehl tail, um zu prüfen, ob der E-Mail-Text vorhanden ist:
tail 1.

Sie sollten folgende Ausgabe erhalten:

Attached is the Delta position for 1/18, 1/31, 6/20, 7/16, 9/24 << File: west_delta_pos.xls >> Let me know if you have any questions.

Damit sollte der Inhalt der Klartext-E-Mail-Datei angezeigt werden. Sie arbeiten in diesem Lab mit folgenden zwei Dateitypen: Klartext-E-Mail-Dateien und Bilddateien. Wenn es Sie interessiert, sehen Sie sich mit dem gleichen Verfahren auch die anderen Dateien an.

Aufgabe 3: Cloud KMS aktivieren

Cloud KMS ist ein kryptografischer Key Management Service in Google Cloud. Bevor Sie KMS nutzen können, müssen Sie es in Ihrem Projekt aktivieren. Im Rahmen dieses Labs sollte die Aktivierung bereits vorgenommen worden sein. Sie können dies aber auch mithilfe eines der gcloud-Befehle in der Befehlszeile prüfen.

  • Führen Sie in einer Cloud Shell-Sitzung Folgendes aus:
gcloud services enable cloudkms.googleapis.com Hinweis: Sie können KMS und andere Dienste für Ihr Projekt auch über die Cloud Console-Benutzeroberfläche aktivieren.

Sie sollten keine Ausgabe erhalten. Cloud KMS ist jetzt in Ihrem Projekt aktiviert.

Aufgabe 4: KeyRing und CryptoKey erstellen

Zum Verschlüsseln der Daten müssen Sie einen KeyRing (Schlüsselbund) und einen CryptoKey (Kryptografischer Schlüssel) erstellen. KeyRings sind hilfreich, um Schlüssel zu gruppieren. Schlüssel können nach Umgebung (wie test, staging und prod) oder auch nach einem anderen Konzept gruppiert werden. Für dieses Lab heißt Ihr KeyRing test und Ihr CryptoKey qwiklab.

  1. Führen Sie folgenden Befehl in Cloud Shell aus, um Umgebungsvariablen festzulegen:
KEYRING_NAME=test CRYPTOKEY_NAME=qwiklab
  1. Führen Sie den folgenden gcloud-Befehl aus, um den KeyRing zu erstellen. Im Rahmen dieses Labs verwenden Sie einen globalen Standort. Es kann aber auch eine bestimmte Region festgelegt werden:
gcloud kms keyrings create $KEYRING_NAME --location global
  1. Erstellen Sie mit dem neuen KeyRing als Nächstes einen CryptoKey mit den Namen qwiklab:
gcloud kms keys create $CRYPTOKEY_NAME --location global \ --keyring $KEYRING_NAME \ --purpose encryption Hinweis: CryptoKeys und KeyRings können in Cloud KMS nicht gelöscht werden.

Sie sollten keine Ausgabe angezeigt bekommen. So einfach haben Sie nun einen KeyRing und einen CryptoKey erstellt.

  1. Öffnen Sie Key Management über die Console. Rufen Sie dazu im Navigationsmenü die Option Sicherheit > Key Management auf.

Über die Web-UI von Key Management können Sie sich die CryptoKeys und KeyRings ansehen und sie verwalten. Später werden Sie über diese UI auch Berechtigungen verwalten.

Klicken Sie auf Fortschritt prüfen.

KeyRing und CryptoKey erstellen

Aufgabe 5: Daten verschlüsseln

Jetzt widmen wir uns dem Verschlüsseln von Daten.

  1. Dafür nehmen Sie eine Base64-Codierung der oben angegebenen E-Mail-Inhalte vor, indem Sie Folgendes ausführen:
PLAINTEXT=$(cat 1. | base64 -w0) Hinweis: Mit der Base64-Codierung können Binärdaten als Klartext an die API gesendet werden. Dieser Befehl funktioniert für Bilder, Videos und jegliche andere Binärdaten.

Mithilfe des Verschlüsselungsendpunkts können Sie den zu verschlüsselnden Base64-codierten Text an den angegebenen Schlüssel senden.

  1. Führen Sie den folgenden Befehl aus:
curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAINTEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\ -H "Content-Type: application/json" Hinweis: Die Aktion encrypt gibt jedes Mal ein anderes Ergebnis zurück, selbst wenn derselbe Text und derselbe Schlüssel verwendet werden.

Die Antwort ist eine JSON-Nutzlast, die in dem Attribut ciphertext den verschlüsselten Text enthält.

  1. Die nun verschlüsselten Daten können Sie in einer Datei speichern und dann in Ihren Cloud Storage-Bucket hochladen. Rufen Sie mit dem Befehlszeilentool jq den verschlüsselten Text aus der JSON-Antwort ab und speichern ihn in einer Datei. Das Ergebnis des vorherigen Aufrufs kann an jq übergeben werden. Dort wird die Datei 1.encrypted mit der Eigenschaft ciphertext geparst. Führen Sie den folgenden Befehl aus:
curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAINTEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\ -H "Content-Type:application/json" \ | jq .ciphertext -r > 1.encrypted
  1. Zur Überprüfung, ob die verschlüsselten Daten entschlüsselt werden können, rufen Sie den Entschlüsselungsendpunkt (decrypt) auf. So können Sie prüfen, ob der entschlüsselte Text mit dem der Original-E-Mail übereinstimmt. Die verschlüsselten Daten enthalten Angaben über die CryptoKey-Version, die zum Verschlüsseln verwendet wurde. Die spezifische Version wird also niemals an den Entschlüsselungsendpunkt geliefert. Führen Sie den folgenden Befehl aus:
curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:decrypt" \ -d "{\"ciphertext\":\"$(cat 1.encrypted)\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\ -H "Content-Type:application/json" \ | jq .plaintext -r | base64 -d Hinweis: Die Verschlüsselung erfolgt in der Regel auf der Anwendungsebene. Eine Schritt-für-Schritt-Anleitung zum Ver- und Entschlüsseln von Daten in verschiedenen Programmiersprachen finden Sie unter Verschlüsselungsschlüssel mit Cloud KMS erstellen.
  1. Da Sie jetzt wissen, dass der Text erfolgreich verschlüsselt wurde, laden Sie die Datei in Ihren Cloud Storage-Bucket hoch.
gsutil cp 1.encrypted gs://${BUCKET_NAME}

Klicken Sie auf Fortschritt prüfen.

Daten mit dem Cloud KMS-Schlüssel verschlüsseln und in den Storage-Bucket laden

Aufgabe 6: IAM-Berechtigungen konfigurieren

Für KMS gibt es zwei Berechtigungen, die es besonders zu beachten gilt. Mit der einen können von einem Nutzer- oder Dienstkonto aus KMS-Ressourcen verwaltet werden, während mit der anderen über ein Nutzer- oder Dienstkonto Daten verschlüsselt und entschlüsselt werden.

Die Berechtigung für die Verwaltung von Schlüsseln lautet cloudkms.admin und ermöglicht jeder Person mit dieser Berechtigung das Erstellen von KeyRings sowie das Erstellen, Ändern, Deaktivieren und Vernichten von CryptoKeys. Die Berechtigung zum Ver- und Entschlüsseln lautet cloudkms.cryptoKeyEncrypterDecrypter und wird zum Aufrufen der API-Endpunkte für Ver- und Entschlüsselung verwendet.

Für diese Übung verwenden Sie den aktuell autorisierten Nutzer, um IAM-Berechtigungen zuzuweisen.

  1. Führen Sie den folgenden Befehl aus, um den aktuell autorisierten Nutzer abzurufen:
USER_EMAIL=$(gcloud auth list --limit=1 2>/dev/null | grep '@' | awk '{print $2}')
  1. Als Nächstes weisen Sie dem Nutzer die Berechtigung zu, KMS-Ressourcen zu verwalten. Führen Sie folgenden gcloud-Befehl aus, um dem Nutzer die IAM-Berechtigung zuzuweisen, mit der er den KeyRing verwalten kann, den Sie gerade erstellt haben:
gcloud kms keyrings add-iam-policy-binding $KEYRING_NAME \ --location global \ --member user:$USER_EMAIL \ --role roles/cloudkms.admin

Da CryptoKeys zu KeyRings und KeyRings zu Projekten gehören, übernimmt ein Nutzer mit einer bestimmten Rolle oder Berechtigung auf höherer Ebene in dieser Hierarchie die gleichen Berechtigungen für die untergeordneten Ressourcen. Das bedeutet, dass ein Nutzer, der die Rolle „Inhaber“ für ein Projekt hat, auch ein Inhaber aller KeyRings und CryptoKeys in diesem Projekt ist. Wenn einem Nutzer die Rolle cloudkms.admin für einen KeyRing zugewiesen ist, hat er auch die zugehörigen Berechtigungen für die CryptoKeys in diesem KeyRing.

Ohne die Berechtigung cloudkms.cryptoKeyEncrypterDecrypter kann der autorisierte Nutzer die Schlüssel nicht verwenden, um Daten zu ver- oder entschlüsseln.

  1. Führen Sie folgenden gcloud-Befehl aus, um die IAM-Berechtigung zuzuweisen, mit der der Nutzer Daten für jeden CryptoKey an dem von Ihnen erstellten KeyRing ver- und entschlüsseln kann:
gcloud kms keyrings add-iam-policy-binding $KEYRING_NAME \ --location global \ --member user:$USER_EMAIL \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter

Nun können Sie sich im Key Management im Bereich „Kryptografische Schlüssel“ die zugewiesenen Berechtigungen ansehen.

  1. Klicken Sie auf das Kästchen neben dem Namen des Schlüsselbunds (test) und dann im Infofeld rechts auf Hauptkonten.

Für den gerade hinzugefügten Schlüsselbund werden in einem Menü die Konten und Berechtigungen angezeigt.

Aufgabe 7: Daten über die Befehlszeile sichern

Da Sie jetzt wissen, wie Sie eine einzelne Datei verschlüsseln und auch die Berechtigung dazu haben, können Sie ein Script ausführen, um alle Dateien in einem Verzeichnis zu sichern. Kopieren Sie dafür alle E-Mails für allen-p, verschlüsseln Sie sie und laden Sie sie in einen Cloud Storage-Bucket hoch.

  1. Kopieren Sie zuerst alle E-Mails für allen-p in Ihr aktuelles Arbeitsverzeichnis:
gsutil -m cp -r gs://enron_emails/allen-p .
  1. Kopieren Sie nun folgendes Script und fügen Sie es in Cloud Shell ein. Damit werden alle Dateien im Verzeichnis allen-p im Cloud Storage-Bucket gesichert und verschlüsselt:
MYDIR=allen-p FILES=$(find $MYDIR -type f -not -name "*.encrypted") for file in $FILES; do PLAINTEXT=$(cat $file | base64 -w0) curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAINTEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type:application/json" \ | jq .ciphertext -r > $file.encrypted done gsutil -m cp allen-p/inbox/*.encrypted gs://${BUCKET_NAME}/allen-p/inbox

Das Script lässt alle Dateien eines bestimmten Verzeichnisses eine Schleife durchlaufen, verschlüsselt sie mit der KMS API und lädt sie in Cloud Storage hoch.

Klicken Sie auf Fortschritt prüfen.

Mehrere Dateien mit der KMS API verschlüsseln und in Cloud Storage hochladen

Nachdem das Script abgeschlossen ist, können Sie die verschlüsselten Dateien durch Klicken auf „Storage“ links im Console-Menü aufrufen.

  1. Wenn Sie sich die Dateien ansehen möchten, rufen Sie im Navigationsmenü die Option Cloud Storage > Buckets > IHR_BUCKET > allen-p > Posteingang auf. Auf dem Bildschirm sollte Folgendes zu sehen sein:

Bucket-Inhalt

Hinweis: Cloud Storage unterstützt die serverseitige Verschlüsselung. Diese unterstützt wiederum die Schlüsselrotation Ihrer Daten und wird für die Verschlüsselung von Daten in Cloud Storage empfohlen. Das obige Beispiel dient lediglich der Veranschaulichung.

Aufgabe 8: Cloud-Audit-Logs ansehen

Das Google Cloud-Audit-Logging besteht aus zwei Logstreams (Administratoraktivität und Datenzugriff), die von Google Cloud-Diensten generiert werden. Mit diesen Streams können Sie für Ihre Google Cloud-Projekte herausfinden, wer was wo und wann getan hat.

  • Sie können sich die Aktivitäten jeder Ressource in KMS ansehen. Öffnen Sie dazu im Navigationsmenü den Tab unter Cloud-Übersicht > Aktivität. So gelangen Sie zur Benutzeroberfläche der Cloud-Aktivität. Klicken Sie dann auf Im Log-Explorer ansehen und wählen Sie Cloud KMS-Schlüsselbund als Ressourcentyp aus. Dort sollten Sie die Erstellung des KeyRing sowie alle daran vorgenommenen Änderungen sehen können.

Sie haben jetzt Daten mithilfe von KMS und Cloud Storage verschlüsselt und hochgeladen.

Das wurde behandelt

  • KMS-Berechtigungen mit IAM verwalten
  • Daten mit KMS verschlüsseln
  • Cloud Storage zum Speichern verschlüsselter Daten verwenden
  • Mithilfe von Cloud-Audit-Logging die Aktivitäten von CryptoKeys und KeyRings ansehen

Aufgabe 9: Wissen testen

In diesem Quiz können Sie Ihr Wissen über Cloud KMS testen.

Das wars! Sie haben das Lab erfolgreich abgeschlossen.

Sie haben gelernt, wie Sie mit dem Cloud Key Management Service (KMS) Daten verschlüsseln und Verschlüsselungsschlüssel verwalten.

Weitere Informationen

Anleitung zuletzt am 15. April 2024 aktualisiert

Lab zuletzt am 31. August 2023 getestet

© 2024 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.