Identity and Access Management (IAM)

Zugriff auf Ressourcen mit Identity and Access Management (IAM) verwalten Mit IAM können Sie detaillierteren Zugriff auf bestimmte Google Cloud-Ressourcen gewähren und unerwünschten Zugriff auf andere Ressourcen verhindern. Auf dieser Seite werden die IAM-Berechtigungen und -Rollen für Firestore beschrieben. Eine ausführliche Beschreibung von IAM finden Sie in der IAM-Dokumentation.

Durch IAM haben Sie die Möglichkeit, das Prinzip der geringsten Berechtigung anzuwenden und somit nur den notwendigen Zugriff auf Ihre Ressourcen zu gewähren.

Durch das Festlegen von IAM-Richtlinien können Sie steuern, wer (Nutzer) welche (Rolle) Berechtigungen für welche Ressourcen hat. IAM-Richtlinien gewähren einem Nutzer eine oder mehrere Rollen und dadurch bestimmte Berechtigungen. Sie können beispielsweise einem Nutzer die Rolle datastore.indexAdmin zuweisen, wodurch der Nutzer Indexe erstellen, ändern, löschen, auflisten oder ansehen kann.

Berechtigungen und Rollen

In diesem Abschnitt werden die Berechtigungen und Rollen zusammengefasst, die von Firestore unterstützt werden.

Erforderliche Berechtigungen für API-Methoden

In der folgenden Tabelle sind die Berechtigungen aufgeführt, die der Aufrufer zur Ausführung der einzelnen Aktionen benötigt:

Methode Erforderliche Berechtigungen
projects.databases.MongoDBCompatible
ListDatabases datastore.databases.getMetadata
ListIndexes datastore.indexes.list
Find datastore.entities.get
datastore.entities.list
Aggregate datastore.entities.get
datastore.entities.list
GetMore

Dieselben Berechtigungen, die für den Aufruf erforderlich waren, mit dem der Cursor erstellt wurde.

ListCollections datastore.entities.list
Count datastore.entities.list
Distinct datastore.entities.get
datastore.entities.list
CommitTransaction datastore.databases.get
AbortTransaction datastore.databases.get
EndSessions datastore.databases.get
KillCursors datastore.databases.get
Insert datastore.entities.create
Update datastore.entities.get
datastore.entities.list
datastore.entities.update
datastore.entities.create (nur für Upsert)
FindAndModify datastore.entities.get
datastore.entities.list
datastore.entities.update (nur für „Ersetzen“ oder „Aktualisieren“)
datastore.entities.create (nur für „Upsert“)
datastore.entities.delete (nur für „Löschen“)
CreateCollection datastore.entities.create
projects.databases.indexes
create datastore.indexes.create
delete datastore.indexes.delete
get datastore.indexes.get
list datastore.indexes.list
projects.databases
create datastore.databases.create
delete datastore.databases.delete
get datastore.databases.getMetadata
list datastore.databases.list
patch datastore.databases.update
Wiederherstellen datastore.backups.restoreDatabase
projects.locations
get datastore.locations.get
list datastore.locations.list
projects.databases.backupschedules
get datastore.backupSchedules.get
list datastore.backupSchedules.list
create datastore.backupSchedules.create
update datastore.backupSchedules.update
delete datastore.backupSchedules.delete
projects.locations.backups
get datastore.backups.get
list datastore.backups.list
delete datastore.backups.delete
projects.databases.usercreds
get datastore.userCreds.get
list datastore.userCreds.list
create datastore.userCreds.create
enable datastore.userCreds.update
disable datastore.userCreds.update
resetPassword datastore.userCreds.update
delete datastore.userCreds.delete

Vordefinierte Rollen

Bei IAM erfordert jede API-Methode in Firestore, dass das Konto, das die API-Anfrage durchführt, 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 Firestore-Rollen zuweisen.

In der folgenden Tabelle sind die Firestore-IAM-Rollen 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
Vollzugriff auf Firestore.
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- und Schreibzugriff auf Daten in einer Firestore-Datenbank. 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 Firestore-Ressourcen.
roles/datastore.indexAdmin appengine.applications.get

datastore.databases.getMetadata

datastore.indexes.*

resourcemanager.projects.get
resourcemanager.projects.list
Vollzugriff zurVerwaltung von Indexdefinitionen.
roles/datastore.backupSchedulesViewer datastore.backupSchedules.get
datastore.backupSchedules.list
Lesezugriff auf Zeitpläne für Sicherungen in einer Firestore-Datenbank.
roles/datastore.backupSchedulesAdmin datastore.backupSchedules.get
datastore.backupSchedules.list
datastore.backupSchedules.create
datastore.backupSchedules.update
datastore.backupSchedules.delete
datastore.databases.list
datastore.databases.getMetadata
Vollzugriff auf Zeitpläne für Sicherungen in einer Firestore-Datenbank.
roles/datastore.backupsViewer datastore.backups.get
datastore.backups.list
Lesezugriff auf Sicherungsinformationen an einem Firestore-Standort.
roles/datastore.backupsAdmin datastore.backups.get
datastore.backups.list
datastore.backups.delete
Vollständiger Zugriff auf Sicherungen an einem Firestore-Standort.
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
Möglichkeit, eine Firestore-Sicherung in einer neuen Datenbank wiederherzustellen Mit dieser Rolle können auch neue Datenbanken erstellt werden, nicht unbedingt durch das Wiederherstellen aus einer Sicherung.
roles/datastore.statisticsViewer resourcemanager.projects.get
resourcemanager.projects.list
datastore.databases.getMetadata
datastore.insights.get
datastore.keyVisualizerScans.get
datastore.keyVisualizerScans.list
datastore.statistics.list
datastore.statistics.get
Lesezugriff auf Insights, Statistiken und Key Visualizer-Scans.
roles/datastore.userCredsViewer datastore.userCreds.get
datastore.userCreds.list
Lesezugriff auf Nutzeranmeldedaten in einer Firestore-Datenbank.
roles/datastore.userCredsAdmin datastore.userCreds.get
datastore.userCreds.list
datastore.userCreds.create
datastore.userCreds.update
datastore.userCreds.delete
datastore.databases.list
datastore.databases.getMetadata
Vollzugriff auf Nutzeranmeldedaten in einer Firestore-Datenbank.

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 Rollen zum Erstellen und Verwalten von Tags

Wenn ein Tag in Erstellungs- oder Wiederherstellungsaktionen enthalten ist, sind bestimmte Rollen erforderlich. Weitere Informationen zum Erstellen von Tag-Schlüssel/Wert-Paaren, bevor Sie sie den Datenbankressourcen zuordnen, finden Sie unter Tags erstellen und verwalten.

Die folgenden Berechtigungen sind erforderlich.

Tags anzeigen
  • datastore.databases.listTagBindings
  • datastore.databases.listEffectiveTags
Tags für Ressourcen verwalten

Die folgende Berechtigung ist für die Datenbankressource erforderlich, an die Sie den Tag-Wert anhängen.

  • datastore.databases.createTagBinding

Berechtigungen

In der folgenden Tabelle sind die von Firestore unterstützten Berechtigungen aufgeführt.

Name der Datenbankberechtigung Beschreibung
datastore.databases.get Transaktion beginnen oder Rollback der Transaktion durchführen.
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 Tag-Bindung für eine Datenbank erstellen
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 Effektive Tag-Bindungen für eine Datenbank auflisten.
Name der Entitätsberechtigungen Beschreibung
datastore.entities.create Dokument erstellen.
datastore.entities.delete Dokument löschen.
datastore.entities.get Dokument lesen.
datastore.entities.list Namen der Dokumente in einem Projekt auflisten.
(datastore.entities.get ist für den Zugriff auf Dokumentdaten erforderlich.)
datastore.entities.update Dokument 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 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 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 Details zu Key Visualizer-Scans abrufen
datastore.keyVisualizerScans.list Listet die verfügbaren Key Visualizer-Scans auf.
Name der Berechtigung für den Sicherungszeitplan Beschreibung
datastore.backupSchedules.get Details zu einem Sicherungszeitplan abrufen.
datastore.backupSchedules.list Verfügbare Sicherungszeitpläne auflisten.
datastore.backupSchedules.create Erstellen Sie einen Sicherungszeitplan.
datastore.backupSchedules.update Einen Sicherungszeitplan aktualisieren.
datastore.backupSchedules.delete Sicherungszeitplan löschen
Name der Sicherungsberechtigung Beschreibung
datastore.backups.get Details zu einer Sicherung abrufen.
datastore.backups.list Verfügbare Sicherungen auflisten.
datastore.backups.delete Eine Sicherung löschen.
datastore.backups.restoreDatabase Datenbank aus einer Sicherung wiederherstellen.
Name der Berechtigung für Statistiken Beschreibung
datastore.insights.get Statistiken zu einer Ressource abrufen
Name der Berechtigung für Nutzeranmeldedaten Beschreibung
datastore.userCreds.get Details zu Nutzeranmeldedaten abrufen
datastore.userCreds.list Verfügbare Nutzeranmeldedaten auflisten.
datastore.userCreds.create Nutzeranmeldedaten erstellen
datastore.userCreds.update Nutzeranmeldedaten aktivieren oder deaktivieren oder ein Nutzerpasswort zurücksetzen
datastore.userCreds.delete Löschen Sie die Nutzeranmeldedaten.

Latenz der Rollenänderung

Firestore speichert IAM-Berechtigungen fünf Minuten lang im Cache. Es dauert also bis zu fünf Minuten, bis eine Rollenänderung wirksam wird.

Firestore-IAM verwalten

Sie können IAM-Richtlinien mithilfe der Google Cloud -Konsole, der IAM API oder des gcloud-Befehlszeilentools abrufen und festlegen. Weitere Informationen finden Sie unter Zugriff für Projektmitglieder zuweisen, ändern und widerrufen.

Berechtigungen für bedingten Zugriff konfigurieren

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

Mit der folgenden Bedingung wird einem Hauptkonto beispielsweise bis zu einem bestimmten Datum die Rolle datastore.user zugewiesen:

{
  "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 den temporären Zugriff finden Sie unter Temporären Zugriff konfigurieren.

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

Nächste Schritte