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 Google 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 |
---|---|
App Engine Admin( Read/Write/Modify access to all application configuration and settings. To deploy new versions, a principal must have the
Service Account User
( Lowest-level resources where you can grant this role:
|
|
App Engine Creator( Ability to create the App Engine resource for the project. Lowest-level resources where you can grant this role:
|
|
App Engine Viewer( Read-only access to all application configuration and settings. Lowest-level resources where you can grant this role:
|
|
App Engine Code Viewer( Read-only access to all application configuration, settings, and deployed source code. Lowest-level resources where you can grant this role:
|
|
App Engine Managed VM Debug Access( Ability to read or manage v2 instances. |
|
App Engine Deployer( Read-only access to all application configuration and settings. To deploy new versions, you must also have the
Service Account User
( Cannot modify existing versions other than deleting versions that are not receiving traffic. Lowest-level resources where you can grant this role:
|
|
App Engine Memcache Data Admin( Can get, set, delete, and flush App Engine Memcache items. |
|
App Engine Service Admin( 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:
|
|
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.
Capability | 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 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
)
- Storage-Objekt-Administrator (
Für den Zugriff auf Daten, die in Datastore gespeichert sind, oder für das Aktualisieren von Indexen, aktivieren Sie die Rolle "Cloud Datastore-Index-Administrator" (
roles/datastore.indexAdmin
).
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