arrow_back

Dienstkonten und Rollen: Grundlagen

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

Dienstkonten und Rollen: Grundlagen

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

GSP199

Logo: Google Cloud-Labs zum selbstbestimmten Lernen

Überblick

Ein Dienstkonto ist eine spezielle Art von Google-Konto, mit dem virtuellen Maschinen anstelle von Endnutzern Berechtigungen erteilt werden. Über Dienstkonten werden vor allem sichere, verwaltete Verbindungen zu APIs und Google Cloud-Diensten hergestellt. Nur vertrauenswürdige Verbindungen zuzulassen und potenziell böswillige Zugriffe zu verweigern ist unverzichtbar für die Sicherheit eines jeden Google Cloud-Projekts. In diesem Lab erfahren Sie anhand praktischer Übungen alles über Dienstkonten.

Lerninhalte

Aufgaben in diesem Lab:

  • Dienstkonten erstellen und verwalten
  • Virtuelle Maschine erstellen und sie einem Dienstkonto zuordnen
  • Mithilfe von Clientbibliotheken von einem Dienstkonto aus auf BigQuery zugreifen
  • Eine Abfrage für ein öffentliches BigQuery-Dataset von einer Compute Engine-Instanz aus ausführen

Vorbereitung

Erfahrung mit Cloud IAM ist empfehlenswert, es werden aber nur geringe oder gar keine Vorkenntnisse mit Dienstkonten vorausgesetzt. Wenn Sie fortgeschrittenere praktische Übungen in diesem Themenbereich suchen, sollten Sie sich die folgenden Labs ansehen:

Einrichtung und Anforderungen

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

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

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

Für dieses Lab benötigen Sie Folgendes:

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

Lab starten und bei der Google Cloud Console anmelden

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

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

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

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

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

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

    Sie finden den Nutzernamen auch im Bereich Details zum Lab.

  4. Klicken Sie auf Weiter.

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

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

    Sie finden das Passwort auch im Bereich Details zum Lab.

  6. Klicken Sie auf Weiter.

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

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

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

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

Cloud Shell aktivieren

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

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

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

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

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

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

Ausgabe:

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

Ausgabe:

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

Region für Ihr Projekt festlegen

Führen Sie den folgenden Befehl aus, um die Region für Ihr Projekt festzulegen:

gcloud config set compute/region {{{project_0.default_region | Region}}}

Was sind 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.

Eine Compute Engine-VM kann beispielsweise als Dienstkonto ausgeführt werden, dem Berechtigungen für den Zugriff auf benötigte Ressourcen zugewiesen sind. Damit ist das Dienstkonto die Identität des Dienstes und die Berechtigungen des Dienstkontos bestimmen, auf welche Ressourcen der Dienst zugreifen kann.

Ein Dienstkonto wird durch seine E-Mail-Adresse definiert, die für das Konto eindeutig ist.

Arten von Dienstkonten

Nutzerverwaltete Dienstkonten

Wenn Sie ein neues Cloud-Projekt mithilfe der Google Cloud Console anlegen und die Compute Engine API für Ihr Projekt aktiviert ist, wird standardmäßig ein Compute Engine-Dienstkonto erstellt. Es lässt sich anhand folgender E-Mail-Adresse identifizieren:

PROJECT_NUMBER-compute@developer.gserviceaccount.com

Wenn Ihr Projekt eine App Engine-Anwendung enthält, wird standardmäßig das App Engine-Standarddienstkonto für Ihr Projekt erstellt. Es lässt sich anhand folgender E-Mail-Adresse identifizieren:

PROJECT_ID@appspot.gserviceaccount.com

Von Google verwaltete Dienstkonten

Zusätzlich zu den nutzerverwalteten Dienstkonten werden möglicherweise in der IAM-Richtlinie Ihres Projekts oder der Console weitere Dienstkonten angezeigt. Diese Dienstkonten werden von Google erstellt und sind Eigentum von Google. Sie stehen für verschiedene Google-Dienste und jedem Konto werden automatisch IAM-Rollen für den Zugriff auf das Google Cloud-Projekt zugewiesen.

Google APIs-Dienstkonto

Ein Beispiel für ein von Google verwaltetes Dienstkonto ist ein Google API-Dienstkonto, das sich anhand der folgenden E-Mail-Adresse identifizieren lässt:

PROJECT_NUMBER@cloudservices.gserviceaccount.com

Dieses Dienstkonto ist speziell für die Ausführung interner Google-Prozesse in Ihrem Namen vorgesehen und nicht im Abschnitt Dienstkonten der Console aufgelistet. Standardmäßig wird dem Konto automatisch die Rolle „Project Editor“ für das Projekt zugewiesen und es wird in der Console im Bereich IAM aufgeführt. Dieses Dienstkonto wird nur gelöscht, wenn das Projekt gelöscht wird.

Hinweis: Google-Dienste können nur genutzt werden, wenn das Konto Zugriff auf Ihr Projekt hat. Daher sollten Sie die Rolle des Dienstkontos in Ihrem Projekt nicht entfernen oder ändern.

Informationen zu IAM-Rollen

Wenn eine Identität eine Google Cloud API aufruft, erfordert Google Cloud Identity and Access Management, dass der Identität die entsprechenden Berechtigungen zur Verwendung der Ressource zugewiesen sind. Sie können Berechtigungen gewähren, indem Sie einem Nutzer, einer Gruppe oder einem Dienstkonto Rollen zuweisen.

Rollenarten

Cloud IAM enthält drei Arten von Rollen:

  • Einfache Rollen, zu denen die Rollen „Owner“, „Editor“ und „Viewer“ gehören, die es schon vor der Einführung von Cloud IAM gab
  • Vordefinierte Rollen, die detaillierten Zugriff auf einen bestimmten Dienst ermöglichen und von Google Cloud verwaltet werden
  • Benutzerdefinierte Rollen, die einen genau definierten Zugriff gemäß einer vom Nutzer angegebenen Liste von Berechtigungen ermöglichen

In der Anleitung zu Rollen erfahren Sie mehr über Rollen.

Aufgabe 1: Dienstkonten erstellen und verwalten

Wenn Sie ein neues Cloud-Projekt anlegen, erstellt Google Cloud automatisch ein Compute Engine- und ein App Engine-Dienstkonto für dieses Projekt. Sie können dem Projekt bis zu 98 weitere Dienstkonten hinzufügen, um den Zugriff auf die Ressourcen zu steuern.

Dienstkonto erstellen

Das Erstellen eines Dienstkontos ist vergleichbar mit dem Hinzufügen eines Mitglieds zu Ihrem Projekt. Das Dienstkonto gehört jedoch zu Ihren Anwendungen anstatt zu einem bestimmten Endnutzer.

  • Führen Sie in Cloud Shell den folgenden Befehl aus, um ein Dienstkonto zu erstellen:
gcloud iam service-accounts create my‑sa‑123 ‑‑display-name "my service account"

Die Ausgabe dieses Befehls ist das Dienstkonto, das in etwa so aussieht:

Created service account [my‑sa‑123]

Dienstkonten Rollen zuweisen

Wenn Sie IAM-Rollen zuweisen, können die Dienstkonten entweder als Ressource oder als Identität behandelt werden.

Ihre Anwendung nutzt ein Dienstkonto als Identität zur Authentifizierung bei den Google Cloud-Diensten. Wenn bei Ihnen beispielsweise eine Compute Engine-VM als Dienstkonto ausgeführt wird, können Sie dem Dienstkonto (Identität) die Rolle „Editor“ für ein Projekt (Ressource) zuweisen.

Vielleicht möchten Sie auch festlegen, wer die VM starten kann. Weisen Sie dazu einem Nutzer (Identität) die Rolle serviceAccountUser für das Dienstkonto (Ressource) zu.

Einem Dienstkonto Rollen für bestimmte Ressourcen zuweisen

Sie weisen einem Dienstkonto Rollen zu, um es zu berechtigen, bestimmte Aktionen mit den Ressourcen in Ihrem Cloud Platform-Projekt durchzuführen. Zum Beispiel können Sie einem Dienstkonto die Rolle storage.admin zuweisen, mit der es die Kontrolle über Objekte und Buckets in Cloud Storage erhält.

  • Führen Sie in Cloud Shell folgenden Befehl aus, um dem soeben erstellten Dienstkonto Rollen zuzuweisen:
gcloud projects add-iam-policy-binding $DEVSHELL_PROJECT_ID \ ‑‑member serviceAccount:my‑sa‑123@$DEVSHELL_PROJECT_ID.iam.gserviceaccount.com ‑‑role roles/editor

In der Ausgabe wird eine Liste der Rollen angezeigt, die das Dienstkonto jetzt hat:

bindings: - members: - user:email1@gmail.com role: roles/owner - members: - serviceAccount:our-project-123@appspot.gserviceaccount.com - serviceAccount:123456789012-compute@developer.gserviceaccount.com - serviceAccount:my-sa-123@my-project-123.iam.gserviceaccount.com - user:email3@gmail.com role: roles/editor - members: - user:email2@gmail.com role: roles/viewer etag: BwUm38GGAQk= version: 1

Klicken Sie auf Fortschritt prüfen. Dienstkonten erstellen und verwalten

Aufgabe 2: Mithilfe von Clientbibliotheken von einem Dienstkonto aus auf BigQuery zugreifen

In diesem Abschnitt fragen Sie von einer Instanz aus die öffentlichen BigQuery-Datasets ab. Dabei verwenden Sie ein Dienstkonto, das über die erforderlichen Rollen verfügt.

Dienstkonto erstellen

Erstellen Sie zuerst ein neues Dienstkonto in der Console.

  1. Klicken Sie im Navigationsmenü auf IAM & Verwaltung. Wählen Sie dann Dienstkonten aus und klicken Sie auf + Dienstkonto erstellen.

  2. Geben Sie die erforderlichen Details an:

  • Name des Dienstkontos: bigquery-qwiklab
  1. Klicken Sie nun auf Erstellen und fortfahren und fügen Sie dann die folgenden Rollen hinzu:
  • Rollen: BigQuery > BigQuery Data Viewer und BigQuery > BigQuery User

Die Console sollte in etwa so aussehen:

Tab „Dienstkonto erstellen“

  1. Klicken Sie auf Weiter und dann auf Fertig.

VM-Instanz erstellen

  1. Rufen Sie in der Console Compute Engine > VM-Instanzen auf und klicken Sie auf Instanz erstellen.

  2. Erstellen Sie die VM mit den folgenden Informationen:

Konfiguration Wert
Name bigquery-instance
Region
Zone
Reihe E2
Maschinentyp e2-medium
Bootlaufwerk Debian GNU/Linux 11 (Bullseye) x86/64
Dienstkonto bigquery-qwiklab
Hinweis: Wenn das Dienstkonto „bigquery-qwiklab“ in der Drop-down-Liste nicht aufgeführt ist, geben Sie im Abschnitt „Filter“ dessen Namen ein.
  1. Klicken Sie auf Erstellen.

Beispielcode in eine Compute Engine-Instanz aufnehmen

  1. Rufen Sie in der Console Compute Engine > VM-Instanzen auf.
  2. Stellen Sie eine SSH-Verbindung zu bigquery-instance her und klicken Sie dazu auf die Schaltfläche SSH.
Hinweis: Für das Herstellen der SSH-Verbindung können Sie auf Ohne Identity-Aware Proxy verbinden klicken.

Installieren Sie im SSH-Fenster die erforderlichen Abhängigkeiten. Führen Sie hierzu die folgenden Befehle aus:

sudo apt-get update sudo apt-get install ‑y git python3-pip pip3 install ‑‑upgrade pip pip3 install google-cloud-bigquery pip3 install pyarrow pip3 install pandas pip3 install db‑dtypes

Erstellen Sie nun die Python-Beispieldatei:

echo " from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='YOUR_SERVICE_ACCOUNT') query = ''' SELECT year, COUNT(1) as num_babies FROM publicdata.samples.natality WHERE year > 2000 GROUP BY year ''' client = bigquery.Client( project='{{{project_0.project_id | Your Project ID}}}', credentials=credentials) print(client.query(query).to_dataframe()) " > query.py

Fügen Sie die Projekt-ID zu query.py hinzu:

sed ‑i ‑e "s/{{{project_0.project_id | Your Project ID}}}/$(gcloud config get-value project)/g" query.py

Führen Sie folgenden Befehl aus, um zu überprüfen, ob mit dem sed‑Befehl die Projekt‑ID in der Datei geändert wurde:

cat query.py

Befehlsausgabe (Ihre Ausgabe kann abweichen):

from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='YOUR_SERVICE_ACCOUNT') query = ''' SELECT year, COUNT(1) as num_babies FROM publicdata.samples.natality WHERE year > 2000 GROUP BY year ''' client = bigquery.Client( project={{{ project_0.project_id }}}, credentials=credentials) print(client.query(query).to_dataframe())

Fügen Sie die E‑Mail-Adresse des Dienstkontos zu query.py hinzu:

sed ‑i ‑e "s/YOUR_SERVICE_ACCOUNT/bigquery-qwiklab@$(gcloud config get‑value project).iam.gserviceaccount.com/g" query.py

Führen Sie folgenden Befehl aus, um zu überprüfen, ob mit dem sed‑Befehl die E-Mail-Adresse des Dienstkontos in der Datei geändert wurde:

cat query.py

Befehlsausgabe (Ihre Ausgabe kann abweichen):

from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='bigquery-qwiklab@{{{ project_0.project_id }}}.iam.gserviceaccount.com') query = ''' SELECT year, COUNT(1) as num_babies FROM publicdata.samples.natality WHERE year > 2000 GROUP BY year ''' client = bigquery.Client( project={{{ project_0.project_id }}}, credentials=credentials) print(client.query(query).to_dataframe())

Die Anwendung verwendet jetzt die Berechtigungen, die diesem Dienstkonto zugewiesen sind. Führen Sie die Abfrage mit dem folgenden Python-Befehl aus:

python3 query.py

Die Abfrage sollte Folgendes ausgeben (Ihre Zahlen können abweichen):

Row year num_babies 0 2008 4255156 1 2006 4273225 2 2003 4096092 3 2004 4118907 4 2002 4027376 5 2005 4145619 6 2001 4031531 7 2007 4324008 Hinweis: Ihre Zeilenwerte sind möglicherweise den Jahresangaben nicht wie in der Ausgabe oben zugeordnet. Die Anzahl der Babys pro Jahr sollte jedoch gleich sein.

Tolle Arbeit! Sie haben mit dem Dienstkonto bigquery-qwiklab eine Anfrage an ein öffentliches BigQuery-Dataset gestellt.

Klicken Sie auf Fortschritt prüfen. Mithilfe eines Dienstkontos auf BigQuery zugreifen

Das wars!

Sie haben das Lab erfolgreich abgeschlossen und gelernt, wie man Dienstkonten 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 24. April 2024 aktualisiert

Lab zuletzt am 24. 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.