1. Einführung
Cloud KMS Autokey vereinfacht das Erstellen und Verwenden von kundenverwalteten Verschlüsselungsschlüsseln (CMEKs) durch die Automatisierung der Bereitstellung und Zuweisung. Mit Autokey müssen Ihre Schlüsselbunde, Schlüssel und Dienstkonten nicht geplant und bereitgestellt werden, bevor sie benötigt werden. Stattdessen werden Ihre Schlüssel mit Autokey bei der Erstellung Ihrer Ressourcen auf Anfrage generiert. Dabei werden delegierte Berechtigungen anstelle von Cloud KMS-Administratoren verwendet.
Wenn Sie von Autokey generierte Schlüssel verwenden, können Sie die Branchenstandards und empfohlenen Praktiken für die Datensicherheit einhalten, einschließlich HSM-Schutzniveau, Aufgabentrennung, Schlüsselrotation, Standort und Schlüsselspezifität. Mit Autokey werden Schlüssel erstellt, die sowohl allgemeinen Richtlinien als auch Richtlinien folgen, die für den Ressourcentyp für Google Cloud-Dienste gelten, die in Cloud KMS Autokey eingebunden sind. Nachdem sie erstellt wurden, funktionieren mit Autokey angeforderte Schlüssel identisch mit anderen Cloud HSM-Schlüsseln mit denselben Einstellungen.
Umfang
In diesem Codelab starten Sie geschützte Ressourcen mit Cloud KMS Autokey, indem Sie Folgendes erstellen:
- eine Ordnerressource
- ein Projekt, das Ihre Schlüssel enthält
- ein Dienst-Agent, der als Ihr Schlüsselverwaltungsassistent fungiert
- ein Projekt, in dem Ihre geschützten Ressourcen gehostet werden
- Mit Cloud KMS Autokey verschlüsselte BigQuery-Datasets, persistente Datenträger und Cloud Storage-Buckets
Voraussetzungen
- Google Cloud-Organisation
- Ihr Google Cloud-Prinzipal muss die folgenden Rollen auf Organisationsebene haben, um dieses Lab durchführen zu können:
- Cloud KMS Autokey Admin (roles/cloudkms.autokeyAdmin)
- Ordner-IAM-Administrator (roles/resourcemanager.folderIamAdmin)
- Rechnungskontonutzer (roles/billing.user)
- Google Cloud-Projekte mit aktivierter Abrechnung
- Grundlegende Linux-Kenntnisse
2. Ordner erstellen
Ordner sind Knoten in der Cloud Platform-Ressourcenhierarchie. Ein Ordner kann Projekte, andere Ordner oder eine Kombination aus beidem enthalten. In Organisationsressourcen können Ordner verwendet werden, um Projekte unter dem Knoten der Organisationsressource in einer Hierarchie zu gruppieren. So erstellen Sie einen Ordner:
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten .
- Prüfen Sie, ob der Name Ihrer Organisationsressource in der Drop-down-Liste der Organisation oben auf der Seite ausgewählt ist.
- Klicken Sie auf „Ordner erstellen“.

- Standardordner auswählen

- Geben Sie im Feld „Ordnername“ den Namen Ihres neuen Ordners ein. Verwenden Sie für dieses Lab den Ordner „Autokey“.
- Klicken Sie unter „Ziel“ auf „Durchsuchen“ und wählen Sie die Organisationsressource oder den Ordner aus, unter dem Sie den neuen Ordner erstellen möchten.
- Klicken Sie auf „Erstellen“.
3. Ressourcenprojekt erstellen
Es ist wichtig, ein Ressourcenprojekt zu erstellen, das die Ressourcen wie BigQuery-Datasets, persistente Datenträger und Cloud Storage-Buckets enthält, die Sie mit Cloud KMS Autokey verschlüsseln möchten. Wenn Sie versuchen, Ressourcen zu erstellen, die durch Autokey im Schlüsselprojekt geschützt werden, lehnt Autokey die Anfrage für einen neuen Schlüssel ab. So erstellen Sie das Ressourcenprojekt:
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten .
- Klicke auf „Projekt erstellen“.

- Wählen Sie oben auf der Seite in der Drop-down-Liste „Organisation auswählen“ den Ordner „Autokey-Folder“ aus.
- Gib im jetzt angezeigten Fenster „Neues Projekt“ einen Projektnamen ein und wähle ggf. ein Rechnungskonto aus. Für dieses Lab sollten Sie „Autokey Encrypted Resources“ (Mit Autoschlüssel verschlüsselte Ressourcen) in Betracht ziehen.
- Wählen Sie im Feld „Speicherort“ den Ordner „Autokey-Folder“ aus. Diese Ressource ist das hierarchisch übergeordnete Element des neuen Projekts. Ihre Einstellungen sollten in etwa so aussehen:

- Kopieren Sie die Projekt-ID in den Texteditor Ihrer Wahl. Im obigen Beispiel lautet die Projekt-ID „causal-hour-43319-m4“, Ihre ID wird jedoch anders lauten.
- Klicken Sie auf „Erstellen“
- Wählen Sie rechts oben auf dem Bildschirm das Cloud Shell-Symbol aus.

- Speichern Sie nach der Aktivierung der Cloud Shell Ihre Autokey-Projekt-ID als Variable, indem Sie den folgenden Befehl ausführen:
export RESOURCE_PROJECT=<paste your Resource Project ID>
Da meine Projekt-ID „key-management-433319“ lautet, sieht mein Befehl so aus:
export AUTOKEY_PROJECT=causal-hour-43319-m4
- Führen Sie den folgenden Befehl aus, um Befehle aus Ihrem Schlüsselprojekt auszuführen:
gcloud config set project $RESOURCE_PROJECT
Wenn Sie dazu aufgefordert werden, autorisieren Sie Cloud Shell, indem Sie auf „Autorisieren“ klicken.

- Da dieses Projekt Ressourcen enthält, müssen wir die APIs für die Dienste aktivieren, die von Autokey geschützt werden. Führen Sie dazu diesen Befehl aus:
gcloud services enable storage.googleapis.com bigquery.googleapis.com compute.googleapis.com
4. Schlüsselprojekt erstellen
Wir empfehlen, ein Projekt zu erstellen, das die von Autokey erstellten Cloud KMS-Ressourcen enthält. Dieses Projekt wird im Folgenden als „Schlüsselprojekt“ bezeichnet. Das Schlüsselprojekt kann im selben Ordner erstellt werden, in dem Sie Autokey aktivieren möchten. Sie sollten keine anderen Ressourcen im Schlüsselprojekt erstellen. Wenn Sie versuchen, Ressourcen zu erstellen, die durch Autokey im Schlüsselprojekt geschützt werden, lehnt Autokey die Anfrage für einen neuen Schlüssel ab. So erstellen Sie das Schlüsselprojekt:
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten .
- Klicke auf „Projekt erstellen“.

- Wählen Sie oben auf der Seite in der Drop-down-Liste „Organisation auswählen“ den Ordner „Autokey-Folder“ aus.
- Gib im jetzt angezeigten Fenster „Neues Projekt“ einen Projektnamen ein und wähle ggf. ein Rechnungskonto aus. Für dieses Lab ist „Schlüsselverwaltung“ relevant.
- Wählen Sie im Feld „Speicherort“ den Ordner „Autokey-Folder“ aus. Diese Ressource ist das hierarchisch übergeordnete Element des neuen Projekts. Ihre Einstellungen sollten in etwa so aussehen:

- Kopieren Sie die Projekt-ID in den Texteditor Ihrer Wahl. Im obigen Beispiel lautet die Projekt-ID „key-management-433319“. Ihre ID wird anders lauten.
- Klicken Sie auf „Erstellen“.
5. Autokey-Schlüsselprojekt vorbereiten
Nachdem die Projekte erstellt wurden, müssen Sie das Schlüsselprojekt für die Verwendung von Cloud KMS Autokey konfigurieren.
- Wählen Sie rechts oben auf dem Bildschirm das Cloud Shell-Symbol aus.

- Speichern Sie nach der Aktivierung der Cloud Shell Ihre Autokey-Projekt-ID als Variable, indem Sie den folgenden Befehl ausführen:
export AUTOKEY_PROJECT=<paste your Autokey Project ID>
Da meine Projekt-ID „key-management-433319“ lautet, sieht mein Befehl so aus:
export AUTOKEY_PROJECT=key-management-433319
- Führen Sie den folgenden Befehl aus, um Befehle aus Ihrem Schlüsselprojekt auszuführen:
gcloud config set project $AUTOKEY_PROJECT
Wenn Sie dazu aufgefordert werden, autorisieren Sie Cloud Shell, indem Sie auf „Autorisieren“ klicken.

- Aktivieren Sie die Cloud KMS API mit dem folgenden Befehl:
gcloud services enable cloudkms.googleapis.com kmsinventory.googleapis.com
- Führen Sie den folgenden Befehl aus, um Ihre Projektnummer als Variable mit dem Namen AUTOKEY_PROJECT_NUMBER zu speichern.
export AUTOKEY_PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)")
- Speichern Sie die E-Mail-Adresse des Auftraggebers als Variable, indem Sie den folgenden Befehl ausführen:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
- Cloud KMS-Administratorberechtigungen für das Schlüsselprojekt für Ihre Cloud KMS-Administratornutzer gewähren
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
--role=roles/cloudkms.admin \
--member=user:$KEY_ADMIN_EMAIL
6. Cloud KMS-Dienst-Agents einrichten
Der Cloud KMS-Dienst-Agent für ein Schlüsselprojekt erstellt Schlüssel und wendet IAM-Richtlinienbindungen bei der Ressourcenerstellung im Namen eines menschlichen Cloud KMS-Administrators an. Damit der Cloud KMS-Dienst-Agent Schlüssel erstellen und zuweisen kann, sind Cloud KMS-Administratorberechtigungen erforderlich.
- Rufen Sie die Organisations-ID mit dem folgenden Befehl ab:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
- Kopieren Sie die Organisations-ID. Das ist das numerische Ergebnis, das rot hervorgehoben ist.
- Speichern Sie die Organisations-ID als Variable mit dem Namen ORG_ID:
export ORG_ID=<paste your Organization ID>
- Erstellen Sie den Cloud KMS-Dienst-Agent mit dem folgenden Befehl:
gcloud beta services identity create --service=cloudkms.googleapis.com \
--project=$AUTOKEY_PROJECT_NUMBER
- Weisen Sie dem Dienst-Agent die Rolle „Cloud KMS-Administrator“ zu:
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
--role=roles/cloudkms.admin \
--member=serviceAccount:service-$AUTOKEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
- Fügen Sie eine IAM-Richtlinienbindung hinzu, damit Sie die Verwendung Ihres Cloud KMS-Schlüssels sehen können. „Schlüsselnutzung“ enthält Informationen zu jedem Schlüssel, einschließlich der Anzahl der geschützten Ressourcen, Projekte und eindeutigen Google Cloud-Produkte, die den Schlüssel verwenden. Diese Detailtiefe ist für alle verfügbar, die die Rolle „Cloud KMS Viewer“ für den Schlüssel haben. Führen Sie dazu diesen Befehl aus:
gcloud organizations add-iam-policy-binding $ORGANIZATION_ID \
--member="serviceAccount:service-org-$ORGANIZATION_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
--role='roles/cloudkms.orgServiceAgent'
- Weisen Sie Ihrem Cloud KMS-Dienstkonto die Rolle „Cloud KMS Organization Service Agent“ (cloudkms.orgServiceAgent) für Ihre Organisationsressource zu.
gcloud organizations add-iam-policy-binding $ORG_ID \
--member="serviceAccount:service-org-$ORG_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
--role='roles/cloudkms.orgServiceAgent'
- Gewähren Sie die Rolle „Cloud KMS Protected Resources Viewer“ für Ihre Organisationsressource allen Nutzern, die Details zur Schlüsselnutzung ansehen müssen.
gcloud organizations add-iam-policy-binding $ORG_ID \
--member="user:$KEY_ADMIN_EMAIL" \
--role='roles/cloudkms.protectedResourcesViewer'
7. Autokey-Nutzerrollen zuweisen
Bevor Ihre Entwickler Autokey verwenden können, müssen Sie ihnen die erforderliche Rolle zuweisen. Sie können die Rolle auf Ordner- oder Projektebene zuweisen. Mit dieser Rolle können Entwickler Schlüssel vom Cloud KMS-Dienst-Agent anfordern, während sie Ressourcen in diesem Ordner oder Projekt erstellen.
Der erste Schritt beim Zuweisen der Rolle besteht darin, die Ordner-ID zu speichern.
- Rufen Sie die Ordner-ID mit dem folgenden Befehl ab:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
- Kopieren Sie die Ordner-ID. Das ist der rot markierte Teil.
- Speichern Sie die Ordner-ID als Variable mit dem Namen FOLDER_ID.
export FOLDER_ID=<paste the folder ID>
Für dieses Lab definieren wir den Schlüsseladministrator als Autokey-Nutzer. In Produktionsanwendungsfällen und in Organisationen mit mehr als einer Person sollte der Schlüsseladministrator jedoch ein anderer sein als der Entwickler, der Autokey verwendet.
- Weisen Sie auf Ordnerebene die Rolle „roles/cloudkms.autokeyUser“ zu:
gcloud resource-manager folders add-iam-policy-binding \
$FOLDER_ID --role=roles/cloudkms.autokeyUser \
--member=user:$KEY_ADMIN_EMAIL
8. Cloud KMS Autokey für einen Ressourcenordner aktivieren
In diesem Schritt aktivieren Sie Cloud KMS Autokey für einen Ressourcenordner und geben das Cloud KMS-Projekt an, das Autokey-Ressourcen für diesen Ordner enthält. Wenn Sie Autokey für diesen Ordner aktivieren, wird Autokey für alle Ressourcenprojekte im Ordner aktiviert.
- Rufen Sie in der Google Cloud Console die Seite KMS-Steuerelemente auf.
- Klicken Sie auf „Ordner auswählen“.

- Wählen Sie in der Kontextauswahl den Ordner aus, für den Sie Autokey aktivieren möchten. Das ist derselbe Ordner, den Sie zuvor erstellt haben und der Ihr Ressourcenprojekt und das Schlüsselverwaltungsprojekt enthält. Das sollte so aussehen:

- Klicken Sie auf "Enable" (Aktivieren).
- Klicken Sie auf „Durchsuchen“, um das Schlüsselprojekt auszuwählen.
- Wählen Sie Ihr Schlüsselverwaltungsprojekt aus und klicken Sie auf „Senden“.

Eine Meldung bestätigt, dass Cloud KMS Autokey für den Ordner aktiviert ist. Die Seite „KMS-Steuerelemente“ sollte so aussehen:

9. Geschützte Ressourcen mit Cloud KMS Autokey erstellen
Nichtflüchtige Compute Engine-Speicher
Autokey erstellt für jedes Laufwerk, Image und Maschinen-Image einen neuen Schlüssel am selben Speicherort wie die Ressource, die erstellt wird.
So erstellen Sie ein Laufwerk:
- Rufen Sie in der Google Cloud Console die Seite „Laufwerke“ auf.
- Klicken Sie auf „Laufwerk erstellen“ und geben Sie die Attribute für das neue Laufwerk ein.
- Wählen Sie unter „Verschlüsselung“ die Option „Cloud KMS-Schlüssel“ aus.

- Wählen Sie als Schlüsseltyp „Cloud KMS mit Autokey“ aus und klicken Sie dann auf „Neuen Schlüssel anfordern“. Eine Meldung gibt an, wann Ihr Schlüssel erstellt wurde und einsatzbereit ist.

- Klicken Sie auf „Erstellen“, um die Erstellung des Laufwerks abzuschließen.
Sie können einen ähnlichen Prozess verwenden, um Ressourcen für geschützte VM-Instanzen, Images und Maschinen-Images zu erstellen.
Google Cloud Storage-Buckets
Autokey erstellt einen neuen Schlüssel am selben Speicherort wie den Bucket. Der von Autokey erstellte Schlüssel wird als Standardschlüssel für den Bucket zugewiesen.
Mit Autokey werden keine Schlüssel für Objekte erstellt. Standardmäßig verwenden Objekte, die in einem Bucket erstellt werden, den Standardschlüssel des Buckets. Wenn Sie ein Objekt mit einem anderen Schlüssel als dem Standardschlüssel des Buckets verschlüsseln möchten, können Sie manuell einen CMEK erstellen und diesen Schlüssel beim Erstellen des Objekts verwenden.
- Rufen Sie in der Google Cloud Console die Seite Bucket erstellen auf.
- Wählen Sie einen global eindeutigen, permanenten Namen aus.
- Wählen Sie einen Speicherort für Daten aus.
- Fahren Sie mit dem Abschnitt „Auswählen, wie Objektdaten geschützt werden“ fort.

- Klicken Sie auf „Legen Sie fest, wie Objektdaten geschützt werden sollen“, um den Bereich zu maximieren.

- Maximieren Sie den Bereich „Datenverschlüsselung“ und wählen Sie „Cloud KMS-Schlüssel“ aus.

- Wählen Sie als Schlüsseltyp „Cloud KMS mit Autokey“ aus und klicken Sie dann auf „Neuen Schlüssel anfordern“. Eine Meldung gibt an, wann Ihr Schlüssel erstellt wurde und einsatzbereit ist.

- Klicken Sie auf „Erstellen“, um die Erstellung des Buckets abzuschließen. Wenn Sie dazu aufgefordert werden, klicken Sie im Dialogfeld „Der öffentliche Zugriff wird verhindert“ auf „Bestätigen“.
BigQuery-Dataset
Für jedes neue Dataset erstellt Autokey einen neuen Schlüssel am selben Speicherort wie die Ressource selbst. Dieser wird zum Standardschlüssel des Datasets. Mit Autokey werden keine Schlüssel für Tabellen, Abfragen, temporäre Tabellen oder Modelle erstellt. Standardmäßig werden diese Ressourcen durch den Standardschlüssel des Datasets geschützt. Wenn Sie eine Ressource in einem Dataset mit einem anderen Schlüssel als dem Standardschlüssel des Datasets schützen möchten, können Sie manuell einen CMEK erstellen und diesen Schlüssel beim Erstellen der Ressource verwenden.
Um ein BigQuery-Dataset zu erstellen, benötigen Sie zuerst die Rolle „BigQuery-Nutzer“.
- Zurück zu Cloud Shell
- Cloud Shell so einrichten, dass Befehle aus dem Ressourcenprojekt ausgeführt werden
gcloud config set project $RESOURCE_PROJECT
- Führen Sie den folgenden Befehl aus, um Ihre Projektnummer als Variable mit dem Namen RESOURCE_PROJECT_NUMBER zu speichern.
export RESOURCE_PROJECT_NUMBER=$(gcloud projects list --filter="$(gcloud config get-value project)" --format="value(PROJECT_NUMBER)")
- Sich selbst die Rolle „BigQuery-Nutzer“ zuweisen
gcloud projects add-iam-policy-binding $RESOURCE_PROJECT_NUMBER \
--role=roles/bigquery.user \
--member=user:$KEY_ADMIN_EMAIL
Nachdem Sie die Rolle „BigQuery-Nutzer“ haben, können Sie ein Dataset erstellen und mit Autokey schützen.
- Rufen Sie in der Google Cloud Console die Seite „BigQuery“ auf.
- Folgen Sie der Anleitung zum Erstellen eines Datasets, bis Sie zu „Erweiterte Optionen“ > „Verschlüsselung“ gelangen.
- Wählen Sie unter „Verschlüsselung“ die Option „Cloud KMS-Schlüssel“ aus.
- Wählen Sie als Schlüsseltyp „Cloud KMS mit Autokey“ aus und klicken Sie dann auf „Neuen Schlüssel anfordern“. Eine Meldung gibt an, wann Ihr Schlüssel erstellt wurde und einsatzbereit ist.
- Klicken Sie auf „Dataset erstellen“, um das Erstellen des Datasets abzuschließen.
10. Schlüssel verwalten
In diesem Schritt sehen Sie sich die Schlüssel an, die Cloud KMS Autokey in Ihrem Namen erstellt hat. Rufen Sie dazu die Seite „Schlüsselinventar“ auf. Die Seite „Schlüsselinventar“ bietet umfassende Informationen zu den kryptografischen Schlüsseln in Ihrem Projekt. Beachten Sie, dass die Daten möglicherweise erst später verfügbar sind. Wenn Sie beispielsweise eine neue geschützte Ressource erstellen, werden die geschützte Ressource und die zugehörige Schlüsselversion nicht sofort auf dem Tab „Nutzungsanalyse“ hinzugefügt. Weitere Einschränkungen
- Rufen Sie in der Google Cloud Console die Seite Schlüsselinventar auf.
- Optional: Wenn Sie die Liste der Schlüssel filtern möchten, geben Sie Ihre Suchbegriffe in das Feld „Filter“ filter_list ein und drücken Sie die Eingabetaste. Sie können beispielsweise nach Standort, Schlüsselbund, Status oder anderen Eigenschaften der Schlüssel filtern.
- Klicken Sie auf den Namen des Schlüssels, für den Sie Nutzungsinformationen aufrufen möchten.
- Klicken Sie auf „Übersicht“. Beachten Sie, dass Sie für jede erstellte Ressource einen Schlüssel haben. Jeder Schlüsselname enthält den Namen der Ressource, die durch den Schlüssel geschützt wird, z.B. „compute-disk“ oder „storage-bucket“. Cloud KMS Autokey sorgt dafür, dass jeder Schlüssel 365 Tage nach seiner Erstellung für die Rotation geplant wird und jedem Schlüssel die Schutzstufe „HSM“ zugewiesen wird.

- Klicken Sie auf den Tab „Nutzungs-Tracking“. Beachten Sie die Menge der angezeigten Informationen: Hier wird jede Ressource, die mit dem Schlüssel verschlüsselt wird, zusammen mit dem Projekt, dem Standort und dem Erstellungsdatum angezeigt.
- Optional: Wenn Sie die Liste der geschützten Ressourcen filtern möchten, geben Sie Ihre Suchbegriffe in das Feld „Filter“ filter_list ein und drücken Sie die Eingabetaste.

11. Glückwunsch
Sie haben erfolgreich Google Cloud-Ressourcen erstellt und sie mit Cloud KMS Autokey automatisch verschlüsselt.
Sie kennen jetzt die wichtigsten Schritte, die erforderlich sind, um Autokey einzurichten und damit Ihre Ressourcen automatisch mit Cloud KMS-Schlüsseln zu verschlüsseln.
12. Nächste Schritte
Daten in Ihre mit Autokey verschlüsselten Ressourcen hochladen
- Google Compute Engine-Instanz erstellen
- Autokey-geschützten nichtflüchtigen Speicher an Ihre GCE-Instanz anhängen
- Daten in Ihr BigQuery-Dataset hochladen
- Objekte in einen Google Cloud Storage-Bucket hochladen
- Google Cloud Storage-Daten in BigQuery laden