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
- Wechseln Sie in der Konsole zum Tab App Engine-Versionen. Zur Seite "Versionen"
- 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
Rufen Sie die Seite "App Engine" auf:
Google Cloud-Projekt erstellen.
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
Wechseln Sie in der Console zum App Engine-Tab Anwendungseinstellungen und klicken Sie auf Anwendungseinstellungen bearbeiten.
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.