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 | Berechtigungen in der Console | 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 | Berechtigungen |
---|---|
App Engine-Administrator( Berechtigung zum Lesen/Schreiben/Ändern für die gesamte Anwendungskonfiguration und die Einstellungen Um neue Versionen bereitstellen zu können, muss ein Hauptkonto die Rolle Dienstkontonutzer ( Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
|
appengine.applications.get appengine.applications.update appengine.instances.*
appengine.memcache.addKey appengine.memcache.flush appengine.memcache.get appengine.memcache.update appengine.operations.*
appengine.runtimes.actAsAdmin appengine.services.*
appengine.versions.create appengine.versions.delete appengine.versions.get appengine.versions.list appengine.versions.update resourcemanager.projects.get resourcemanager.projects.list |
App Engine-Ersteller( Fähigkeit zur Erstellung der App Engine-Ressource für das Projekt. Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
Enthält 1 Inhaberberechtigung |
manage_accounts appengine.applications.create resourcemanager.projects.get resourcemanager.projects.list |
App Engine-Betrachter( Schreibgeschützter Zugriff auf die gesamte Anwendungskonfiguration und die Einstellungen Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
|
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 |
App Engine-Codebetrachter( Lesezugriff auf die gesamte Anwendungskonfiguration, die Einstellungen und den bereitgestellten Quellcode Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
Enthält 1 Inhaberberechtigung |
appengine.applications.get appengine.instances.get appengine.instances.list appengine.operations.*
appengine.services.get appengine.services.list appengine.versions.get
manage_accounts
appengine. appengine.versions.list resourcemanager.projects.get resourcemanager.projects.list |
App Engine-Fehlerbehebungszugriff auf verwaltete VMs( Kann v2-Instanzen lesen oder verwalten |
appengine.applications.get appengine.instances.*
appengine.operations.*
appengine.services.get appengine.services.list appengine.versions.get appengine.versions.list resourcemanager.projects.get resourcemanager.projects.list |
App Engine-Bereitsteller( Schreibgeschützter Zugriff auf die gesamte Anwendungskonfiguration und die Einstellungen Zum Bereitstellen neuer Versionen benötigen Sie außerdem die Rolle Dienstkontonutzer ( Sie können vorhandene Versionen nicht bearbeiten, sondern nur Versionen löschen, die keinen Traffic empfangen. Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
|
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 |
Administrator von App Engine Memcache-Daten( Kann App Engine Memcache-Elemente abrufen, festlegen, löschen und leeren. |
appengine.applications.get appengine.memcache.addKey appengine.memcache.flush appengine.memcache.get appengine.memcache.update resourcemanager.projects.get resourcemanager.projects.list |
App Engine-Dienstadministrator( Schreibgeschützter Zugriff auf die gesamte Anwendungskonfiguration und die Einstellungen Schreibberechtigung für Einstellungen auf Modul- und Versionsebene Kann keine neue Version bereitstellen. Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:
|
appengine.applications.get appengine.instances.delete appengine.instances.get appengine.instances.list appengine.operations.*
appengine.services.*
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 nutzen soll, müssen Sie zusätzliche Rollen zuweisen, um den Zugriff auf diese 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.
Empfohlene Rolle für die Anwendungsbereitstellung
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 oder andere App Engine-Tools für die Bereitstellung verwendet, fügen Sie außerdem diese Rollen hinzu:- Storage-Objekt-Administrator (
roles/storage.objectAdmin
) - Cloud-Build-Bearbeiter (
roles/cloudbuild.builds.editor
)
- Storage-Objekt-Administrator (
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 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