Rollen mit Zugriffsberechtigung für App Engine

Rollen legen fest, welche Dienste und Aktionen für ein Nutzerkonto oder Dienstkonto verfügbar sind. Die folgenden Rollentypen gewähren Zugriff auf App Engine:

  • Einfache Rollen gewähren Zugriff auf alle Dienste und Ressourcen in einem Projekt, unter anderem auf App Engine. Wenn einem Konto z. B. die Rolle „Bearbeiter“ zugewiesen ist, können mit diesem Konto sowohl die App Engine-Einstellungen als auch die Cloud Storage-Einstellungen geändert werden.

  • Vordefinierte App Engine-Rollen ermöglichen einen genauer definierten Zugriff auf App Engine. Jeder Dienst in Ihrem Cloud-Projekt stellt seine eigenen vordefinierten Rollen bereit. Beispiel: Mit einem Konto, dem nur die Rolle „App Engine-Bereitsteller“ zugewiesen ist, können zwar App Engine-Anwendungen bereitgestellt, aber keine Objekte in Cloud Storage aufgerufen oder erstellt werden. Einem solchen Konto muss deshalb zusätzlich eine bestimmte vordefinierte Cloud Storage-Rolle zugewiesen sein, damit Objekte in Cloud Storage aufgerufen oder erstellt werden können.

  • Benutzerdefinierte Rollen ermöglichen einen genau definierten Zugriff, den der Nutzer in Form einer Liste von festgelegten Berechtigungen erstellt.

Sie können einfache Rollen verwenden, wenn Sie an kleineren Projekten mit weniger komplexen Anforderungen arbeiten. Wenn Sie den Zugriff genauer steuern möchten, verwenden Sie vordefinierte Rollen.

Einfache Rollen

Einfache Rollen gelten für alle Dienste und Ressourcen in einem Projekt. Wenn einem Konto z. B. die Rolle „Bearbeiter“ zugewiesen ist, können mit diesem Konto sowohl die App Engine-Einstellungen als auch die Cloud Storage-Einstellungen geändert werden.

Rolle Google Cloud Console-Berechtigungen Toolberechtigungen
Owner Erforderlich zum Erstellen von App Engine-Anwendungen; alle Betrachter- und Bearbeiterberechtigungen sowie die Möglichkeit, bereitgestellten Quellcode anzusehen, Nutzer einzuladen, Nutzerrollen zu ändern und eine Anwendung zu löschen Erforderlich zum Erstellen von App Engine-Anwendungen; kann auch Anwendungscode bereitstellen und alle Konfigurationen aktualisieren
Editor Anwendungsdaten ansehen und Anwendungseinstellungen bearbeiten Anwendungscode bereitstellen, Indexe/Warteschlangen/Cronjobs aktualisieren
Viewer Anwendungsdaten ansehen Logs anfordern

Vordefinierte App Engine-Rollen

Role Permissions

(roles/appengine.appAdmin)

Read/Write/Modify access to all application configuration and settings.

To deploy new versions, a principal must have the Service Account User (roles/iam.serviceAccountUser) role on the assigned App Engine service account, and the Cloud Build Editor (roles/cloudbuild.builds.editor), and Cloud Storage Object Admin (roles/storage.objectAdmin) roles on the project.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.get

appengine.applications.listRuntimes

appengine.applications.update

appengine.instances.*

  • appengine.instances.delete
  • appengine.instances.enableDebug
  • appengine.instances.get
  • appengine.instances.list

appengine.memcache.addKey

appengine.memcache.flush

appengine.memcache.get

appengine.memcache.update

appengine.operations.*

  • appengine.operations.get
  • appengine.operations.list

appengine.runtimes.actAsAdmin

appengine.services.*

  • appengine.services.delete
  • appengine.services.get
  • appengine.services.list
  • appengine.services.update

appengine.versions.create

appengine.versions.delete

appengine.versions.get

appengine.versions.list

appengine.versions.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.appCreator)

Ability to create the App Engine resource for the project.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.create

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.appViewer)

Read-only access to all application configuration and settings.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.get

appengine.applications.listRuntimes

appengine.instances.get

appengine.instances.list

appengine.operations.*

  • appengine.operations.get
  • appengine.operations.list

appengine.services.get

appengine.services.list

appengine.versions.get

appengine.versions.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.codeViewer)

Read-only access to all application configuration, settings, and deployed source code.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.get

appengine.applications.listRuntimes

appengine.instances.get

appengine.instances.list

appengine.operations.*

  • appengine.operations.get
  • appengine.operations.list

appengine.services.get

appengine.services.list

appengine.versions.get

appengine.versions.getFileContents

appengine.versions.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.debugger)

Ability to read or manage v2 instances.

appengine.applications.get

appengine.applications.listRuntimes

appengine.instances.*

  • appengine.instances.delete
  • appengine.instances.enableDebug
  • appengine.instances.get
  • appengine.instances.list

appengine.operations.*

  • appengine.operations.get
  • appengine.operations.list

appengine.services.get

appengine.services.list

appengine.versions.get

appengine.versions.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.deployer)

Read-only access to all application configuration and settings.

To deploy new versions, you must also have the Service Account User (roles/iam.serviceAccountUser) role on the assigned App Engine service account, and the Cloud Build Editor (roles/cloudbuild.builds.editor), and Cloud Storage Object Admin (roles/storage.objectAdmin) roles on the project.

Cannot modify existing versions other than deleting versions that are not receiving traffic.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.get

appengine.applications.listRuntimes

appengine.instances.get

appengine.instances.list

appengine.operations.*

  • appengine.operations.get
  • appengine.operations.list

appengine.services.get

appengine.services.list

appengine.versions.create

appengine.versions.delete

appengine.versions.get

appengine.versions.list

artifactregistry.repositories.deleteArtifacts

artifactregistry.repositories.downloadArtifacts

artifactregistry.repositories.uploadArtifacts

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.memcacheDataAdmin)

Can get, set, delete, and flush App Engine Memcache items.

appengine.applications.get

appengine.memcache.addKey

appengine.memcache.flush

appengine.memcache.get

appengine.memcache.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.serviceAdmin)

Read-only access to all application configuration and settings.

Write access to module-level and version-level settings. Cannot deploy a new version.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.get

appengine.applications.listRuntimes

appengine.instances.delete

appengine.instances.get

appengine.instances.list

appengine.operations.*

  • appengine.operations.get
  • appengine.operations.list

appengine.services.*

  • appengine.services.delete
  • appengine.services.get
  • appengine.services.list
  • appengine.services.update

appengine.versions.delete

appengine.versions.get

appengine.versions.list

appengine.versions.update

resourcemanager.projects.get

resourcemanager.projects.list

Die vordefinierten Rollen für App Engine bieten Ihnen detaillierte Optionen für die Zugriffssteuerung.

Diese Rollen ermöglichen nur den Zugriff auf App Engine. Wenn Ihr Projekt andere Dienste wie Cloud Storage oder Cloud SQL einschließt, müssen Sie zusätzliche Rollen zuweisen, um den Zugriff auf die anderen Dienste zu ermöglichen.

Vordefinierte Rollen für App Engine im Vergleich

Die folgende Tabelle enthält einen vollständigen Vergleich der Rechte aller vordefinierten App Engine-Rollen.

Rechte App Engine-Administrator App Engine-Dienstadministrator App Engine-Bereitsteller App Engine-Betrachter App Engine-Codebetrachter
Alle Dienste, Versionen und Instanzen auflisten Ja Ja Ja Ja Ja
Alle Einstellungen für Anwendungen, Dienste, Versionen und Instanzen ansehen Ja Ja Ja Ja Ja
Laufzeitmesswerte wie Ressourcennutzung, Last- und Fehlerdaten ansehen Ja Ja Ja Ja Ja
Anwendungsquellcode ansehen Nein Nein Nein Nein Ja
Neue Anwendungsversion bereitstellen Ja, wenn Sie auch die Rolle „Dienstkontonutzer“ zuweisen Nein Ja, wenn Sie auch die Rolle „Dienstkontonutzer“ zuweisen Nein Nein
Traffic aufteilen oder migrieren Ja Ja Nein*** Nein Nein
Version starten und beenden Ja Ja Nein Nein Nein
Version löschen Ja Ja Ja Nein Nein
Gesamten Dienst löschen Ja Ja Nein Nein Nein
SSH-Verbindung zu VM-Instanz in der flexiblen Umgebung herstellen Ja Nein Nein Nein Nein
Instanz herunterfahren Ja Nein Nein Nein Nein
App Engine-Anwendung deaktivieren und wieder aktivieren Ja Nein Nein Nein Nein
Auf Handler mit der Beschränkung „login:admin“ zugreifen (nur Laufzeiten der ersten Generation) Ja Nein Nein Nein Nein
Weiterleitungsregeln aktualisieren Ja Nein Nein Nein Nein
DoS-Einstellungen aktualisieren Ja Nein Nein Nein Nein
Cronjob-Zeitpläne aktualisieren Nein Nein Nein Nein Nein
Standardablauffrist für Cookies aktualisieren Ja Nein Nein Nein Nein
Verweis-URLs aktualisieren Ja Nein Nein Nein Nein
Autorisierte Sender für Email API aktualisieren Ja Nein Nein Nein Nein

Ausführliche Informationen zu den spezifischen IAM-Berechtigungen, die durch die einzelnen Rollen gewährt werden, finden Sie auf der Seite "Zugriff in der Admin API steuern" im Abschnitt Rollen.

Einem Konto, das nur für die Bereitstellung neuer Versionen einer Anwendung zuständig ist, sollten Sie die folgenden Rollen zuweisen:

  • Rolle „App Engine-Bereitsteller“ (roles/appengine.deployer)
  • Rolle „Dienstkontonutzer“ (roles/iam.serviceAccountUser)

    Die Nutzerrolle „Dienstkontonutzer“ ermöglicht es dem Konto, die Identität des App Engine-Standarddienstkontos für den Bereitstellungsprozess zu übernehmen.

  • Wenn das Konto gcloud-Befehle für die Bereitstellung nutzt, fügen Sie außerdem diese Rollen hinzu:

    • Storage-Objekt-Administrator (roles/storage.objectAdmin)
    • Cloud-Build-Bearbeiter (roles/cloudbuild.builds.editor)

Weitere Informationen zum Gewähren der erforderlichen Berechtigungen finden Sie unter Erstellen eines Nutzerkontos.

Trennung der Aufgaben von Bereitstellung und Trafficweiterleitung

Viele Organisationen ziehen es vor, die Aufgabe der Bereitstellung einer Anwendungsversion von der Aufgabe zu trennen, die den Traffic auf die neu erstellte Version ausweitet, und diese Aufgaben von verschiedenen Stellen durchführen zu lassen. Die Rollen „App Engine-Bereitsteller“ und „App Engine-Dienstadministrator“ ermöglichen diese Trennung:

  • Mit den Rollen „App Engine-Bereitsteller“ und „Dienstkontonutzer“ haben Konten nur die Möglichkeit, neue Versionen bereitzustellen und alte Versionen zu löschen, die keinen Traffic verarbeiten. Ein Konto mit diesen Rollen kann keinen Traffic für eine Version konfigurieren und keine Einstellungen auf Anwendungsebene ändern, z. B. Weiterleitungsregeln oder Authentifizierungsdomains.
  • Rolle „App Engine-Dienstadministrator“: Konten können weder eine neue Anwendungsversion bereitstellen noch Einstellungen auf Anwendungsebene ändern. Diese Konten haben jedoch Berechtigungen zum Ändern der Attribute vorhandener Dienste und Versionen, einschließlich der Festlegung, welche Versionen Traffic verarbeiten können. Die Rolle „App Engine-Dienstadministrator“ ist ideal für eine Betriebs-/IT-Abteilung, die für die Erhöhung des Traffics zu neu bereitgestellten Versionen zuständig ist.

Einschränkungen der vordefinierten Rollen

Mit vordefinierten App Engine-Rollen ist Folgendes nicht möglich:

  • Anwendungslogs ansehen und herunterladen
  • Monitoring-Diagramme in der Google Cloud Console ansehen
  • Abrechnung aktivieren und deaktivieren
  • Sicherheitsscans in Cloud Security Scanner ausführen
  • Auf Konfigurationen oder Daten zugreifen, die in Datastore, Aufgabenwarteschlangen, Cloud Search oder anderen Cloud Platform-Speicherprodukten gespeichert sind