Identitäts- und Zugriffsverwaltung

Google Cloud bietet mit der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) die Möglichkeit, bestimmten Google Cloud-Ressourcen detaillierte Zugriffsrechte zuzuweisen und den unerwünschten Zugriff auf andere Ressourcen zu verhindern. Auf dieser Seite werden die IAM-Rollen für Firestore im Datastore-Modus beschrieben. Eine genaue Beschreibung von IAM finden Sie in der IAM-Dokumentation.

Mit IAM können Sie außerdem das Sicherheitsprinzip der geringsten Berechtigung anwenden und somit nur den erforderlichen Zugriff auf Ihre Ressourcen gewähren.

Mit IAM steuern Sie, welche Nutzer welche Rollen haben und somit berechtigt sind, auf bestimmte Ressourcen zuzugreifen, indem Sie IAM-Richtlinien festlegen. IAM-Richtlinien gewähren einem Nutzer bestimmte Rollen und dadurch bestimmte Berechtigungen. Sie können einem Nutzer beispielsweise die Rolle datastore.indexAdmin zuweisen und der Nutzer kann dadurch Indexe erstellen, ändern, löschen, auflisten oder aufrufen.

Berechtigungen und Rollen

In diesem Abschnitt werden die Berechtigungen und Rollen zusammengefasst, die Firestore im Datastore-Modus unterstützt.

Berechtigungen

In der folgenden Tabelle werden die Berechtigungen aufgeführt, die Firestore im Datastore-Modus unterstützt.

Name der Datenbankberechtigung Beschreibung
datastore.databases.export Entitäten aus einer Datenbank exportieren.
datastore.databases.get Transaktion beginnen oder Rollback der Transaktion durchführen.
datastore.databases.import Entitäten in eine Datenbank importieren.
datastore.databases.getMetadata Metadaten aus einer Datenbank lesen.
datastore.databases.list Datenbanken in einem Projekt auflisten.
datastore.databases.create Datenbank erstellen
datastore.databases.update Datenbank aktualisieren.
datastore.databases.delete Datenbank löschen.
datastore.databases.createTagBinding Erstellen Sie eine Tag-Bindung für eine Datenbank.
datastore.databases.deleteTagBinding Tag-Bindung für eine Datenbank löschen.
datastore.databases.listTagBindings Alle Tag-Bindungen für eine Datenbank auflisten.
datastore.databases.listEffectiveTagBindings Gültige Tag-Bindungen für eine Datenbank auflisten.
Name der Entitätsberechtigung Beschreibung
datastore.entities.allocateIds IDs für Schlüssel mit unvollständigem Schlüsselpfad zuordnen.
datastore.entities.create Entität erstellen.
datastore.entities.delete Entität löschen.
datastore.entities.get Entität lesen.
datastore.entities.list Schlüssel der Entitäten in einem Projekt auflisten.
(datastore.entities.get ist für den Zugriff auf die Entitätsdaten erforderlich.)
datastore.entities.update Entität aktualisieren.
Name der Indexberechtigung Beschreibung
datastore.indexes.create Index erstellen.
datastore.indexes.delete Index löschen.
datastore.indexes.get Metadaten aus einem Index lesen.
datastore.indexes.list Indexe in einem Projekt auflisten.
datastore.indexes.update Index aktualisieren.
Name der Namespace-Berechtigung Beschreibung
datastore.namespaces.get Metadaten aus einem Namespace abrufen.
datastore.namespaces.list Namespaces in einem Projekt auflisten.
Name der Vorgangsberechtigung Beschreibung
datastore.operations.cancel Einen lange laufenden Vorgang abbrechen.
datastore.operations.delete Einen lange laufenden Vorgang löschen.
datastore.operations.get Ruft den letzten Status eines lange laufende Vorgangs ab.
datastore.operations.list Lange laufende Vorgänge auflisten.
Name der Projektberechtigung Beschreibung
resourcemanager.projects.get Ressourcen im Projekt durchsuchen.
resourcemanager.projects.list Eigene Projekte auflisten.
Name der Statistikberechtigung Beschreibung
datastore.statistics.get Statistikentitäten abrufen.
datastore.statistics.list Schlüssel der Statistikentitäten auflisten.
(datastore.statistics.get ist für den Zugriff auf die Entitätsdaten erforderlich.)
Name der App Engine-Berechtigung Beschreibung
appengine.applications.get Lesezugriff auf die gesamte App Engine-Anwendungskonfiguration und die Einstellungen.
Name der Standortberechtigung Beschreibung
datastore.locations.get Rufen Sie Details zu einem Datenbankspeicherort ab. Dies ist erforderlich zum Erstellen einer neuen Datenbank.
datastore.locations.list Listen Sie die verfügbaren Datenbankspeicherorte auf. Dies ist erforderlich zum Erstellen einer neuen Datenbank.
Name der Berechtigung in Key Visualizer Beschreibung
datastore.keyVisualizerScans.get Weitere Informationen zu Key Visualizer-Scans.
datastore.keyVisualizerScans.list Listet verfügbare Key Visualizer-Scans auf.
Name der Berechtigung für den Sicherungszeitplan Beschreibung
datastore.backupSchedules.get Details zum Zeitplan für die Sicherung
datastore.backupSchedules.list Listen Sie die verfügbaren Sicherungszeitpläne auf.
datastore.backupSchedules.create Erstellen Sie einen Sicherungszeitplan.
datastore.backupSchedules.update Aktualisieren Sie einen Zeitplan für die Sicherung.
datastore.backupSchedules.delete Löschen Sie einen Sicherungszeitplan.
Name der Sicherungsberechtigung Beschreibung
datastore.backups.get Details zu einer Sicherung abrufen
datastore.backups.list Listet verfügbare Sicherungen auf.
datastore.backups.delete Eine Sicherung löschen.
datastore.backups.restoreDatabase Datenbank aus einer Sicherung wiederherstellen.

Vordefinierte Rollen

In IAM wird für jede Datastore API-Methode vorausgesetzt, dass das Konto, von dem die API-Anfrage ausgeht, die entsprechenden Berechtigungen zur Verwendung der Ressource hat. Berechtigungen werden durch die Festlegung von Richtlinien gewährt, die wiederum einem Nutzer, einer Gruppe oder einem Dienstkonto Rollen zuweist. Zusätzlich zu den einfachen Rollen Inhaber, Bearbeiter und Betrachter können Sie den Nutzern Ihres Projekts für Firestore im Datastore-Modus Rollen zuweisen.

In der folgenden Tabelle werden die IAM-Rollen von Firestore im Datastore-Modus aufgeführt. Sie können einem Nutzer, einer Gruppe oder einem Dienstkonto mehrere Rollen zuweisen.

Rolle Berechtigungen Beschreibung
roles/datastore.owner appengine.applications.get
datastore.*
resourcemanager.projects.get
resourcemanager.projects.list
Vollständiger Zugriff auf die Datenbankinstanz.
Weisen Sie dem Hauptkonto die Rolle appengine.appAdmin für den Datenspeicher-Administrator zu.
roles/datastore.user appengine.applications.get
datastore.databases.get
datastore.databases.getMetadata
datastore.databases.list
datastore.entities.*
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list
resourcemanager.projects.get
resourcemanager.projects.list
Lese-/Schreibzugriff auf Daten in einer Datenbank im Datastore-Modus. Für Anwendungsentwickler und Dienstkonten bestimmt.
roles/datastore.viewer appengine.applications.get
datastore.databases.get
datastore.databases.getMetadata
datastore.databases.list
datastore.entities.get
datastore.entities.list
datastore.indexes.get
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list
resourcemanager.projects.get
resourcemanager.projects.list
Lesezugriff auf alle Ressourcen der Datenbank im Datastore-Modus.
roles/datastore.importExportAdmin appengine.applications.get
datastore.databases.export
datastore.databases.getMetadata
datastore.databases.import
datastore.operations.cancel
datastore.operations.get
datastore.operations.list
resourcemanager.projects.get
resourcemanager.projects.list
Vollzugriff für die Verwaltung von Importen und Exporten.
roles/datastore.indexAdmin appengine.applications.get
datastore.databases.getMetadata
datastore.indexes.*
resourcemanager.projects.get
resourcemanager.projects.list
Vollzugriff zurVerwaltung von Indexdefinitionen.
roles/datastore.keyVisualizerViewer datastore.databases.getMetadata
datastore.keyVisualizerScans.get
datastore.keyVisualizerScans.list
resourcemanager.projects.get
resourcemanager.projects.list
Vollständiger Zugriff auf Key Visualizer-Scans.
roles/datastore.backupSchedulesViewer datastore.backupSchedules.get
datastore.backupSchedules.list
Lesezugriff auf Sicherungspläne in einer Datenbank im Datastore-Modus.
roles/datastore.backupSchedulesAdmin datastore.backupSchedules.get
datastore.backupSchedules.list
datastore.backupSchedules.create
datastore.backupSchedules.update
datastore.backupSchedules.delete
datastore.databases.list
datastore.databases.getMetadata
Vollständiger Zugriff auf Sicherungspläne in einer Datenbank im Datastore-Modus.
roles/datastore.backupsViewer datastore.backups.get
datastore.backups.list
Lesezugriff auf Sicherungsinformationen an einem Standort im Datastore-Modus.
roles/datastore.backupsAdmin datastore.backups.get
datastore.backups.list
datastore.backups.delete
Vollständiger Zugriff auf Sicherungen an einem Standort im Datastore-Modus.
roles/datastore.restoreAdmin datastore.backups.get
datastore.backups.list
datastore.backups.restoreDatabase
datastore.databases.list
datastore.databases.create
datastore.databases.getMetadata
datastore.operations.list
datastore.operations.get
Eine Sicherung im Datastore-Modus kann in einer neuen Datenbank wiederhergestellt werden. Mit dieser Rolle können auch neue Datenbanken erstellt werden, nicht unbedingt durch Wiederherstellung aus einer Sicherung.

Benutzerdefinierte Rollen

Wenn die vordefinierten Rollen für Ihre geschäftlichen Anforderungen nicht ausreichen, können Sie eigene benutzerdefinierte Rollen mit selbst definierten Berechtigungen festlegen.

Erforderliche Berechtigungen für API-Methoden

In der folgenden Tabelle sind die Berechtigungen aufgelistet, die der Abfragende haben muss, um eine bestimmte Methode aufzurufen:

Methode Erforderliche Berechtigung(en)
allocateIds datastore.entities.allocateIds
beginTransaction datastore.databases.get
commit für Insert-Vorgang datastore.entities.create
commit für Upsert-Vorgang datastore.entities.create
datastore.entities.update
commit für Update-Vorgang datastore.entities.update
commit für Delete-Vorgang datastore.entities.delete
commit für Lookup-Vorgang datastore.entities.get

Informationen zum Nachschlagen von Metadaten oder Statistiken finden Sie unter Erforderliche Berechtigungen für Metadaten und Statistiken.
commit für eine Abfrage datastore.entities.list
datastore.entities.get (wenn die Abfrage keine ausschließlich schlüsselbasierte Abfrage ist)

Informationen zum Abfragen von Metadaten oder Statistiken finden Sie unter Erforderliche Berechtigungen für Metadaten und Statistiken.
lookup datastore.entities.get

Informationen zum Nachschlagen von Metadaten oder Statistiken finden Sie unter Erforderliche Berechtigungen für Metadaten und Statistiken.
rollback datastore.databases.get
runQuery datastore.entities.list
datastore.entities.get (wenn die Abfrage keine ausschließlich schlüsselbasierte Abfrage ist)

Informationen zum Abfragen von Metadaten oder Statistiken finden Sie unter Erforderliche Berechtigungen für Metadaten und Statistiken.
runQuery durch eine typlose Abfrage datastore.entities.get
datastore.entities.list
datastore.statistics.get
datastore.statistics.list

Erforderliche Berechtigungen für Metadaten und Statistiken

In der folgenden Tabelle werden die Berechtigungen aufgeführt, die zum Aufrufen der Methoden für Metadaten und Statistiken benötigt werden.

Methode Erforderliche Berechtigung(en)
lookup von Entitäten mit Artnamen, die mit __Stat_*__ übereinstimmen datastore.statistics.get
runQuery unter Verwendung von Arten mit Namen, die mit __Stat_*__ übereinstimmen datastore.statistics.get
datastore.statistics.list
runQuery unter Verwendung der Art __namespace__ datastore.namespaces.get
datastore.namespaces.list

Erforderliche Rollen zum Erstellen einer Datenbankinstanz im Datastore-Modus

Zum Erstellen einer neuen Datenbankinstanz im Datastore-Modus benötigen Sie entweder die Rolle Inhaber oder die Rolle Datastore-Inhaber.

Datenbanken im Datastore-Modus erfordern eine aktive App Engine-Anwendung. Wenn im Projekt keine Anwendung vorhanden ist, erstellt Firestore im Datastore-Modus eine Anwendung für Sie. In diesem Fall ist die Berechtigung appengine.applications.create der Inhaber-Rolle oder eine benutzerdefinierte IAM-Rolle mit dieser Berechtigung erforderlich.

Latenz der Rollenänderung

Firestore im Datastore-Modus speichert die IAM-Berechtigungen für fünf Minuten im Cache, sodass es bis zu fünf Minuten dauern kann, bis eine Rollenänderung wirksam wird.

IAM verwalten

Sie können IAM-Richtlinien mit der Google Cloud Console, den IAM-Methoden oder der Google Cloud CLI abrufen und festlegen.

Berechtigungen für bedingten Zugriff konfigurieren

Mit IAM-Bedingungen können Sie die bedingte Zugriffssteuerung definieren und erzwingen.

Die folgende Bedingung weist einem Hauptkonto beispielsweise die Rolle datastore.user bis zu einem bestimmten Datum zu:

{
  "role": "roles/datastore.user",
  "members": [
    "user:travis@example.com"
  ],
  "condition": {
    "title": "Expires_December_1_2023",
    "description": "Expires on December 1, 2023",
    "expression":
      "request.time < timestamp('2023-12-01T00:00:00.000Z')"
  }
}

Informationen zum Definieren von IAM-Bedingungen für temporären Zugriff finden Sie unter Vorübergehenden Zugriff konfigurieren.

Informationen zum Konfigurieren von IAM-Bedingungen für den Zugriff auf eine oder mehrere Datenbanken finden Sie unter Bedingungen für den Datenbankzugriff konfigurieren.

Nächste Schritte