Identity and Access Management (IAM)

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 starten oder Rollback der Transaktion durchführen.
Führen Sie mit leeren Mutationen einen Commit durch.
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 Löschen Sie eine Tag-Bindung für eine Datenbank.
datastore.databases.listTagBindings Listen Sie alle Tag-Bindungen für eine Datenbank auf.
datastore.databases.listEffectiveTagBindings Aktive 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 Details zu Key Visualizer-Scans abrufen.
datastore.keyVisualizerScans.list Listet verfügbare Key Visualizer-Scans auf.
Name der Berechtigung für den Sicherungszeitplan Beschreibung
datastore.backupSchedules.get Details zu einem Sicherungszeitplan abrufen.
datastore.backupSchedules.list Listen Sie die verfügbaren Sicherungszeitpläne auf.
datastore.backupSchedules.create Erstellen Sie einen Zeitplan für die Sicherung.
datastore.backupSchedules.update Aktualisieren Sie einen Zeitplan für die Sicherung.
datastore.backupSchedules.delete Löschen Sie einen Zeitplan für die Sicherung.
Name der Sicherungsberechtigung Beschreibung
datastore.backups.get Informationen zu einer Sicherung abrufen.
datastore.backups.list Listen Sie die verfügbaren 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.
Gewähren Sie dem Hauptkonto für Datenspeicheradministrator-Zugriff die Rolle appengine.appAdmin.
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 Sicherungszeitplä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 Sicherungszeitplä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 Speicherort 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
Möglichkeit, eine Sicherung im Datastore-Modus in einer neuen Datenbank wiederherzustellen. Diese Rolle gibt auch die Möglichkeit, neue Datenbanken zu erstellen, 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 Berechtigungen
allocateIds datastore.entities.allocateIds
beginTransaction datastore.databases.get
commit mit leeren Mutationen 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 über die Google Cloud Console, die IAM-Methoden oder die Google Cloud CLI abrufen und festlegen.

Berechtigungen für den bedingten Zugriff konfigurieren

Sie können IAM-Bedingungen verwenden, um die bedingte Zugriffssteuerung zu definieren und durchzusetzen.

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-Bedingungen für den Zugriff auf eine oder mehrere Datenbanken finden Sie unter Bedingungen für den Datenbankzugriff konfigurieren.

Nächste Schritte