Modify the constraint

Fortschritt prüfen

/ 100

Dieses Lab kann KI-Tools enthalten, die den Lernprozess unterstützen.

GSP1021

Google Cloud-Labs zum selbstbestimmten Lernen

Übersicht

In diesem Lab lernen Sie den Befehl gcloud beta terraform vet kennen, der im weiteren Verlauf als Validierung bezeichnet wird. Die Validierung ist ein Tool, mit dem sich die Einhaltung von Richtlinien im Rahmen einer CI/CD-Pipeline der Infrastruktur erzwingen lässt. Mit der Validierung können Sie Richtlinienverstöße feststellen und Warnungen auslösen oder Bereitstellungen anhalten, bevor sie in die Produktion übernommen werden.

In diesem Lab wird gezeigt, wie Sie eine Beschränkung anwenden, um eine Domaineinschränkung zu erzwingen. Sie testen diese Beschränkung und lassen dabei absichtlich einen Fehler ausgeben. Anschließend ändern Sie die Beschränkung, damit Ihre Domain die Validierung besteht.

Ziele

Aufgaben in diesem Lab:

  • Beschränkung anwenden, die eine Domaineinschränkung erzwingt
  • Beschränkung testen und absichtlich einen Validierungsfehler ausgeben lassen
  • Beschränkung so anpassen, dass die Validierung bestanden wird

Vorbereitung

Für dieses Lab sollten Sie Erfahrung mit Terraform haben. Im Kurs Infrastruktur mit Terraform in Google Cloud erstellen können Sie Ihr praktisches Wissen zu Terraform weiter vertiefen.

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 Google Cloud-Ressourcen für das Lab verfügbar sind.

In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung 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 (empfohlen), 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: Verwenden Sie für dieses Lab nur das Teilnehmerkonto. Wenn Sie ein anderes Google Cloud-Konto verwenden, fallen dafür möglicherweise Kosten an.

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 Dialogfeld geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der rechten Seite befindet sich der Bereich Lab-Einrichtung und ‑Zugriff:

    • Button Google Cloud Console öffnen
    • Die temporären Anmeldedaten (Nutzername und Passwort), die Sie für dieses Lab verwenden müssen
    • Gegebenenfalls weitere Informationen für dieses Lab

    Der Lab-Timer befindet sich oben auf der Seite und zeigt die verbleibende Zeit an.

  2. Klicken Sie auf Google Cloud Console öffnen. Wenn Sie Chrome verwenden, können Sie auch rechtsklicken und Link in Inkognitofenster öffnen auswählen.

    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 Lab-Einrichtung und ‑Zugriff.

  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 Lab-Einrichtung und ‑Zugriff.

  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 2-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 auf Google Cloud-Produkte und ‑Dienste zugreifen möchten, klicken Sie auf das Navigationsmenü oder geben Sie den Namen des Produkts oder Dienstes in das Feld Suchen ein. Symbol für das Navigationsmenü und Suchfeld

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.

  2. Klicken Sie sich durch die folgenden Fenster:

    • Fahren Sie mit dem Informationsfenster zu Cloud Shell fort.
    • Autorisieren Sie Cloud Shell, Ihre Anmeldedaten für Google Cloud API-Aufrufe zu verwenden.

Wenn eine Verbindung besteht, sind Sie bereits authentifiziert und das Projekt ist auf 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: Beschränkung validieren

Zuerst erfahren Sie, wie eine Beschränkung implementiert wird. Dazu kopieren Sie eine vorhandene Beschränkung, geben einen Testlauf an, der die Validierung nicht besteht, und ändern dann die Beschränkung so, dass sie die Validierung besteht.

Beschränkung kopieren

  1. Öffnen Sie ein neues Cloud Shell-Fenster und führen Sie den folgenden Befehl aus, um das Repository der Richtlinienbibliothek zu klonen.
git clone https://github.com/GoogleCloudPlatform/policy-library.git
  1. Geben Sie bei der Eingabeaufforderung Folgendes ein, um das Beispiel der IAM-Domaineinschränkung zu kopieren:
cd policy-library/ cp samples/iam_service_accounts_only.yaml policies/constraints
  1. Prüfen Sie die kopierte Beschränkung und geben Sie sie dazu im Terminal aus:
cat policies/constraints/iam_service_accounts_only.yaml

Sie erhalten folgende Ausgabe:

# This constraint checks that all IAM policy members are in the # "gserviceaccount.com" domain. apiVersion: constraints.gatekeeper.sh/v1alpha1 kind: GCPIAMAllowedPolicyMemberDomainsConstraintV2 metadata: name: service_accounts_only annotations: description: Checks that members that have been granted IAM roles belong to allowlisted domains. spec: severity: high match: target: # {"$ref":"#/definitions/io.k8s.cli.setters.target"} - "organizations/**" parameters: domains: - gserviceaccount.com

Beachten Sie den hervorgehobenen Abschnitt unten. Damit wird angegeben, dass nur Mitglieder der Domain gserviceaccount.com in einer IAM-Richtlinie vorhanden sein dürfen.

Beschränkung testen

  1. Sie erstellen eine Terraform-Datei im aktuellen Verzeichnis, um zu prüfen, ob die Richtlinie wie erwartet funktioniert.
touch main.tf
  1. Klicken Sie in der Cloud Shell-Symbolleiste auf Editor öffnen. Wenn Sie zwischen der Cloud Shell und dem Code-Editor wechseln möchten, klicken Sie entsprechend auf Editor öffnen oder Terminal öffnen. Sie können auch auf In neuem Fenster öffnen klicken, damit der Editor in einem eigenen Tab geöffnet bleibt.

  2. Öffnen Sie die Datei policy-library/main.tf und kopieren Sie den folgenden Code hinein:

terraform { required_providers { google = { source = "hashicorp/google" version = "~> 3.84" } } } resource "google_project_iam_binding" "sample_iam_binding" { project = "<YOUR PROJECT ID>" role = "roles/viewer" members = [ "user:<USER>" ] }
  1. Ersetzen Sie <YOUR PROJECT ID> durch .

  2. Ersetzen Sie <USER> durch .

  3. Kehren Sie als Nächstes zum Terminal zurück und führen Sie den folgenden Befehl aus, um Terraform zu initialisieren:

terraform init
  1. Führen Sie den folgenden Befehl aus, um den Terraform-Plan zu exportieren. Wenn Sie dazu aufgefordert werden, klicken Sie auf Autorisieren.
terraform plan -out=test.tfplan
  1. Konvertieren Sie den Terraform-Plan in das JSON-Format.
terraform show -json ./test.tfplan > ./tfplan.json
  1. Installieren Sie die Komponente terraform-tools.
sudo apt-get install google-cloud-sdk-terraform-tools
  1. Führen Sie den folgenden Befehl aus, um zu prüfen, ob Ihr Terraform-Plan den Richtlinien entspricht.
gcloud beta terraform vet tfplan.json --policy-library=. Hinweis: Sie können Warnungen zum Abrufen Ihrer Projekt-ID ignorieren.

Da die in der IAM-Richtlinienbindung angegebene E-Mail-Adresse zu keinem Dienstkonto gehört, verstößt der Plan gegen die von Ihnen eingerichtete Beschränkung. Ihre Ausgabe sollte in etwa so aussehen:

constraint: GCPIAMAllowedPolicyMemberDomainsConstraintV2.service_accounts_only constraint_config: api_version: constraints.gatekeeper.sh/v1alpha1 kind: GCPIAMAllowedPolicyMemberDomainsConstraintV2 metadata: annotations: description: Checks that members that have been granted IAM roles belong to allowlisted domains. validation.gcp.forsetisecurity.org/originalName: service_accounts_only validation.gcp.forsetisecurity.org/yamlpath: policies/constraints/iam_service_accounts_only.yaml name: service-accounts-only spec: match: target: - organizations/** parameters: domains: - gserviceaccount.com severity: high message: 'IAM policy for //cloudresourcemanager.googleapis.com/projects/qwiklabs-gcp-02-ec89de7c9f9d contains member from unexpected domain: user:student-02-0edcb8aed69f@qwiklabs.net' metadata: ancestry_path: organizations/616463121992/folders/365352270458/folders/474147567761/folders/125430737939/projects/qwiklabs-gcp-02-ec89de7c9f9d constraint: annotations: description: Checks that members that have been granted IAM roles belong to allowlisted domains. validation.gcp.forsetisecurity.org/originalName: service_accounts_only validation.gcp.forsetisecurity.org/yamlpath: policies/constraints/iam_service_accounts_only.yaml labels: {} parameters: domains: - gserviceaccount.com details: member: user:student-02-0edcb8aed69f@qwiklabs.net resource: //cloudresourcemanager.googleapis.com/projects/qwiklabs-gcp-02-ec89de7c9f9d resource: //cloudresourcemanager.googleapis.com/projects/qwiklabs-gcp-02-ec89de7c9f9d severity: high Fehlerbehebung: Wenn Sie die Fehlermeldung „Fehler 403: Der Aufrufer hat keine Berechtigung, unzulässig“ erhalten, haben Sie entweder das Argument project_id in policy-library/main.tf nicht ersetzt oder Sie haben nicht die erforderlichen Berechtigungen für das angegebene Projekt.

Aufgabe 2: Beschränkung ändern

Die Beschränkung funktioniert wie gewünscht. Nehmen wir aber an, Sie möchten sie so ändern, dass Sie andere E-Mail-Adressen in Ihrer Domain zulassen können.

  1. Rufen Sie im Editor die Datei policy-library/policies/constraints/iam_service_accounts_only.yaml auf.

  2. Hängen Sie im Abschnitt domains die E-Mail-Domain qwiklabs.net an die Liste der zugelassenen Domains an:

apiVersion: constraints.gatekeeper.sh/v1alpha1 kind: GCPIAMAllowedPolicyMemberDomainsConstraintV1 metadata: name: service_accounts_only spec: severity: high match: target: ["organizations/**"] parameters: domains: - gserviceaccount.com - qwiklabs.net
  1. Kehren Sie zum Cloud Shell-Fenster zurück und exportieren Sie einen neuen JSON-Terraform-Plan.
terraform plan -out=test.tfplan
  1. Prüfen Sie Ihren Terraform-Plan jetzt noch einmal. Er sollte zu keinem Verstoß führen.
gcloud beta terraform vet tfplan.json --policy-library=.

Ausgabe:

Validating resources...done.
  1. Wenden Sie schließlich den Terraform-Plan für die IAM-Richtlinie an, um dem Mitglied eine Rolle zuzuweisen.
terraform apply test.tfplan

Klicken Sie auf Fortschritt prüfen. Beschränkung ändern

Das wars! Sie haben das Lab erfolgreich abgeschlossen.

Im Rahmen dieses Labs haben Sie eine Beschränkung angewendet, die eine Domaineinschränkung erzwingt. Sie haben diese Beschränkung getestet, was einen Fehler ausgelöst hat. Anschließend haben Sie die Beschränkung so geändert, dass von Ihnen definierte Domains die Validierung bestehen können.

Weitere Informationen

In den folgenden Ressourcen finden Sie weitere praktische Übungen für Validator und Terraform:

Google Cloud-Schulungen und -Zertifizierungen

In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.

Anleitung zuletzt am 29. November 2024 aktualisiert

Lab zuletzt am 29. November 2024 getestet

© 2026 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.

Vorbereitung

  1. Labs erstellen ein Google Cloud-Projekt und Ressourcen für einen bestimmten Zeitraum
  2. Labs haben ein Zeitlimit und keine Pausenfunktion. Wenn Sie das Lab beenden, müssen Sie von vorne beginnen.
  3. Klicken Sie links oben auf dem Bildschirm auf Lab starten, um zu beginnen

Privates Surfen verwenden

  1. Kopieren Sie den bereitgestellten Nutzernamen und das Passwort für das Lab
  2. Klicken Sie im privaten Modus auf Konsole öffnen

In der Konsole anmelden

  1. Melden Sie sich mit Ihren Lab-Anmeldedaten an. Wenn Sie andere Anmeldedaten verwenden, kann dies zu Fehlern führen oder es fallen Kosten an.
  2. Akzeptieren Sie die Nutzungsbedingungen und überspringen Sie die Seite zur Wiederherstellung der Ressourcen
  3. Klicken Sie erst auf Lab beenden, wenn Sie das Lab abgeschlossen haben oder es neu starten möchten. Andernfalls werden Ihre bisherige Arbeit und das Projekt gelöscht.

Diese Inhalte sind derzeit nicht verfügbar

Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail

Sehr gut!

Bei Verfügbarkeit kontaktieren wir Sie per E-Mail

Es ist immer nur ein Lab möglich

Bestätigen Sie, dass Sie alle vorhandenen Labs beenden und dieses Lab starten möchten

Privates Surfen für das Lab verwenden

Am besten führen Sie dieses Lab in einem Inkognito- oder privaten Browserfenster aus. So vermeiden Sie Konflikte zwischen Ihrem privaten Konto und dem Teilnehmerkonto, die zusätzliche Kosten für Ihr privates Konto verursachen könnten.