GSP1126
Übersicht
Die Konfiguration eines sicheren Zugriffs auf Ihre Cloud-Ressourcen ist von entscheidender Bedeutung. Wichtige Aspekte sind unter anderem die Verwaltung von Zugriffsrechten, die Beschränkung des Nutzerzugriffs auf tatsächlich benötigte Ressourcen sowie die Einrichtung einer zuverlässigen Authentifizierung für Anwendungen und Dienste. Cloud-Plattformen wie AWS und Google Cloud bieten spezielle Tools für diese Aufgabe. AWS nutzt IAM-Rollen (Identity and Access Management) und entsprechende Richtlinien, während bei Google Cloud IAM Berechtigungen auf Projekt- oder Ressourcenebene gewährt werden.
Neben dem Zugriff durch Nutzerkonten müssen auch Berechtigungen für Anwendungen und Systeme verwaltet werden. AWS verwendet hierfür Dienstrollen, die innerhalb eines Kontos zugewiesen werden. Google Cloud setzt hingegen auf Dienstkonten, die potenziell auch projektübergreifend eingesetzt werden können. In diesem Lab geht es um die IAM-Konfiguration über die Befehlszeile. Ein fundiertes Verständnis von IAM ist insbesondere für Einsteiger in Google Cloud entscheidend, um passende Berechtigungen einzurichten. Sie erfahren, wie Sie die gcloud-Umgebung installieren und konfigurieren, mehrere Konfigurationen verwalten und Dienstkonten verwenden.
Ziele
Aufgaben in diesem Lab:
-
gcloud-Client installieren und konfigurieren
- 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.

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 Endnutzerinnen und Endnutzern 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 Nutzerkonten
- Alle Nutzerkonten
Unter IAM-Übersicht 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 Nutzerkonto eine Berechtigung direkt zu gewähren; stattdessen wird ihm eine Rolle zugewiesen. Wenn Sie einem Nutzerkonto eine Rolle zuweisen, erhält es alle entsprechenden Berechtigungen.
Weitere Informationen zu Rollen finden Sie hier.
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 (CLI) verwenden können. Mit diesem Tool lassen sich viele gängige Plattformaufgaben entweder über die Befehlszeile oder in Scripts und anderen Automatisierungen ausführen.
Weitere Informationen finden Sie in der Übersicht zur gcloud CLI.
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.
Hinweis: Für dieses Lab melden Sie sich mit Username 1 an.
Lab starten und bei der Google Cloud Console anmelden
-
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 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
-
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.
-
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“.
-
Klicken Sie auf Weiter.
-
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“.
-
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.
-
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 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.
Aufgabe 1: gcloud-Umgebung konfigurieren
Dieses Lab beinhaltet eine Compute Engine-Instanz namens debian-clean, die eine Umgebung simuliert, in der gcloud nicht installiert ist. Sie stellen über die Google Cloud Console eine Verbindung zu dieser Instanz her.
-
Rufen Sie die Liste der Compute-Instanzen auf, indem Sie das Navigationsmenü > Compute Engine > VM-Instanzen auswählen.
-
Klicken Sie in der Zeile mit der Compute-Instanz debian-clean auf SSH.
Hinweis zu Compute Engine-Instanzen: Es gibt Windows‑ und Linux-Instanzen. In diesem Lab nutzen Sie eine Linux-Instanz. Eine Verbindung zu Linux-Instanzen können Sie ganz einfach über den Browser mit dem Secure Shell-Client (SSH) 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.
- Testen Sie zuerst, ob
gcloud richtig 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.
- Authentifizieren Sie sich zuerst in gcloud. Führen Sie dazu 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.
-
Klicken Sie auf den Link, der in einem neuen Tab angezeigt wird.
-
Klicken Sie auf Ihren aktiven Nutzernamen , bestätigen Sie bei In Google Cloud SDK anmelden mit Weiter und wählen Sie anschließend Zulassen aus.
-
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.
-
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"}}}
- 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
- Sie können die Eingabetaste drücken, um die Standardzone für diese VM zu akzeptieren.
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
- 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.
- Führen Sie den folgenden Befehl in der SSH-Sitzung aus, um alle verfügbaren Zonen aufzulisten:
gcloud compute zones list
-
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.
-
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
- 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
- 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 dieses Nutzerkonto.
- 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
-
Wählen Sie die 2. Option, Neue Konfiguration erstellen, aus.
-
Konfigurationsname: Geben Sie user2 ein.
-
Mit neuem Konto anmelden: Wählen Sie die 3. Option aus. Sie melden sich mit dem anderen angegebenen Nutzernamen an.
-
Drücken Sie die Eingabetaste, wenn Möchten Sie fortfahren (J/N)? angezeigt wird.
-
Klicken Sie auf den Link, der in einem neuen Tab angezeigt wird.
-
Klicken Sie auf Anderes Konto verwenden.
-
Kopieren Sie das zweite Nutzerkonto () und fügen Sie es in den Prompt E-Mail oder Telefon ein.
-
Kopieren Sie das Passwort, mit dem Sie das Lab begonnen haben, und fügen Sie es in den Prompt Passwort eingeben ein.
-
Klicken Sie auf Verstanden.
-
Klicken Sie unter In Google Cloud SDK anmelden auf Weiter und dann auf Zulassen.
Sie akzeptieren, dass das Cloud SDK denselben Zugriff wie Ihr Google-Konto hat.
-
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.
-
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.
- 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 Sie die Instanzen debian-clean und lab-1 sehen.
- 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 eine Weile.
- Wechseln Sie wieder zur Konfiguration des ersten Nutzerkontos (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. Das erste Nutzerkonto hat die volle Kontrolle über beide Projekte. Es ist quasi das Administratorkonto. Das zweite Nutzerkonto hat nur Lesezugriff auf die beiden Projekte. Es ist ein typisches DevOps-Nutzerkonto.
Als Nächstes konfigurieren Sie mit gcloud den Zugriff des DevOps-Nutzerkontos auf ein Projekt. Dazu erstellen Sie eine benutzerdefinierte Rolle, die das Erstellen von Buckets und Instanzen zulässt.
Rollen und Berechtigungen prüfen
- 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.
- 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 Nutzerkonto 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 Nutzerkonto und einer Organisation zuweisen.
- Sie können sie einem Nutzerkonto und einem Projekt zuweisen.
Als Nächstes weisen Sie dem zweiten Nutzerkonto für das zweite Projekt die einfache Rolle „Viewer“ zu.
Testen, ob das zweite Nutzerkonto Zugriff auf das zweite Projekt hat
- Wechseln Sie bei der
gcloud-Konfiguration wieder zum zweiten Nutzerkonto (user2). Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config configurations activate user2
Jetzt sind Sie wieder user2.
- 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.
- Wenn Sie gefragt werden, ob Sie fortfahren möchten (Möchten Sie fortfahren (J/N)?), geben Sie N ein und drücken Sie die Eingabetaste.
Die Warnung bedeutet, dass „user2“ keinen Zugriff auf das Projekt „PROJECTID2“ hat. Dieses Problem beheben Sie im nächsten Abschnitt.
Dem zweiten Nutzerkonto im zweiten Projekt die Rolle „Viewer“ zuweisen
- Wechseln Sie zurück zur gcloud-Konfiguration default, die berechtigt ist, dem zweiten Nutzerkonto Zugriff zu gewähren. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config configurations activate default
- Installieren Sie
jq:
sudo apt -y install jq
Legen Sie als Nächstes den zweiten Nutzernamen als Wert für USERID2 fest und weisen Sie dem zweiten Nutzerkonto die Rolle „Viewer“ für das zweite Projekt zu.
- 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
- Wechseln Sie zur gcloud-Konfiguration user2. Führen Sie in der SSH-Sitzung den folgenden Befehl aus:
gcloud config configurations activate user2
- Ä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.
- 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.
- Versuchen Sie, im zweiten Projekt als zweites Nutzerkonto 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.
- 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 dem zweiten Konto in beiden Projekten zuweisen
Nachdem Sie die Rolle erstellt haben, müssen Sie dem Projekt das Nutzerkonto und die Rolle zuweisen. 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.
- Weisen Sie die Rolle
iam.serviceAccountUser dem zweiten Nutzerkonto im zweiten Projekt zu. 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“ in Projekt 2 eingebunden ist und ihm die Rolle „roles/iam.serviceAccountUser“ zugewiesen ist
- Weisen Sie dem zweiten Nutzerkonto die benutzerdefinierte Rolle
devops für das zweite Projekt zu. Das zweite Nutzerkonto finden Sie links auf dieser Seite. Legen Sie als USERID 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“ die Rolle „devops“ zugewiesen
Neu zugewiesene Berechtigungen testen
- 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“.
- 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
- 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:

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 Nutzerkonten 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
- 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
- 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.
- 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
- 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.
- 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?
- 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 einer Compute-Instanz ein Dienstkonto zuweisen.
Prüfen, ob das DevOps-Dienstkonto in Projekt 2 eingebunden ist und ihm die Rolle „roles/iam.serviceAccountUser“ zugewiesen ist
Aufgabe 6: Dienstkonto mit einer Compute-Instanz verwenden
- 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 in Projekt 2 eingebunden ist und ihm die Rolle „roles/compute.instanceAdmin“ zugewiesen ist
- 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, beispielsweise 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
- 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.
- 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 enthält nun das Dienstkonto.
- Erstellen Sie eine Instanz. 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.
- 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

Das wars! Sie haben das Lab erfolgreich abgeschlossen.
Sie haben das Cloud SDK-Tool (gcloud) verwendet, um den gcloud-Client zu installieren und konfigurieren, mehrere IAM-Konfigurationen verwaltet, die entsprechenden IAM-Berechtigungen zugewiesen und mit einem Dienstkonto gearbeitet. Diese Aufgaben zeigen die Parallelen zwischen Google Cloud IAM und AWS IAM bei der Verwendung von Befehlszeilentools für die Zugriffssteuerung. Über beide Oberflächen können Sie Konten/Rollen verwalten, Dienstkonten/Rollen erstellen und zwischen Nutzerkonten wechseln. Sie haben Berechtigungen in gcloud ähnlich zugewiesen wie Rollen und Richtlinien in AWS und gesehen, dass Google Cloud-Projekte bei der Zugriffsverwaltung mit Google Cloud IAM ähnlich funktionieren wie AWS-Konten.
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 1. August 2024 aktualisiert
Lab zuletzt am 1. August 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.