Dienstkonten

Auf dieser Seite werden Dienstkonten, Arten von Dienstkonten und die IAM-Rollen beschrieben, die für Dienstkonten verfügbar sind.

Hinweis

  • Sie müssen die grundlegenden Konzepte von Cloud IAM verstehen

Was sind Dienstkonten?

Ein Dienstkonto ist ein spezielles Google-Konto, das zu Ihrer Anwendung oder einer virtuellen Maschine (VM) gehört und nicht zu einem bestimmten Endnutzer. Ihre Anwendung ruft mithilfe des Dienstkontos die Google API eines Dienstes auf, 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 spezifisch ist.

Dienstkontoschlüssel

Jedes Dienstkonto ist mit einem Schlüsselpaar verbunden, das über die Google Cloud Platform (GCP) verwaltet wird. Dieses Paar wird zur Dienst-zu-Dienst-Authentifizierung in der GCP verwendet. Die zugehörigen Schlüssel werden von Google automatisch rotiert und für maximal zwei Wochen zur Anmeldung genutzt.

Sie können optional mindestens ein externes Schlüsselpaar erstellen, das außerhalb der GCP verwendet wird (beispielsweise zur Verwendung mit Standardanmeldedaten für Anwendungen). Wenn Sie ein neues Schlüsselpaar erstellen, laden Sie den privaten Schlüssel herunter (der nicht von Google gespeichert wird). Bei externen Schlüsseln sind Sie für die Sicherheit des privaten Schlüssels und anderer Verwaltungsvorgänge wie der Schlüsselrotation verantwortlich. Externe Schlüssel können über die IAM API, das Befehlszeilentool gcloud oder die Dienstkontoseite in der Google Cloud Platform Console verwaltet werden. Sie können bis zu zehn Dienstkontoschlüssel pro Dienstkonto erstellen, um eine Schlüsselrotation zu ermöglichen.

Arten von Dienstkonten

Nutzerverwaltete Dienstkonten

Wenn Sie über die GCP Console ein neues Cloud-Projekt erstellen und die Compute Engine API für Ihr Projekt aktiviert ist, wird standardmäßig ein Compute Engine-Dienstkonto für Sie erstellt. Die folgende E-Mail-Adresse dient seiner Identifikation:

PROJECT_NUMBER-compute@developer.gserviceaccount.com

Wenn Ihr Projekt eine App Engine-Anwendung enthält, wird für Ihr Projekt standardmäßig das App Engine-Standarddienstkonto erstellt. Die folgende E-Mail-Adresse dient seiner Identifikation:

PROJECT_ID@appspot.gserviceaccount.com

Wenn Sie in Ihrem Projekt ein Dienstkonto erstellen, geben Sie dem Dienstkonto einen Namen und ihm wird eine E-Mail-Adresse mit dem folgenden Format zugewiesen:

SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Sie können bis zu 100 Dienstkonten pro Projekt erstellen, einschließlich des Compute Engine-Standarddienstkontos und des App Engine-Dienstkontos. Verwenden Sie dazu die IAM API, die GCP Console oder das gcloud-Befehlszeilentool. Diese Standarddienstkonten und die Dienstkonten, die Sie explizit erstellen, sind die nutzerverwalteten Dienstkonten.

Von Google verwaltete Dienstkonten

Zusätzlich zu den von Nutzern verwalteten Dienstkonten werden in den IAM-Richtlinien Ihres Projekts oder der GCP Console möglicherweise 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 GCP-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 ist nicht im Abschnitt Dienstkonten der GCP Console aufgelistet. Standardmäßig wird dem Konto automatisch die Projektbearbeiterrolle für das Projekt zugewiesen und es ist im Abschnitt IAM der GCP Console aufgelistet. Dieses Dienstkonto wird nur gelöscht, wenn das Projekt gelöscht wird. 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.

Dienstkontoberechtigungen

Ein Dienstkonto ist nicht nur eine Identität, sondern auch eine Ressource, der IAM-Richtlinien zugewiesen sind. Durch diese Richtlinien wird bestimmt, wer das Dienstkonto nutzen kann.

Alice kann beispielsweise die Bearbeiterrolle und Bob die Betrachterrolle für ein Dienstkonto haben. Dies entspricht dem Zuweisen von Rollen für andere GCP-Ressourcen.

Den standardmäßigen Compute Engine- und App Engine-Dienstkonten werden Bearbeiterrollen für das Projekt zugewiesen, wenn sie erstellt werden, wodurch der Code, der in Ihrer App- oder VM-Instanz ausgeführt wird, die erforderlichen Berechtigungen hat. In diesem Fall sind die Dienstkonten Identitäten, denen die Bearbeiterrolle für eine Ressource (Projekt) zugewiesen ist.

Wenn Ihre Automatisierung auf einen Cloud Storage-Bucket zugreifen soll, weisen Sie dem Dienstkonto (das von Ihrer Automatisierung verwendet wird) die Berechtigungen zum Lesen des Cloud Storage-Buckets zu. In diesem Fall ist das Dienstkonto die Identität, der Sie Berechtigungen für eine andere Ressource (den Cloud Storage-Bucket) erteilen.

Rolle "Dienstkontonutzer"

Sie können die Rolle iam.serviceAccountUser auf Projektebene für alle Dienstkonten im Projekt oder auf Dienstkontoebene zuweisen.

  • Wenn Sie einem Nutzer die Rolle iam.serviceAccountUser auf Projektebene zuweisen, erhält er Zugriff auf alle Dienstkonten dieses Projekts, einschließlich solcher, die später erstellt werden.

  • Wenn Sie einem Nutzer die Rolle iam.serviceAccountUser für ein spezifisches Dienstkonto zuweisen, erhält er Zugriff auf dieses Dienstkonto.

Wenn Sie einem Nutzer die Rolle compute.instanceAdmin mit der Rolle iam.serviceAccountUser zuweisen, kann er Compute Engine-Instanzen erstellen und verwalten, die ein Dienstkonto verwenden.

Wenn Sie den Dienstkonten IAM-Rollen zugewiesen haben, können Sie das Dienstkonto einer oder mehreren neuen VM-Instanzen zuweisen. Eine Anleitung dazu finden Sie unter Neue Instanz erstellen, die als Dienstkonto ausgeführt werden soll.

Nutzer mit der Rolle "serviceAccountUser" können mithilfe des Dienstkontos indirekt auf alle Ressourcen zugreifen, auf die das Dienstkonto Zugriff hat. Ein Nutzer mit der Rolle "serviceAccountUser" kann zum Beispiel mithilfe des Dienstkontos eine Instanz starten. Er kann dann mithilfe der Instanz auf alles zugreifen, worauf die Dienstkontoidentität Zugriff hat. Die Rolle "serviceAccountUser" ermöglicht Nutzern aber nicht, die Rollen des Dienstkontos direkt zu verwenden. Seien Sie deshalb vorsichtig, wenn Sie einem Nutzer die Rolle iam.serviceAccountUser zuweisen.

Dienstkonten stehen für Ihre Sicherheit auf Dienstebene. Die Sicherheit des Dienstes ist abhängig von den Personen, die IAM-Rollen für die Verwaltung und Verwendung der Dienstkonten haben, und den Personen, die private externe Schlüssel für diese Dienstkonten besitzen. Best Practices für die Sicherheit sind z. B. folgende Maßnahmen:

  • Prüfen Sie mithilfe der IAM API die Dienstkonten, die Schlüssel und die Richtlinien für diese Dienstkonten.
  • Wenn Ihre Dienstkonten keine externen Schlüssel erfordern, löschen Sie diese.
  • Wenn Nutzer keine Berechtigung zum Verwalten oder Verwenden von Dienstkonten benötigen, entfernen Sie sie aus den IAM-Richtlinien.

Weitere Informationen zu Best Practices finden Sie unter Informationen zu Dienstkonten.

Rolle "Ersteller von Dienstkonto-Token"

Diese Rolle ermöglicht den Identitätswechsel von Dienstkonten, um OAuth2-Zugriffstoken zu erstellen oder Blobs oder JWTs zu signieren.

Rolle "Dienstkontonutzer"

Diese Rolle wurde eingestellt. Wenn Sie Vorgänge mit einem Dienstkonto ausführen müssen, verwenden Sie die Rolle Dienstkontobenutzer. Um gewissermaßen dieselben Berechtigungen wie für "Dienstkontonutzer" (Service Account Actor) zu erteilen, sollten Sie auch die Rolle Ersteller von Dienstkonto-Token zuweisen.

Zugriffsbereiche

Zugriffsbereiche sind alte Methoden, um Berechtigungen für Ihre virtuelle Maschine festzulegen. Bevor IAM-Rollen eingeführt wurden, waren Zugriffsbereiche der einzige Mechanismus zur Erteilung von Berechtigungen an Dienstkonten. Auch wenn sie jetzt nicht mehr die primäre Methode zum Zuweisen von Berechtigungen sind, müssen Sie weiterhin Zugriffsbereiche festlegen, wenn Sie eine Instanz konfigurieren, die als Dienstkonto ausgeführt werden soll. Informationen zu Zugriffsbereichen finden Sie in der Google Compute Engine-Dokumentation.

Kurzlebige Anmeldedaten für das Dienstkonto

Sie können kurzlebige Anmeldedaten erstellen, die es Ihnen ermöglichen, die Identität eines GCP-Dienstkontos anzunehmen. Mit diesen Anmeldedaten können Aufrufe von Google Cloud Platform APIs oder anderen Nicht-Google-APIs authentifiziert werden.

Diese Anmeldedaten werden am häufigsten benötigt, um den Zugriff auf GCP-Ressourcen in verschiedenen Projekten, Organisationen oder Konten vorübergehend zu delegieren. Beispielsweise kann ein vorübergehender Notfallzugriff gewährt werden, statt permanente Anmeldedaten für ein Dienstkonto mit wichtigen Berechtigungen für einen externen Aufrufer bereitzustellen. Alternativ kann die Identität eines ausgewiesenen Dienstkontos mit eingeschränkten Berechtigungen von einem externen Aufrufer angenommen werden, ohne dass ein Dienstkonto mit wichtigen Berechtigungen erforderlich ist.

Weitere Informationen finden Sie unter Kurzlebige Anmeldedaten für das Dienstkonto erstellen.

Standardanmeldedaten für Anwendungen

Standardanmeldedaten für Anwendungen sind ein Mechanismus, mit dem Sie die Nutzung von Dienstkonten innerhalb und außerhalb der GCP und in verschiedenen GCP-Projekten vereinfachen können. Der häufigste Anwendungsfall ist das Testen eines Codes auf einem lokalen Rechner, das anschließende Verschieben in ein Entwicklungsprojekt in der GCP und schließlich das Verschieben in ein Produktionsprojekt in der GCP. Durch die Verwendung von Standardanmeldedaten für Anwendungen wird gewährleistet, dass das Dienstkonto problemlos funktioniert. Das bedeutet, dass es zum Testen auf dem lokalen Rechner einen lokal gespeicherten Dienstkontoschlüssel und bei der Ausführung in Compute Engine das Compute Engine-Standarddienstkonto des Projekts verwendet. Weitere Informationen finden Sie unter Standardanmeldedaten für Anwendungen.

Weitere Informationen

Best Practices für die Verwendung von Dienstkonten finden Sie unter Informationen zu Dienstkonten.

Die folgenden Anleitungen enthalten weitere Informationen:

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Dokumentation zu Cloud Identity and Access Management