arrow_back

IAM-Berechtigungen mit gcloud konfigurieren

Anmelden Teilnehmen
Testen und teilen Sie Ihr Wissen mit unserer Community.
done
Sie erhalten Zugriff auf über 700 praxisorientierte Labs, Skill-Logos und Kurse

IAM-Berechtigungen mit gcloud konfigurieren

Lab 1 Stunde 30 Minuten universal_currency_alt 1 Guthabenpunkt show_chart Einsteiger
info Dieses Lab kann KI-Tools enthalten, die den Lernprozess unterstützen.
Testen und teilen Sie Ihr Wissen mit unserer Community.
done
Sie erhalten Zugriff auf über 700 praxisorientierte Labs, Skill-Logos und Kurse

GSP647

Logo: Google Cloud-Labs zum selbstbestimmten Lernen

Übersicht

In diesem Lab geht es um drei allgemeine Bereiche, die im Hinblick auf IAM und gcloud wichtig sind:

  • Konfiguration der gcloud-Umgebung
  • Einsatz mehrerer gcloud-Konfigurationen
  • Verwendung von Dienstkonten

In diesem Lab verwenden Sie das gcloud-Befehlszeilentool, um Befehlsfunktionen von Cloud Identity and Access Management (IAM) einzurichten und zu konfigurieren.

Lerninhalte

Aufgaben in diesem Lab:

  • IAM und den gcloud-Client kennenlernen
  • Mehrere IAM-Konfigurationen erstellen und zwischen diesen wechseln
  • Geeignete IAM-Berechtigungen identifizieren und zuweisen
  • Dienstkonto erstellen und nutzen

Startumgebung

Sie beginnen mit zwei Nutzerkonten und zwei Projekten:

  • user1 ist der „Owner“ (Inhaber) der beiden Projekte.
  • user2 ist der „Viewer“ (Betrachter) des ersten Projekts.

Im ersten Projekt wird eine virtuelle Linux-Maschine (VM) ausgeführt.

Grafik: Startumgebung

Was ist IAM?

Mit Cloud Identity and Access Management (IAM) von Google Cloud können Sie festlegen, wer (Identität) welchen Zugriff (Rolle) auf welche Ressource hat.

In IAM wird dem Endnutzer die Berechtigung für den Zugriff auf eine Ressource nicht direkt gewährt. Stattdessen werden Berechtigungen in Rollen gruppiert, die dann authentifizierten Hauptkonten zugewiesen werden. (In der Vergangenheit wurden Hauptkonten im Rahmen von IAM häufig als „Mitglieder“ bezeichnet. In einigen APIs wird dieser Begriff weiterhin verwendet.)

Identitäten

In Cloud IAM gewähren Sie Hauptkonten Zugriff. Folgende Typen von Hauptkonten gibt es:

  • Google-Konto
  • Dienstkonto
  • Google-Gruppe
  • Google Workspace-Konto
  • Cloud Identity-Domain
  • Alle authentifizierten Nutzer
  • Alle Nutzer

Unter Identitätskonzepte erfahren Sie mehr über diese Identitätstypen.

In diesem Lab verwenden Sie Google-Konten, Dienstkonten und Cloud Identity-Domaingruppen.

Rollen

Eine Rolle ist eine Sammlung von Berechtigungen. Es ist nicht möglich, einem Nutzer eine Berechtigung direkt zu gewähren; stattdessen wird ihm eine Rolle zugewiesen. Wenn Sie einem Nutzer eine Rolle zuweisen, erhält er alle mit ihr verknüpften Berechtigungen.

Unter Rollen erfahren Sie mehr darüber.

Was ist gcloud?

Die gcloud CLI ist Teil des Google Cloud SDK. Sie müssen das SDK herunterladen, auf Ihrem System installieren und initialisieren, bevor Sie das gcloud-Befehlszeilentool verwenden können. Mit diesem Tool lassen sich viele gängige Plattformaufgaben entweder über die Befehlszeile oder in Scripts und anderen Automatisierungen ausführen.

Unter gcloud CLI – Übersicht erfahren Sie mehr über gcloud.

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. Hinweis: Für dieses Lab melden Sie sich mit Username 1 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 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ü

Aufgabe 1: gcloud-Umgebung konfigurieren

Dieses Lab beinhaltet eine Compute Engine-Instanz namens centos-clean, die eine Umgebung simuliert, in der gcloud nicht installiert ist. Sie stellen über die Google Cloud Console eine Verbindung zu dieser Instanz her.

  1. Rufen Sie die Liste der Compute-Instanzen auf, indem Sie auf Navigationsmenü > Compute Engine > VM-Instanzen klicken.

  2. Klicken Sie in der Zeile mit der Compute-Instanz centos-clean auf SSH.

Hinweis zu Compute Engine-Instanzen: Es gibt Windows‑ und Linux-Instanzen. In diesem Lab kommt der Linux-Instanztyp zum Einsatz. Eine Verbindung zu Linux-Instanzen können Sie ganz einfach mit dem Secure Shell-Client (SSH) über den Browser herstellen.

Sie werden automatisch mit der Instanz verbunden. Google Cloud verwaltet die Authentifizierungsschlüssel für Sie und stellt diese nur Personen zur Verfügung, denen Sie Zugriff darauf gewähren.
  1. Vergewissern Sie sich als Erstes, dass gcloud installiert ist, indem Sie die Version prüfen. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud --version

Neue Instanz erstellen und Standardzone ändern

Nachdem Sie geprüft haben, ob das gcloud-Befehlszeilentool installiert ist, nehmen Sie einige Änderungen vor, indem Sie eine Compute-Instanz erstellen.

  1. Authentifizieren Sie sich zuerst in gcloud. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud auth login

Drücken Sie die Eingabetaste, wenn Möchten Sie fortfahren (J/N)? angezeigt wird.

  1. Klicken Sie auf den in einem neuen Tab angezeigten Link.

  2. Klicken Sie auf Ihren aktiven Nutzernamen und dann auf Zulassen.

  3. Klicken Sie auf „Kopieren“, wenn Geben Sie in der gcloud CLI auf der Maschine, auf der Sie sich anmelden möchten, den folgenden Bestätigungscode ein angezeigt wird. Wechseln Sie dann wieder zur SSH-Sitzung und fügen Sie den Code in den Prompt Autorisierungscode eingeben ein.

  4. Legen Sie in der SSH-Sitzung die Region und Zone fest:

gcloud config set compute/region {{{project_0.default_region_1 | "Region1"}}} gcloud config set compute/zone {{{project_0.default_zone_1 | "Zone1"}}}
  1. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud compute instances create lab-1 --zone {{{project_0.default_zone_1 | "Zone1"}}} --machine-type=e2-standard-2

Wenn alles korrekt eingerichtet wurde, wird durch den Befehl eine Instanz erstellt.

Aber welche Größe hat sie? Und wo befindet sie sich? Welches Image wird verwendet?

Der Dienst verwendet eine Reihe von Standardeinstellungen. Einige können über die gcloud-Konfiguration gesteuert werden. Der Standort der Instanz hängt beispielsweise von der Zoneneinstellung ab.

Instanz namens „lab-1“ in Projekt 1 erstellen
  1. Prüfen Sie die aktuelle gcloud-Konfiguration. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config list

Sie sehen die Abschnitte compute, core und active configuration. Diese können Sie alle bearbeiten, aber in diesem Lab ändern Sie nur die Zone. Sehen Sie sich die Zone an, in der Ihre VM erstellt wurde.

  1. Führen Sie den folgenden Befehl in der SSH-Sitzung aus, um alle verfügbaren Zonen aufzulisten:
gcloud compute zones list
  1. Finden Sie eine andere Zone in derselben Region. Wenn die aktuelle Zone us-west2-a ist, könnten Sie zum Beispiel us-west2-b auswählen.

  2. Wählen Sie anstatt der aktuellen Zone eine andere in derselben Region aus. Führen Sie in der SSH-Sitzung den folgenden Befehl aus und ersetzen Sie ZONE durch die ausgewählte Zone:

gcloud config set compute/zone ZONE
  1. Prüfen Sie, ob die Zone geändert wurde. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config list

Sie sehen, dass die geänderte Zone angegeben ist.

Mit dem Befehl gcloud config set können Sie weitere Einstellungen ändern. Diese Änderungen sind dauerhaft und werden in das Basisverzeichnis geschrieben.

Die Standardkonfiguration ist unter ~/.config/gcloud/configurations/config_default gespeichert.

Wenn Sie beim Erstellen einer Instanz eine andere Zone als die Standardzone verwenden möchten, geben Sie dies mit „--zone“ an, zum Beispiel: gcloud compute instances create lab-1 --zone us-central1-f.

Standardzone ändern
  1. Prüfen Sie, ob die Zone in die Konfigurationsdatei geschrieben wurde. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
cat ~/.config/gcloud/configurations/config_default

Sie sehen, dass die Konfiguration als Text gespeichert wurde und gesichert oder kopiert werden kann.

Aufgabe 2: Mehrere IAM-Konfigurationen erstellen und zwischen diesen wechseln

Sie haben nun ein Konto eingerichtet. Wenn Sie in verschiedenen Teams arbeiten oder auf unterschiedliche Konten zugreifen müssen, können Sie dies auch mit gcloud config verwalten.

In der nächsten Aufgabe lernen Sie, wie Sie eine zweite Konfiguration erstellen und zwischen den beiden wechseln.

Neue IAM-Konfiguration erstellen

In diesem Lab haben Sie ein zweites Google-Konto, mit dem Sie sich anmelden können. Es hat Lesezugriff (Viewer) auf das erste Projekt. Sie erstellen eine neue Konfiguration für diesen Nutzer.

  1. Starten Sie eine neue gcloud-Konfiguration für das zweite Nutzerkonto. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud init --no-launch-browser
  1. Wählen Sie die 2. Option, Neue Konfiguration erstellen, aus.

  2. Konfigurationsname: Geben Sie user2 ein.

  3. Mit neuem Konto anmelden: Wählen Sie die 3. Option aus. Sie melden sich mit dem anderen angegebenen Nutzernamen an.

  4. Drücken Sie die Eingabetaste, wenn Möchten Sie fortfahren (J/N)? angezeigt wird.

  5. Klicken Sie auf den in einem neuen Tab angezeigten Link.

  6. Klicken Sie auf Anderes Konto verwenden.

  7. Kopieren Sie das zweite Nutzerkonto () und fügen Sie es in den Prompt E-Mail oder Telefon ein.

  8. Kopieren Sie das Passwort, mit dem Sie das Lab begonnen haben, und fügen Sie es in den Prompt Passwort eingeben ein.

  9. Klicken Sie auf Verstanden.

  10. Klicken Sie auf Zulassen.

Sie akzeptieren, dass das Cloud SDK denselben Zugriff wie Ihr Google-Konto hat.

  1. Klicken Sie auf „Kopieren“, wenn Geben Sie in der gcloud CLI auf der Maschine, auf der Sie sich anmelden möchten, den folgenden Bestätigungscode ein angezeigt wird. Wechseln Sie dann wieder zur SSH-Sitzung und fügen Sie den Code in den Prompt Autorisierungscode eingeben ein.

  2. Suchen Sie unter Zu verwendendes Cloud-Projekt auswählen das aktuelle Projekt () und geben Sie dessen Nummer ein.

Die Initialisierung wird durchgeführt und Sie sehen, dass die Zone und Region für Sie festgelegt werden.

Prüfen, ob die gcloud-Konfiguration für „user2“ erstellt wurde

Neues Konto testen

Dieses neue Konto hat Lesezugriff auf das Projekt. Sie können testen, ob Sie wirklich dieses Konto verwenden, indem Sie versuchen, Ressourcen aufzurufen und zu erstellen.

  1. Prüfen Sie, ob Sie Details im ersten Projekt ansehen können. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud compute instances list

Das zweite Nutzerkonto hat Lesezugriff, daher sollten Ihnen die Instanzen centos-clean und lab-1 angezeigt werden.

  1. Vergewissern Sie sich, dass Sie im ersten Projekt keine Instanz erstellen können, da Ihnen die einfache Rolle „Viewer“ zugewiesen ist. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud compute instances create lab-2 --zone {{{project_1.default_zone_1 | "Zone2"}}} --machine-type=e2-standard-2

Da das zweite Nutzerkonto nur Lesezugriff hat, kann es keine Instanz erstellen, und dieser Befehl schlägt fehl. Das dauert etwas.

  1. Wechseln Sie wieder zur Konfiguration des ersten Nutzers (default). Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config configurations activate default

Jetzt verwenden Sie wieder die Anmeldedaten des ursprünglichen Nutzerkontos. Wenn Sie später etwas über Rollen und Berechtigungen lernen, wechseln Sie zwischen diesen beiden Konten.

Aufgabe 3: Geeignete IAM-Berechtigungen identifizieren und zuweisen

Ihnen wurden für dieses Projekt zwei Nutzerkonten zur Verfügung gestellt. Der erste Nutzer hat die volle Kontrolle über beide Projekte. Dies ist quasi das Administratorkonto. Der zweite Nutzer hat Lesezugriff auf die beiden Projekte. Er ist ein typischer DevOps-Nutzer.

Als Nächstes konfigurieren Sie mit gcloud für den DevOps-Nutzer den Zugriff auf ein Projekt, indem Sie eine benutzerdefinierte Rolle dafür erstellen, die das Erstellen von Buckets und Instanzen zulässt.

Rollen und Berechtigungen prüfen

  1. Führen Sie den folgenden Befehl in der SSH-Sitzung aus, um alle Rollen anzusehen:
gcloud iam roles list | grep "name:"

Die Liste der Rollen wird zurückgegeben. Durch grep "name:" wird die Datenmenge reduziert, denn es werden nur die Namen der Rollen angezeigt.

Prüfen Sie eine der Rollen, um sich die ihr zugewiesenen Berechtigungen genauer anzusehen. Verwenden Sie gcloud iam roles describe, um sich die Berechtigungen anzeigen zu lassen. Versuchen Sie es mit der einfachen Rolle roles/compute.instanceAdmin.

  1. Untersuchen Sie die vordefinierte Rolle compute.instanceAdmin. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud iam roles describe roles/compute.instanceAdmin

Wie Sie sehen, hat roles/compute.instanceAdmin viele Berechtigungen. Diese brauchen Sie später mindestens:

  • compute.instances.create
  • compute.instances.delete
  • compute.instances.start
  • compute.instances.stop
  • compute.instances.update
  • compute.disks.create
  • compute.subnetworks.use
  • compute.subnetworks.useExternalIp
  • compute.instances.setMetadata
  • compute.instances.setServiceAccount

Die vollständige Liste der Rollen sowie der ihnen zugewiesenen Berechtigungen finden Sie in der Berechtigungsreferenz.

Dem zweiten Nutzer Zugriff auf das zweite Projekt gewähren

Sie wissen nun, dass Rollen Berechtigungen beinhalten, aber wie weisen Sie eine Rolle (und die damit verknüpften Berechtigungen) einem Nutzerkonto zu?

Für das Zuweisen einer Rolle gibt es zwei Möglichkeiten:

  • Sie können Sie dem Nutzer und einer Organisation zuweisen.
  • Sie können Sie einem Nutzer und einem Projekt zuweisen.

Als Nächstes weisen Sie dem zweiten Nutzer für das zweite Projekt die einfache Rolle „Viewer“ zu.

Testen, ob der zweite Nutzer Zugriff auf das zweite Projekt hat

  1. Wechseln Sie bei der gcloud-Konfiguration wieder zum zweiten Nutzer (user2). Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config configurations activate user2

Jetzt sind Sie wieder user2.

  1. Wählen Sie für PROJECTID2 das zweite Projekt aus. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
echo "export PROJECTID2={{{project_1.project_id | "PROJECT_ID"}}}" >> ~/.bashrc . ~/.bashrc gcloud config set project $PROJECTID2 Hinweis: Durch diesen Befehl wird die bashrc-Datei angehängt. Gehen Sie vorsichtig vor.

Ihnen wird die folgende Warnung angezeigt: WARNING: You do not appear to have access to project [Ihre 2. Projekt-ID] or it does not exist.

  1. Geben Sie N ein und drücken Sie die Eingabetaste, wenn Möchten Sie fortfahren (J/N)? angezeigt wird.

Die Warnung bedeutet, dass „user2“ keinen Zugriff auf das Projekt „PROJECTID2“ hat. Dieses Problem beheben Sie im nächsten Abschnitt.

Dem zweiten Nutzer im zweiten Projekt die Rolle „Viewer“ zuweisen

  1. Wechseln Sie zurück zur gcloud-Konfiguration default, die berechtigt ist, dem zweiten Nutzer Zugriff zu gewähren. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config configurations activate default
  1. Installieren Sie jq:
sudo yum -y install epel-release sudo yum -y install jq

Legen Sie als Nächstes den zweiten Nutzernamen als Wert für USERID2 fest und binden Sie die Rolle „Viewer“ für das zweite Projekt an den zweiten Nutzer.

  1. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
echo "export USERID2={{{user_1.username | "Username2"}}}" >> ~/.bashrc . ~/.bashrc gcloud projects add-iam-policy-binding $PROJECTID2 --member user:$USERID2 --role=roles/viewer

Nachdem Sie den Befehl ausgeführt haben, wird Ihnen in etwa der folgende Text angezeigt (möglicherweise müssen Sie nach oben scrollen):

Updated IAM policy for project [{{{project_1.project_id | "PROJECT_ID"}}}]. bindings: ... - members: - serviceAccount:{{{project_1.project_id | "PROJECT_ID"}}}@{{{project_1.project_id | "PROJECT_ID"}}}.iam.gserviceaccount.com role: roles/storage.admin - members: - user:{{{user_0.username | "Username1"}}} - user:{{{user_1.username | "Username2"}}} role: roles/viewer „Username2“ in Projekt 2 auf „roles/viewer“ beschränken

Aufgabe 4: Testen, ob „user2“ Zugriff hat

  1. Wechseln Sie zur gcloud-Konfiguration user2. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config configurations activate user2
  1. Ändern Sie die Konfiguration für „user2“ in das zweite Projekt. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config set project $PROJECTID2

Dieses Mal sollte Ihnen keine Fehlermeldung angezeigt werden.

  1. Prüfen Sie, ob Sie Lesezugriff haben. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud compute instances list

Ihnen werden in diesem Projekt 0 Instanzen angezeigt.

  1. Versuchen Sie, im zweiten Projekt als zweiter Nutzer eine Instanz zu erstellen. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud compute instances create lab-2 --zone {{{project_1.default_zone_1 | "Zone2"}}} --machine-type=e2-standard-2

Dieser Befehl schlägt fehl, weil user2 nur Lesezugriff auf das Projekt hat.

  1. Wechseln Sie zur gcloud-Konfiguration default. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config configurations activate default

Jetzt verwenden Sie wieder die Anmeldedaten des ursprünglichen Nutzerkontos.

Neue Rolle mit Berechtigungen erstellen

Als Nächstes erstellen Sie eine neue Rolle mit den nötigen Berechtigungen für das DevOps-Team.

  • Erstellen Sie eine benutzerdefinierte Rolle namens devops, die berechtigt ist, eine Instanz zu erstellen. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud iam roles create devops --project $PROJECTID2 --permissions "compute.instances.create,compute.instances.delete,compute.instances.start,compute.instances.stop,compute.instances.update,compute.disks.create,compute.subnetworks.use,compute.subnetworks.useExternalIp,compute.instances.setMetadata,compute.instances.setServiceAccount"

Durch diesen Befehl wird eine benutzerdefinierte Rolle im Projekt devops mit den Berechtigungen zum Erstellen und Verwalten von Instanzen erstellt.

Der vollständige Name der Rolle ist aufgeführt. Wie Sie sehen, befindet sich die Rolle im Projekt, daher folgt der Pfad dem Muster projects/PROJECT/roles/ROLENAME.

Neue Rolle mit Berechtigungen für das DevOps-Team erstellen

Rolle des zweiten Kontos an beide Projekte binden

Nachdem Sie die Rolle erstellt haben, müssen Sie den Nutzer und die Rolle an das Projekt binden. Verwenden Sie dafür den Befehl gcloud projects add-iam-policy-binding. Legen Sie zuerst die Projekt-ID und das Nutzerkonto als Umgebungsvariablen fest, um den Befehl leichter ausführen zu können.

  1. Binden Sie die Rolle iam.serviceAccountUser an den zweiten Nutzer für das zweite Projekt. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud projects add-iam-policy-binding $PROJECTID2 --member user:$USERID2 --role=roles/iam.serviceAccountUser

Zum Erstellen einer Instanz mit einem angehängten Dienstkonto sind bestimmte Berechtigungen erforderlich. Die vordefinierte Rolle iam.serviceAccountUser hat diese Berechtigungen. Daher sollten Sie diese verwenden.

Prüfen, ob „user2“ an Projekt 2 und die Rolle „roles/iam.serviceAccountUser“ gebunden ist
  1. Binden Sie die benutzerdefinierte Rolle devops an den zweiten Nutzer für das zweite Projekt. Das zweite Nutzerkonto finden Sie links auf dieser Seite. Legen Sie als Nutzer-ID das zweite Nutzerkonto fest.

Führen Sie in der SSH-Sitzung den folgenden Befehl aus:

gcloud projects add-iam-policy-binding $PROJECTID2 --member user:$USERID2 --role=projects/$PROJECTID2/roles/devops

Nachdem Sie den Befehl ausgeführt haben, wird Ihnen in etwa der folgende Text angezeigt (möglicherweise müssen Sie nach oben scrollen):

Updated IAM policy for project [{{{project_1.project_id | "PROJECT_ID"}}}]. bindings: - members: - user:{{{user_1.username | "Username2"}}}@qwiklabs.net role: projects/{{{project_1.project_id | "PROJECT_ID"}}}/roles/devops „Username2“ an „devops“-Rolle gebunden

Neu zugewiesene Berechtigungen testen

  1. Wechseln Sie zur gcloud-Konfiguration user2. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config configurations activate user2

Jetzt sind Sie wieder „user2“.

  1. Versuchen Sie, eine Instanz namens „lab-2“ zu erstellen. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud compute instances create lab-2 --zone {{{project_1.default_zone_1 | "Zone2"}}} --machine-type=e2-standard-2

Jetzt kann „user2“ Instanzen erstellen.

Instanz namens „lab-2“ in Projekt 2 erstellen
  1. Prüfen Sie, ob die Instanz existiert. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud compute instances list

Ihre Umgebung

Nach den letzten Änderungen sieht Ihre Umgebung so aus:

Grafik: Labfortschritt

Aufgabe 5: Dienstkonto verwenden

Sie haben gelernt, wie Sie sich authentifizieren und mit gcloud auf Google Cloud-Dienste mit Rollen zugreifen können. Jetzt sehen wir uns eine typische Vorgehensweise an.

Sie haben eine Anwendung, die mithilfe von APIs (Application Programming Interfaces) in Cloud Storage-Buckets liest und schreibt. Sie möchten sich nicht jedes Mal authentifizieren müssen, wenn Sie einen neuen Server starten, denn dies wäre äußerst umständlich. Daher verwenden Sie Dienstkonten.

Ein Dienstkonto ist ein spezielles Google-Konto, das zu Ihrer Anwendung oder einer virtuellen Maschine (VM) und nicht zu einem bestimmten Endnutzer gehört. Mithilfe des Dienstkontos kann Ihre Anwendung die Google API eines Dienstes aufrufen, sodass die Nutzer nicht direkt beteiligt sind.

Weitere Informationen zu Dienstkonten finden Sie unter Dienstkonten – Übersicht.

Sie erstellen jetzt ein Dienstkonto, verwenden es mit einer Compute-Instanz und prüfen, ob es Ihnen den nötigen Zugriff gewährt.

Dienstkonto erstellen

  1. Wechseln Sie zur gcloud-Konfiguration default. user2 ist nicht berechtigt, Dienstkonten einzurichten und zu konfigurieren. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config configurations activate default
  1. Wählen Sie in der Konfiguration PROJECTID2 als Projekt aus. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config set project $PROJECTID2

Achten Sie darauf, das richtige Zielprojekt anzugeben.

  1. Erstellen Sie das Dienstkonto. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud iam service-accounts create devops --display-name devops Erstelltes DevOps-Dienstkonto prüfen
  1. Rufen Sie die E‑Mail-Adresse des Dienstkontos ab. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud iam service-accounts list --filter "displayName=devops" Hinweis: Durch diesen Filter wird Ihnen nur die Zeile angezeigt, die Sie interessiert. Die E‑Mail-Adresse enthält den Rollennamen und die Projekt-ID.
  1. Fügen Sie die E‑Mail-Adresse in eine lokale Variable namens SA ein. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
SA=$(gcloud iam service-accounts list --format="value(email)" --filter "displayName=devops")

Durch diesen Befehl wird die E‑Mail-Adresse des Dienstkontos als lokale Variable „SA“ festgelegt. Praktisch, oder?

  1. Weisen Sie dem Dienstkonto die Rolle iam.serviceAccountUser zu. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud projects add-iam-policy-binding $PROJECTID2 --member serviceAccount:$SA --role=roles/iam.serviceAccountUser

Mit dieser Rolle kann das Dienstkonto ein Dienstkonto einer Compute-Instanz zuweisen.

Prüfen, ob das DevOps-Dienstkonto an Projekt 2 und die Rolle „roles/iam.serviceAccountUser“ gebunden ist

Aufgabe 6: Dienstkonto mit einer Compute-Instanz verwenden

  1. Weisen Sie dem Dienstkonto die Rolle compute.instanceAdmin zu. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud projects add-iam-policy-binding $PROJECTID2 --member serviceAccount:$SA --role=roles/compute.instanceAdmin

Diese Rolle ermöglicht dem Dienstkonto das Verwalten von Compute-Instanzen.

Prüfen, ob das DevOps-Dienstkonto an Projekt 2 und die Rolle „roles/compute.instanceAdmin“ gebunden ist
  1. Erstellen Sie eine Instanz, an die das DevOps-Dienstkonto angehängt ist. Sie müssen außerdem einen Zugriffsbereich festlegen, durch den die API-Aufrufe definiert werden, die die Instanz tätigen kann. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud compute instances create lab-3 --zone {{{project_1.default_zone_1 | "Zone2"}}} --machine-type=e2-standard-2 --service-account $SA --scopes "https://www.googleapis.com/auth/compute"

Zugriffsbereiche sind die herkömmliche Methode, Berechtigungen für Ihre Instanz festzulegen. Zugriffsbereiche sind kein Sicherheitsmechanismus. Damit werden vielmehr die standardmäßigen OAuth-Bereiche definiert, die in Anfragen über das gcloud-Tool oder die Clientbibliotheken verwendet werden. Sie haben keine Auswirkungen auf Anfragen, die nicht über OAuth authentifiziert wurden, z. B. gRPC oder die SignBlob APIs.

Sie müssen Zugriffsbereiche einrichten, wenn Sie eine Instanz konfigurieren, die als Dienstkonto ausgeführt werden soll.

Als Best Practice wird empfohlen, den vollständigen Zugriffsbereich „cloud-platform“ für die Instanz zu verwenden und dann den API-Zugriff des Dienstkontos mithilfe von IAM-Rollen sicher einzuschränken.

Zugriffsbereiche gelten jeweils für eine Instanz. Sie legen Zugriffsbereiche beim Erstellen einer Instanz fest. Die Zugriffsbereiche bleiben nur für die Lebensdauer der Instanz bestehen.

Zugriffsbereiche haben keine Auswirkungen, wenn Sie die zugehörige API für das Projekt, zu dem das Dienstkonto gehört, nicht aktiviert haben. Wenn Sie zum Beispiel einer VM-Instanz einen Zugriffsbereich für Cloud Storage zuweisen, kann die Instanz die Cloud Storage API nur dann aufrufen, wenn die Cloud Storage API im Projekt aktiviert ist.

Prüfen, ob das Dienstkonto an „lab-3“ angehängt ist

Aufgabe 7: Dienstkonto testen

  1. Stellen Sie über gcloud compute ssh eine Verbindung zur neu erstellten Instanz her. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud compute ssh lab-3 --zone {{{project_1.default_zone_1 | "Zone2"}}}

Drücken Sie die Eingabetaste, wenn Sie gefragt werden, ob Sie fortfahren möchten.

Drücken Sie zweimal die Eingabetaste, um kein Passwort festzulegen.

  1. Das verwendete Standard-Image beinhaltet die gcloud-Konfiguration bereits. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config list

Die Konfiguration hat jetzt das Dienstkonto.

  1. Eine Instanz erstellen Dadurch testen Sie, ob Sie über das Dienstkonto die nötigen Berechtigungen haben:
gcloud compute instances create lab-4 --zone {{{project_1.default_zone_1 | "Zone2"}}} --machine-type=e2-standard-2

Sie können die Eingabetaste drücken, um die Standardzone für diese VM zu akzeptieren.

  1. Prüfen Sie, ob die angehängten Rollen funktionieren. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud compute instances list

Da das Dienstkonto über die nötigen Berechtigungen verfügt, werden Ihnen die aufgeführten Instanzen angezeigt.

Ihre Umgebung

Grafik: Endgültige Lab-Umgebung

Das wars! Sie haben das Lab erfolgreich abgeschlossen.

Sie haben mit dem Cloud SDK-Tool gcloud die folgenden Aufgaben erledigt:

  • gcloud-Client installiert und konfiguriert
  • Mehrere IAM-Konfigurationen erstellt und zwischen diesen gewechselt
  • Geeignete IAM-Berechtigungen identifiziert und zugewiesen
  • Dienstkonto erstellt und verwendet

Weitere Informationen

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 10. April 2024 aktualisiert

Lab zuletzt am 10. April 2024 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.

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