App Engine-Dienstkonten konfigurieren

App Engine-Anwendungen benötigen ein Dienstkonto, um auf andere Google Cloud-Dienste zugreifen und Aufgaben ausführen zu können.

In App Engine gibt es zwei Arten von Dienstkonten. Jedes Dienstkonto in Ihrem Cloud-Projekt kann zugewiesen werden, um entweder als Standarddienstkonto auf Anwendungsebene oder als ein Dienstkonto pro Version zu fungieren:

  • Standarddienstkonto auf Anwendungsebene: Dieses Dienstkonto wird für alle bereitgestellten Dienste verwendet, wenn Sie kein "versionsspezifisches Dienstkonto" konfigurieren. Sie können ein Dienstkonto zuweisen, das Sie erstellt haben, oder das automatisch erstellte Standarddienstkonto verwenden, das erstellt wird, wenn Sie einen Dienst zum ersten Mal in Ihrem Cloud-Projekt bereitstellen. Beispiel: App Engine-Standarddienstkonto (PROJECT_ID@appspot.gserviceaccount.com).

  • Versionsspezifisches Dienstkonto: Ein Dienstkonto, das als Identität für eine bestimmte Version Ihres bereitgestellten Dienstes konfiguriert ist. Wenn Sie eine vorhandene Version oder eine neue Version bereitstellen, können Sie ein Dienstkonto angeben, das als Identität dieser Version fungieren soll. Wenn eine Version beispielsweise Berechtigungen benötigt, die sich vom Standarddienstkonto auf Anwendungsebene unterscheiden, können Sie ein Dienstkonto zuweisen, das speziell für diese Version gilt.

Konfigurierte Dienstkonten aufrufen

Führen Sie den Befehl gcloud app describe aus, um das aktuelle Standarddienstkonto auf Anwendungsebene aufzurufen.

So zeigen Sie das Dienstkonto an, das von einer bereitgestellten Version verwendet wird:

gcloud

Führen Sie den Befehl gcloud app versions describe aus:

  gcloud app versions describe VERSION_ID --service=SERVICE_NAME

Ersetzen Sie:

  • VERSION_ID durch die ID der Version.
  • SERVICE_NAME durch den Namen des Dienstes, den Sie erstellt haben.

Console

  1. Wechseln Sie in der Konsole zum Tab App Engine-Versionen. Zur Seite "Versionen"
  2. Suchen Sie die E-Mail-Adresse Ihres App Engine-versionsspezifischen Dienstkontos. Beispiel: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Standarddienstkonto für App-Ebene zuweisen

Das Standarddienstkonto auf Anwendungsebene ist standardmäßig das automatisch erstellte Dienstkonto PROJECT_ID@appspot.gserviceaccount.com. Sie können mithilfe der Google Cloud-Befehlszeile, der Google Cloud Console oder der Admin API ein anderes Dienstkonto zuweisen, das als Standarddienstkonto auf Anwendungsebene fungiert.

Standarddienstkonto für eine Anwendung bei der Anwendungserstellung angeben

Während der ersten Erstellung der App Engine-Anwendung können Sie ein Dienstkonto zuweisen, das Sie erstellt haben oder Sie verwenden das automatisch erstelltePROJECT_ID@appspot.gserviceaccount.com Dienstkonto, das als Standard fungiert.

Sie haben folgende Möglichkeiten, um eine App Engine-Anwendung zu erstellen und ein Standarddienstkonto auf App-Ebene zuzuweisen:

gcloud

Führen Sie den Befehl gcloud app create aus:

gcloud app create --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Ersetzen Sie:

  • SERVICE_ACCOUNT_NAME durch den Namen des Dienstes, den Sie erstellt haben.
  • PROJECT_ID durch die ID des Google Cloud-Projekts, in dem Sie das Dienstkonto zuweisen möchten.

Console

  1. Rufen Sie die Seite "App Engine" auf:

    Zu App Engine

  2. Google Cloud-Projekt erstellen.

  3. Wählen Sie im Abschnitt Anwendung erstellen ein Dienstkonto unter Identität und API-Zugriff aus.

Standarddienstkonto für Ihre Anwendung aktualisieren

Sie haben folgende Möglichkeiten, um ein neues Dienstkonto zuzuweisen, um das Standarddienstkonto für Ihre Anwendung zu aktualisieren:

gcloud

Führen Sie den Befehl gcloud app update aus:

    gcloud app update --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Ersetzen Sie:

  • SERVICE_ACCOUNT_NAME durch den Namen des Dienstes, den Sie erstellt haben.
  • PROJECT_ID durch die ID des Google Cloud-Projekts, in dem Sie das Dienstkonto zuweisen möchten.

Jede neue Version, die Sie hier bereitstellen, verwendet das neue Standarddienstkonto auf Anwendungsebene, es sei denn, Sie weisen explizit ein versionsspezifisches Dienstkonto zu.

Console

  1. Wechseln Sie in der Console zum App Engine-Tab Anwendungseinstellungen und klicken Sie auf Anwendungseinstellungen bearbeiten.

    Zu den Anwendungseinstellungen

  2. Wählen Sie unter Dienstkonto auswählen ein Standarddienstkonto auf Anwendungsebene aus und klicken Sie auf Speichern.

    Sie werden zum Tab Anwendungseinstellungen weitergeleitet. Dort können Sie die E-Mail-Adresse Ihres aktualisierten Standarddienstkontos auf Anwendungsebene sehen. Beispiel: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.

    Jede neue Version, die Sie hier bereitstellen, verwendet das neue Standarddienstkonto auf Anwendungsebene, es sei denn, Sie weisen explizit ein versionsspezifisches Dienstkonto zu.

Mit einem versionsspezifischen Dienstkonto bereitstellen

Sie können ein versionsspezifisches Dienstkonto nur während der Bereitstellung neuer Versionen festlegen. Mit einem versionsspezifischen Dienstkonto können Sie jeder Anwendungsversion je nach den ausgeführten Aufgaben unterschiedliche Berechtigungen gewähren und vermeiden, dass mehr Berechtigungen als erforderlich gewährt werden.

Sie benötigen ein vorhandenes Dienstkonto, um Ihre Anwendung bereitstellen zu können.

Versionsspezifisches Dienstkonto festlegen

gcloud

Führen Sie den Befehl gcloud app deploy aus:

  gcloud app deploy --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Ersetzen Sie:

  • SERVICE_ACCOUNT_NAME durch den Namen des Dienstes, den Sie erstellt haben.
  • PROJECT_ID durch die ID des Google Cloud-Projekts, in dem Sie das Dienstkonto zuweisen möchten.

app.yaml

Geben Sie in der Datei app.yaml das Dienstkonto an, indem Sie das Element service_account hinzufügen:

service_account: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Ersetzen Sie:

  • SERVICE_ACCOUNT_NAME durch den Namen des Dienstes, den Sie erstellt haben.
  • PROJECT_ID durch die ID des Google Cloud-Projekts, in dem Sie das Dienstkonto zuweisen möchten.

App Engine-Standarddienstkonto

Standardmäßig hat das automatisch erstellte Dienstkonto PROJECT_ID@appspot.gserviceaccount.com im Projekt die Rolle Bearbeiter. Wenn Sie die App Engine-Anwendung mit dem automatisch erstellten Dienstkonto PROJECT_ID@appspot.gserviceaccount.com bereitstellen, kann die Anwendung auf alle Ressourcen im Projekt zugreifen.

Wenn Sie für das automatisch erstellte Dienstkonto PROJECT_ID@appspot.gserviceaccount.com eine Einschränkung für eine Organisationsrichtlinie verwenden, um zu verhindern, dass die Standardrolle Editor (Bearbeiter) automatisch gewährt wird, müssen Sie die Rollen manuell aktualisieren. Die Rollen, die Sie dem App Engine-Standarddienstkonto zuweisen, müssen der Anwendung Zugriff auf die erforderlichen Ressourcen gewähren. Informationen zum Zuweisen von Rollen für Dienstkonten und andere Hauptkonten finden Sie unter Zugriff auf Dienstkonten verwalten.

Informationen zum Ändern von Berechtigungen, zum Löschen und zum Wiederherstellen Ihrer Dienstkonten finden Sie unter Dienstkonten erstellen und verwalten.