Node.js 12 ist jetzt allgemein verfügbar.

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 müsste außerdem 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 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

Rolle Titel Beschreibung Berechtigungen Niedrigste Ressource
roles/appengine.appAdmin App Engine-Administrator

Berechtigung zum Lesen/Schreiben/Ändern für die gesamte Anwendungskonfiguration und die Einstellungen

Zum Bereitstellen neuer Versionen müssen Sie auch die Rolle Dienstkontonutzer (roles/iam.serviceAccountUser) zuweisen.

Wenn Sie das gcloud-Tool zum Bereitstellen verwenden möchten, müssen Sie die Rollen „Storage-Administrator“ (roles/compute.storageAdmin) und „Cloud Build-Bearbeiter“ (roles/cloudbuild.builds.editor) hinzufügen.

  • appengine.applications.get
  • appengine.applications.update
  • appengine.instances.*
  • appengine.operations.*
  • appengine.runtimes.*
  • appengine.services.*
  • appengine.versions.create
  • appengine.versions.delete
  • appengine.versions.get
  • appengine.versions.list
  • appengine.versions.update
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projekt
roles/appengine.appCreator App Engine-Ersteller Fähigkeit zur Erstellung der App Engine-Ressource für das Projekt.
  • appengine.applications.create
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projekt
roles/appengine.appViewer App Engine-Betrachter Lesezugriff auf die gesamte Anwendungskonfiguration und die Einstellungen.
  • appengine.applications.get
  • appengine.instances.get
  • appengine.instances.list
  • appengine.operations.*
  • appengine.services.get
  • appengine.services.list
  • appengine.versions.get
  • appengine.versions.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projekt
roles/appengine.codeViewer Betrachter von App Engine-Code Lesezugriff auf die gesamte Anwendungskonfiguration, die Einstellungen und den bereitgestellten Quellcode.
  • appengine.applications.get
  • appengine.instances.get
  • appengine.instances.list
  • appengine.operations.*
  • appengine.services.get
  • appengine.services.list
  • appengine.versions.get
  • appengine.versions.getFileContents
  • appengine.versions.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projekt
roles/appengine.deployer App Engine-Bereitsteller

Lesezugriff auf die gesamte Anwendungskonfiguration und die Einstellungen

Zum Bereitstellen neuer Versionen müssen Sie auch die Rolle Dienstkontonutzer (roles/iam.serviceAccountUser) zuweisen.

Wenn Sie das gcloud-Tool zum Bereitstellen verwenden möchten, müssen Sie die Rollen „Storage-Administrator“ (roles/compute.storageAdmin) und „Cloud Build-Bearbeiter“ (roles/cloudbuild.builds.editor) hinzufügen.

Sie können vorhandene Versionen nicht bearbeiten, sondern nur Versionen löschen, die keinen Traffic empfangen.

  • appengine.applications.get
  • appengine.instances.get
  • appengine.instances.list
  • appengine.operations.*
  • appengine.services.get
  • appengine.services.list
  • appengine.versions.create
  • appengine.versions.delete
  • appengine.versions.get
  • appengine.versions.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projekt
roles/appengine.serviceAdmin App Engine-Dienstadministrator

Lesezugriff auf die gesamte Anwendungskonfiguration und die Einstellungen

Schreibberechtigung für Einstellungen auf Modul- und Versionsebene Kann keine neue Version bereitstellen.

  • appengine.applications.get
  • appengine.instances.*
  • appengine.operations.*
  • appengine.services.*
  • appengine.versions.delete
  • appengine.versions.get
  • appengine.versions.list
  • appengine.versions.update
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projekt

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 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 im Abschnitt Rollen der Admin API.

Bei einem Konto, das nur für die Bereitstellung neuer Versionen einer Anwendung verantwortlich ist, sollten Sie die folgenden Rollen zuweisen:

  • Rolle „App Engine-Bereitsteller“ (roles/appengine.deployer)
  • Rolle „Dienstkontonutzer“ (roles/iam.serviceAccountUser)
    Die Rolle Dienstkontonutzer ermöglicht dem Konto, die Identität des App Engine-Standarddienstkontos während des Bereitstellungsprozesses zu übernehmen.
  • Wenn das Konto gcloud-Befehle für die Bereitstellung verwendet, fügen Sie auch diese Rollen hinzu:

    • Storage-Administrator (roles/compute.storageAdmin)
    • Cloud Build-Bearbeiter (roles/cloudbuild.builds.editor)

Die Rolle „App Engine-Administrator“ kann auch Versionen bereitstellen, enthält jedoch zusätzliche Administratorberechtigungen. Zum Bereitstellen von Versionen benötigen Sie außerdem die Rolle „Dienstkontonutzer“ und für die Bereitstellung mit gcloud-Befehlen benötigen Sie auch die Rollen „Storage-Administrator“ und „Cloud-Build-Bearbeiter“.

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:

  • Rollen „App Engine-Bereitsteller“ und „Dienstkontonutzer“: Konten haben 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

Keine der vordefinierten App Engine-Rollen ermöglicht den Zugriff auf Folgendes:

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