IAM-Übersicht

Mit Identity and Access Management (IAM) können Sie den Nutzer- und Gruppenzugriff auf Spanner-Ressourcen für Projekte, Spanner-Instanzen und Spanner-Datenbanken steuern. Sie können beispielsweise angeben, dass ein Nutzer uneingeschränkten Zugriff auf eine bestimmte Datenbank in einer bestimmten Instanz in einem Projekt hat, jedoch keine Instanzen in dem Projekt erstellen, ändern oder löschen kann. Mit der Zugriffssteuerung mit IAM können Sie einem Nutzer oder einer Gruppe eine Berechtigung gewähren, ohne die Spanner-Instanz- oder Datenbankberechtigungen einzeln ändern zu müssen.

In diesem Dokument werden die für Spanner relevanten IAM-Berechtigungen und die IAM-Rollen beschrieben, die mit diesen Berechtigungen erteilt werden. Eine detaillierte Beschreibung zu IAM und seinen Funktionen finden Sie im Entwicklerhandbuch zur Identitäts- und Zugriffsverwaltung. Besonders im Abschnitt IAM-Richtlinien verwalten finden Sie relevante Informationen.

Berechtigungen

Berechtigungen erlauben es Nutzern, bestimmte Aktionen mit Spanner-Ressourcen durchzuführen. Die Berechtigung spanner.databases.read gestattet es Nutzern beispielsweise, mit der Lese-API von Spanner eine Datenbank auszulesen. Mit spanner.databases.select haben sie die Möglichkeit, die SQL-Anweisung „Select“ für Datenbanken auszuführen. Sie erteilen den Nutzern die Berechtigungen nicht direkt, sondern Sie weisen ihnen vordefinierte Rollen oder benutzerdefinierte Rollen zu, die eine oder mehrere Berechtigungen enthalten.

In den folgenden Tabellen werden die IAM-Berechtigungen im Zusammenhang mit Spanner aufgeführt.

Instanzkonfigurationen

Die folgenden Berechtigungen gelten für Spanner-Instanzkonfigurationen. Weitere Informationen finden Sie in den Referenzen zur Instanzkonfiguration für REST- und RPC-APIs.

Name der Berechtigung für Instanzkonfigurationen Beschreibung
spanner.instanceConfigs.create Erstellen Sie eine benutzerdefinierte Instanzkonfiguration.
spanner.instanceConfigs.delete Benutzerdefinierte Instanzkonfiguration löschen
spanner.instanceConfigs.get Instanzkonfiguration abrufen.
spanner.instanceConfigs.list Instanzkonfigurationen auflisten.
spanner.instanceConfigs.update Aktualisieren Sie eine benutzerdefinierte Instanzkonfiguration.

Vorgänge für die Instanzkonfiguration

Die folgenden Berechtigungen gelten für Vorgänge zur Konfiguration von Spanner-Instanzen. Weitere Informationen finden Sie in den Instanzreferenzen für REST- und RPC-APIs.

Name der Berechtigung für Instanzkonfigurationsvorgänge Beschreibung
spanner.instanceConfigOperations.list Instanzkonfigurationsvorgänge auflisten.
spanner.instanceConfigOperations.get Bestimmten Vorgang für die Instanzkonfiguration abrufen.
spanner.instanceConfigOperations.cancel Instanzkonfigurationsvorgang abbrechen.
spanner.instanceConfigOperations.delete Instanzkonfigurationsvorgang löschen

Instanzen

Die folgenden Berechtigungen gelten für Spanner-Instanzen. Weitere Informationen finden Sie in den Instanzreferenzen für REST- und RPC-APIs.

Name der Instanzberechtigung Beschreibung
spanner.instances.create Instanz erstellen.
spanner.instances.list Instanzen auflisten.
spanner.instances.get Konfiguration einer bestimmten Instanz abrufen.
spanner.instances.getIamPolicy IAM-Richtlinie einer Instanz abrufen.
spanner.instances.update Instanz aktualisieren.
spanner.instances.setIamPolicy IAM-Richtlinie einer Instanz festlegen.
spanner.instances.delete Instanz löschen.

Instanzvorgänge

Die folgenden Berechtigungen gelten für Spanner-Instanzvorgänge. Weitere Informationen finden Sie in den Instanzreferenzen für REST- und RPC-APIs.

Name der Berechtigung für Instanzvorgänge Beschreibung
spanner.instanceOperations.list Instanzvorgänge auflisten.
spanner.instanceOperations.get Bestimmten Instanzvorgang abrufen.
spanner.instanceOperations.cancel Instanzvorgang abbrechen.
spanner.instanceOperations.delete Instanzvorgang löschen.

Partitionen

Die folgenden Berechtigungen gelten für Spanner-Partitionen. Weitere Informationen finden Sie in den Partitionsreferenzen für REST- und RPC-APIs.

Name der Instanzberechtigung Beschreibung
spanner.instancePartitions.create Erstellen Sie eine Partition.
spanner.instancePartitions.get Konfiguration einer bestimmten Partition abrufen.
spanner.instancePartitions.list Partitionen auflisten
spanner.instancePartitions.update Partition aktualisieren
spanner.instancePartitions.delete Partition löschen

Partitionsvorgänge

Die folgenden Berechtigungen gelten für Spanner-Partitionsvorgänge. Weitere Informationen finden Sie in den Referenzen zu Instanzpartitionen für REST- und RPC-APIs.

Name der Berechtigung für Instanzpartitionsvorgänge Beschreibung
spanner.instancePartitionOperations.list Partitionsvorgänge auflisten
spanner.instancePartitionOperations.get Einen bestimmten Partitionsvorgang abrufen.
spanner.instancePartitionOperations.cancel Partitionsvorgang abbrechen
spanner.instancePartitionOperations.delete Partitionsvorgang löschen

Datenbanken

Die folgenden Berechtigungen gelten für Spanner-Datenbanken. Weitere Informationen finden Sie in den Datenbankreferenzen für REST- und RPC-APIs.

Name der Datenbankberechtigung Beschreibung
spanner.databases.beginPartitionedDmlTransaction

Partitionierte DML-Anweisung (Data Manipulation Language) ausführen Weitere Informationen zu partitionierten Abfragen finden Sie unter Daten parallel lesen.

spanner.databases.create Datenbank erstellen
spanner.databases.createBackup Erstellen Sie eine Sicherung aus der Datenbank. Erfordert auch spanner.backups.create, um die Sicherungsressource zu erstellen.
spanner.databases.list Datenbanken auflisten.
spanner.databases.update

Metadaten einer Datenbank aktualisieren.

spanner.databases.updateDdl Schema einer Datenbank aktualisieren.
spanner.databases.get Metadaten einer Datenbank abrufen.
spanner.databases.getDdl Schema einer Datenbank abrufen.
spanner.databases.getIamPolicy IAM-Richtlinie einer Datenbank abrufen.
spanner.databases.setIamPolicy IAM-Richtlinie einer Datenbank festlegen.
spanner.databases.beginReadOnlyTransaction Schreibgeschützte Transaktion für eine Spanner-Datenbank starten.
spanner.databases.beginOrRollbackReadWriteTransaction Schreib-Lese-Transaktion für eine Spanner-Datenbank starten oder zurücksetzen.
spanner.databases.read Daten über die Lese-API aus einer Datenbank auslesen.
spanner.databases.select SQL-SELECT-Anweisung für eine Datenbank ausführen.
spanner.databases.write In eine Datenbank schreiben.
spanner.databases.drop Datenbank löschen.
spanner.databases.useRoleBasedAccess Verwenden Sie die detaillierte Zugriffssteuerung.
spanner.databases.useDataBoost Verwenden Sie die Rechenressourcen von Spanner Data Boost, um partitionierte Abfragen zu verarbeiten.

Datenbankrollen

Die folgenden Berechtigungen gelten für Spanner-Datenbankrollen. Weitere Informationen finden Sie in den Datenbankreferenzen für REST- und RPC-APIs.

Name der Berechtigung für die Datenbankrolle Beschreibung
spanner.databaseRoles.list Datenbankrollen auflisten
spanner.databaseRoles.use Eine bestimmte Datenbankrolle verwenden.

Datenbankvorgänge

Die folgenden Berechtigungen gelten für Spanner-Datenbankvorgänge. Weitere Informationen finden Sie in den Datenbankreferenzen für REST- und RPC-APIs.

Name der Berechtigung für Datenbankvorgänge Beschreibung
spanner.databaseOperations.list Datenbankvorgänge auflisten und Datenbankvorgänge wiederherstellen.
spanner.databaseOperations.get Bestimmten Datenbankvorgang abrufen.
spanner.databaseOperations.cancel Datenbankvorgang abbrechen.

Sicherungen

Die folgenden Berechtigungen gelten für Spanner-Sicherungen. Weitere Informationen finden Sie in den Referenzen zu Sicherungen für REST- und RPC-APIs.

Name der Sicherungsberechtigung Beschreibung
spanner.backups.create Eine Sicherung erstellen. Erfordert außerdem spanner.databases.createBackup für die Quelldatenbank.
spanner.backups.get Eine Sicherung abrufen.
spanner.backups.update Eine Sicherung aktualisieren.
spanner.backups.delete Eine Sicherung löschen.
spanner.backups.list Sicherungen auflisten.
spanner.backups.restoreDatabase Datenbank aus einer Sicherung wiederherstellen. Erfordert außerdem spanner.databases.create, um die wiederhergestellte Datenbank auf der Zielinstanz zu erstellen.
spanner.backups.getIamPolicy Rufen Sie die IAM-Richtlinie einer Sicherung ab.
spanner.backups.setIamPolicy Legen Sie die IAM-Richtlinie einer Sicherung fest.

Sicherungsvorgänge

Die folgenden Berechtigungen gelten für Spanner-Sicherungsvorgänge. Weitere Informationen finden Sie in den Datenbankreferenzen für REST- und RPC-APIs.

Berechtigungsname für den Sicherungsvorgang Beschreibung
spanner.backupOperations.list Sicherungsvorgänge auflisten.
spanner.backupOperations.get Einen bestimmten Sicherungsvorgang abrufen.
spanner.backupOperations.cancel Einen Sicherungsvorgang abbrechen.

Sicherungszeitpläne

Die folgenden Berechtigungen gelten für Spanner-Sicherungszeitpläne. Weitere Informationen finden Sie in den Datenbankreferenzen für die REST- und RPC-APIs.

Name der Berechtigung für Sicherungszeitpläne Beschreibung
spanner.backupSchedules.create Erstellen Sie einen Sicherungszeitplan. Erfordert außerdem spanner.databases.createBackup für die Quelldatenbank.
spanner.backupSchedules.get Sicherungszeitplan abrufen
spanner.backupSchedules.update Zeitplan für die Sicherung aktualisieren
spanner.backupSchedules.delete Löschen Sie einen Sicherungszeitplan.
spanner.backupSchedules.list Sicherungszeitpläne auflisten.

Sitzungen

Die folgenden Berechtigungen gelten für Spanner-Sitzungen. Weitere Informationen finden Sie in den Datenbankreferenzen für REST- und RPC-APIs.

Name der Sitzungsberechtigung Beschreibung
spanner.sessions.create Sitzung erstellen.
spanner.sessions.get Sitzung abrufen.
spanner.sessions.delete Sitzung löschen.
spanner.sessions.list Sitzungen auflisten.

Vordefinierte Rollen

Eine vordefinierte Rolle ist ein Bündel aus einer oder mehreren Berechtigungen. Die vordefinierte Rolle roles/spanner.databaseUser enthält beispielsweise die Berechtigungen spanner.databases.read und spanner.databases.write. Es gibt zwei Arten vordefinierter Rollen für Spanner:

  • Personenbezogene Rollen: werden Nutzern oder Gruppen erteilt, damit diese Aktionen für die Ressourcen in einem Projekt ausführen können.
  • Computerbezogene Rollen: werden Dienstkonten erteilt, damit Computer, die unter diesen Dienstkonten ausgeführt werden, Aktionen für die Ressourcen in einem Projekt ausführen können.

Die folgende Tabelle enthält die Zugriffssteuerung mit vordefinierten IAM-Rollen, einschließlich einer Liste der Berechtigungen, die mit jeder Rolle verknüpft sind:

Role Permissions

(roles/spanner.admin)

Has complete access to all Spanner resources in a Google Cloud project. A principal with this role can:

  • Grant and revoke permissions to other principals for all Spanner resources in the project.
  • Allocate and delete chargeable Spanner resources.
  • Issue get/list/modify operations on Cloud Spanner resources.
  • Read from and write to all Cloud Spanner databases in the project.
  • Fetch project metadata.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.*

  • monitoring.timeSeries.create
  • monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.*

  • spanner.backupOperations.cancel
  • spanner.backupOperations.get
  • spanner.backupOperations.list
  • spanner.backupSchedules.create
  • spanner.backupSchedules.delete
  • spanner.backupSchedules.get
  • spanner.backupSchedules.getIamPolicy
  • spanner.backupSchedules.list
  • spanner.backupSchedules.setIamPolicy
  • spanner.backupSchedules.update
  • spanner.backups.copy
  • spanner.backups.create
  • spanner.backups.delete
  • spanner.backups.get
  • spanner.backups.getIamPolicy
  • spanner.backups.list
  • spanner.backups.restoreDatabase
  • spanner.backups.setIamPolicy
  • spanner.backups.update
  • spanner.databaseOperations.cancel
  • spanner.databaseOperations.get
  • spanner.databaseOperations.list
  • spanner.databaseRoles.list
  • spanner.databases.beginOrRollbackReadWriteTransaction
  • spanner.databases.beginPartitionedDmlTransaction
  • spanner.databases.beginReadOnlyTransaction
  • spanner.databases.changequorum
  • spanner.databases.create
  • spanner.databases.createBackup
  • spanner.databases.drop
  • spanner.databases.get
  • spanner.databases.getDdl
  • spanner.databases.getIamPolicy
  • spanner.databases.list
  • spanner.databases.partitionQuery
  • spanner.databases.partitionRead
  • spanner.databases.read
  • spanner.databases.select
  • spanner.databases.setIamPolicy
  • spanner.databases.update
  • spanner.databases.updateDdl
  • spanner.databases.useDataBoost
  • spanner.databases.useRoleBasedAccess
  • spanner.databases.write
  • spanner.instanceConfigOperations.cancel
  • spanner.instanceConfigOperations.delete
  • spanner.instanceConfigOperations.get
  • spanner.instanceConfigOperations.list
  • spanner.instanceConfigs.create
  • spanner.instanceConfigs.delete
  • spanner.instanceConfigs.get
  • spanner.instanceConfigs.list
  • spanner.instanceConfigs.update
  • spanner.instanceOperations.cancel
  • spanner.instanceOperations.delete
  • spanner.instanceOperations.get
  • spanner.instanceOperations.list
  • spanner.instancePartitionOperations.cancel
  • spanner.instancePartitionOperations.delete
  • spanner.instancePartitionOperations.get
  • spanner.instancePartitionOperations.list
  • spanner.instancePartitions.create
  • spanner.instancePartitions.delete
  • spanner.instancePartitions.get
  • spanner.instancePartitions.list
  • spanner.instancePartitions.update
  • spanner.instances.create
  • spanner.instances.createTagBinding
  • spanner.instances.delete
  • spanner.instances.deleteTagBinding
  • spanner.instances.get
  • spanner.instances.getIamPolicy
  • spanner.instances.list
  • spanner.instances.listEffectiveTags
  • spanner.instances.listTagBindings
  • spanner.instances.setIamPolicy
  • spanner.instances.update
  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.backupAdmin)

A principal with this role can:

  • Create, view, update, and delete backups.
  • View and manage a backup's allow policy.

This role cannot restore a database from a backup.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.backupOperations.*

  • spanner.backupOperations.cancel
  • spanner.backupOperations.get
  • spanner.backupOperations.list

spanner.backupSchedules.create

spanner.backupSchedules.delete

spanner.backupSchedules.get

spanner.backupSchedules.list

spanner.backupSchedules.update

spanner.backups.copy

spanner.backups.create

spanner.backups.delete

spanner.backups.get

spanner.backups.getIamPolicy

spanner.backups.list

spanner.backups.setIamPolicy

spanner.backups.update

spanner.databases.createBackup

spanner.databases.get

spanner.databases.list

spanner.instancePartitions.get

spanner.instancePartitions.list

spanner.instances.createTagBinding

spanner.instances.deleteTagBinding

spanner.instances.get

spanner.instances.list

spanner.instances.listEffectiveTags

spanner.instances.listTagBindings

(roles/spanner.backupWriter)

This role is intended to be used by scripts that automate backup creation. A principal with this role can create backups, but cannot update or delete them.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

spanner.backupOperations.get

spanner.backupOperations.list

spanner.backupSchedules.create

spanner.backupSchedules.get

spanner.backupSchedules.list

spanner.backups.copy

spanner.backups.create

spanner.backups.get

spanner.backups.list

spanner.databases.createBackup

spanner.databases.get

spanner.databases.list

spanner.instancePartitions.get

spanner.instances.get

(roles/spanner.databaseAdmin)

A principal with this role can:

  • Get/list all Spanner instances in the project.
  • Create/list/drop databases in an instance.
  • Grant/revoke access to databases in the project.
  • Read from and write to all Cloud Spanner databases in the project.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.*

  • monitoring.timeSeries.create
  • monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.databaseOperations.*

  • spanner.databaseOperations.cancel
  • spanner.databaseOperations.get
  • spanner.databaseOperations.list

spanner.databaseRoles.list

spanner.databases.beginOrRollbackReadWriteTransaction

spanner.databases.beginPartitionedDmlTransaction

spanner.databases.beginReadOnlyTransaction

spanner.databases.changequorum

spanner.databases.create

spanner.databases.drop

spanner.databases.get

spanner.databases.getDdl

spanner.databases.getIamPolicy

spanner.databases.list

spanner.databases.partitionQuery

spanner.databases.partitionRead

spanner.databases.read

spanner.databases.select

spanner.databases.setIamPolicy

spanner.databases.update

spanner.databases.updateDdl

spanner.databases.useDataBoost

spanner.databases.useRoleBasedAccess

spanner.databases.write

spanner.instancePartitions.get

spanner.instancePartitions.list

spanner.instances.createTagBinding

spanner.instances.deleteTagBinding

spanner.instances.get

spanner.instances.getIamPolicy

spanner.instances.list

spanner.instances.listEffectiveTags

spanner.instances.listTagBindings

spanner.sessions.*

  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.databaseReader)

A principal with this role can:

  • Read from the Spanner database.
  • Execute SQL queries on the database.
  • View schema for the database.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.create

spanner.databases.beginReadOnlyTransaction

spanner.databases.getDdl

spanner.databases.partitionQuery

spanner.databases.partitionRead

spanner.databases.read

spanner.databases.select

spanner.instancePartitions.get

spanner.instances.get

spanner.sessions.*

  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.databaseReaderWithDataBoost)

Includes all permissions in the spanner.databaseReader role enabling access to read and/or query a Cloud Spanner database using instance resources, as well as the permission to access the database with Data Boost, a fully managed serverless service that provides independent compute resources.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.create

spanner.databases.beginReadOnlyTransaction

spanner.databases.getDdl

spanner.databases.partitionQuery

spanner.databases.partitionRead

spanner.databases.read

spanner.databases.select

spanner.databases.useDataBoost

spanner.instancePartitions.get

spanner.instances.get

spanner.sessions.*

  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.databaseRoleUser)

In conjunction with the IAM role Cloud Spanner Fine-grained Access User, grants permissions to individual Spanner database roles. Add a condition for each desired Spanner database role that includes the resource type of `spanner.googleapis.com/DatabaseRole` and the resource name ending with `/YOUR_SPANNER_DATABASE_ROLE`.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

(roles/spanner.databaseUser)

A principal with this role can:

  • Read from and write to the Spanner database.
  • Execute SQL queries on the database, including DML and Partitioned DML.
  • View and update schema for the database.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.create

spanner.databaseOperations.*

  • spanner.databaseOperations.cancel
  • spanner.databaseOperations.get
  • spanner.databaseOperations.list

spanner.databases.beginOrRollbackReadWriteTransaction

spanner.databases.beginPartitionedDmlTransaction

spanner.databases.beginReadOnlyTransaction

spanner.databases.changequorum

spanner.databases.getDdl

spanner.databases.partitionQuery

spanner.databases.partitionRead

spanner.databases.read

spanner.databases.select

spanner.databases.updateDdl

spanner.databases.write

spanner.instancePartitions.get

spanner.instances.get

spanner.sessions.*

  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.fineGrainedAccessUser)

Grants permissions to use Spanner's fine-grained access control framework. To grant access to specific database roles, also add the `roles/spanner.databaseRoleUser` IAM role and its necessary conditions.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

spanner.databaseRoles.list

spanner.databases.useRoleBasedAccess

(roles/spanner.restoreAdmin)

A principal with this role can restore databases from backups.

If you need to restore a backup to a different instance, apply this role at the project level or to both instances. This role cannot create backups.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.backups.get

spanner.backups.list

spanner.backups.restoreDatabase

spanner.databaseOperations.*

  • spanner.databaseOperations.cancel
  • spanner.databaseOperations.get
  • spanner.databaseOperations.list

spanner.databases.create

spanner.databases.get

spanner.databases.list

spanner.instancePartitions.get

spanner.instancePartitions.list

spanner.instances.createTagBinding

spanner.instances.deleteTagBinding

spanner.instances.get

spanner.instances.list

spanner.instances.listEffectiveTags

spanner.instances.listTagBindings

(roles/spanner.viewer)

A principal with this role can:

  • View all Spanner instances (but cannot modify instances).
  • View all Spanner databases (but cannot modify or read from databases).

For example, you can combine this role with the roles/spanner.databaseUser role to grant a user with access to a specific database, but only view access to other instances and databases.

This role is recommended at the Google Cloud project level for users interacting with Cloud Spanner resources in the Google Cloud console.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.databases.list

spanner.instanceConfigs.get

spanner.instanceConfigs.list

spanner.instancePartitions.get

spanner.instancePartitions.list

spanner.instances.get

spanner.instances.list

spanner.instances.listEffectiveTags

spanner.instances.listTagBindings

Einfache Rollen

Einfache Rollen sind Rollen auf Projektebene aus der Zeit vor IAM. Weitere Informationen finden Sie unter Einfache Rollen.

Obwohl Spanner die folgenden grundlegenden Rollen unterstützt, sollten Sie nach Möglichkeit eine der oben aufgeführten vordefinierten Rollen verwenden. Einfache Rollen umfassen allgemeine Berechtigungen, die für alle Google Cloud -Ressourcen gelten. Im Gegensatz dazu enthalten die vordefinierten Rollen von Spanner fein abgestufte Berechtigungen, die nur für Spanner gelten.

Einfache Rolle Beschreibung
roles/viewer Kann die Metadaten von Schemas und Instanzen auflisten und abrufen. Kann auch über SQL Daten aus einer Datenbank auslesen und abfragen.
roles/editor Kann alles, was roles/viewer kann. Kann auch Instanzen und Datenbanken erstellen und Daten in eine Datenbank schreiben.
roles/owner Kann alles, was roles/editor tun. Kann auch den Zugriff auf Datenbanken und Instanzen ändern.

Benutzerdefinierte Rollen

Wenn die vordefinierten Rollen für Spanner Ihren Geschäftsanforderungen nicht genügen, können Sie eigene benutzerdefinierte Rollen mit von Ihnen festgelegten Berechtigungen definieren.

Bevor Sie eine benutzerdefinierte Rolle erstellen, müssen Sie festlegen, welche Aufgaben damit auszuführen sind. Anschließend bestimmen Sie die Berechtigungen, die für die einzelnen Aufgaben erforderlich sind, und nehmen diese in die benutzerdefinierte Rolle auf.

Benutzerdefinierte Rollen für Dienstkontoaufgaben

Für die meisten Aufgaben ist es offensichtlich, welche Berechtigungen Sie Ihrer benutzerdefinierten Rolle hinzufügen müssen. Wenn Sie beispielsweise möchten, dass Ihr Dienstkonto eine Datenbank erstellen kann, fügen Sie der benutzerdefinierten Rolle die Berechtigung spanner.databases.create hinzu.

Wenn Sie jedoch Daten in einer Spanner-Tabelle lesen oder schreiben, müssen Sie Ihrer benutzerdefinierten Rolle verschiedene Berechtigungen hinzufügen. Die folgende Tabelle zeigt, welche Berechtigungen zum Lesen und Schreiben von Daten benötigt werden.

Dienstkontoaufgabe Erforderliche Berechtigung
Daten lesen spanner.databases.select
spanner.sessions.create
spanner.sessions.delete
Daten einfügen, aktualisieren oder löschen spanner.databases.beginOrRollbackReadWriteTransaction
spanner.databases.write
spanner.sessions.create
spanner.sessions.delete
Sicherung erstellen spanner.backups.create
spanner.databases.createBackup
Eine Datenbank wiederherstellen spanner.databases.create
spanner.backups.restoreDatabase

Benutzerdefinierte Rollen für Google Cloud Console-Aufgaben

Wenn Sie die Berechtigungen ermitteln möchten, die Sie für eine bestimmte Aufgabe in der Google Cloud Console benötigen, legen Sie den Workflow für diese Aufgabe fest und stellen die Berechtigungen für diesen Workflow zusammen. So führen Sie beispielsweise die folgenden Schritte in der Google Cloud Console aus, um die Daten in einer Tabelle anzeigen zu lassen:

Schritt Berechtigungen
1. Auf das Projekt zugreifen resourcemanager.projects.get
2. Liste der Instanzen aufrufen spanner.instances.list
3. Instanz auswählen spanner.instances.get
4. Liste der Datenbanken aufrufen spanner.databases.list
5. Datenbank und Tabelle auswählen spanner.databases.getDdl
6. Daten in einer Tabelle aufrufen spanner.databases.select, spanner.sessions.create, spanner.sessions.delete

In diesem Beispiel benötigen Sie folgende Berechtigungen:

  • resourcemanager.projects.get
  • spanner.databases.getDdl
  • spanner.databases.list
  • spanner.databases.select
  • spanner.instances.get
  • spanner.instances.list
  • spanner.sessions.create
  • spanner.sessions.delete

In der folgenden Tabelle sind die Berechtigungen aufgeführt, die für Aktionen in der Google Cloud Console erforderlich sind.

Aktion Berechtigungen
Liste der Instanzen auf der Seite "Instanzen" aufrufen

resourcemanager.projects.get
spanner.instances.list

Liste auf dem Tab "Berechtigungen" der Seite "Instanz" aufrufen

spanner.instances.getIamPolicy

Hauptkonten auf dem Tab "Berechtigungen" der Seite "Instanz" einfügen

spanner.instances.setIamPolicy

Instanz aus der Instanzliste auswählen, um die Seite "Instanzdetails" aufzurufen

spanner.instances.get

Instanz erstellen

spanner.instanceConfigs.list
spanner.instanceOperations.get
spanner.instances.create

Instanz löschen

spanner.instances.delete

Instanz ändern

spanner.instanceOperations.get
spanner.instances.update

Partition erstellen

spanner.instancePartitions.list
spanner.instancePartitionOperations.get
spanner.instancePartitions.create

Partition löschen

spanner.instancePartitions.delete

Partition ändern

spanner.instancePartitionOperations.get
spanner.instancePartitions.update

Grafiken auf dem Tab "Überwachen" der Seite "Instanzdetails" oder der Seite "Datenbankdetails" aufrufen

monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.timeSeries.list
spanner.instances.get

Liste der Datenbanken auf der Seite "Instanzdetails" aufrufen

spanner.databases.list

Liste auf dem Tab "Berechtigungen" der Seite "Datenbankdetails" aufrufen

spanner.databases.getIamPolicy

Hauptkonten auf dem Tab "Berechtigungen" der Seite "Datenbankdetails" einfügen

spanner.databases.setIamPolicy

Datenbank aus der Datenbankliste auswählen und das Schema auf der Seite "Datenbankdetails" aufrufen

spanner.databases.get
spanner.databases.getDdl

Datenbank erstellen

spanner.databases.create

Datenbank löschen

spanner.databases.drop

Tabelle erstellen

Tabellenschema aktualisieren

spanner.databaseOperations.get
spanner.databaseOperations.list
spanner.databases.updateDdl

Daten auf dem Tab "Daten" der Seite "Datenbankdetails" aufrufen

Abfrage erstellen und ausführen

spanner.databases.select
spanner.sessions.create
spanner.sessions.delete

Daten in einer Tabelle ändern

spanner.databases.beginOrRollbackReadWriteTransaction
spanner.databases.select
spanner.databases.write
spanner.sessions.create
spanner.sessions.delete

Seite „Back-up/Wiederherstellung“ aufrufen

spanner.backups.list
spanner.backups.get

Liste der Sicherungsvorgänge aufrufen

spanner.backupOperations.list

Liste der Wiederherstellungsvorgänge anzeigen

spanner.databaseOperations.list

Sicherung erstellen

spanner.backups.create
spanner.databases.createBackup
spanner.databases.list1
spanner.backupOperations.list1

Datenbank aus einer Sicherung wiederherstellen

spanner.instanceConfigs.list
spanner.instances.get
spanner.backups.get
spanner.backups.restoreDatabase
spanner.instances.list
spanner.databases.create

Sicherung aktualisieren

spanner.backups.update

Sicherung löschen

spanner.backups.delete

Sicherungszeitplan erstellen

spanner.backupSchedules.create

spanner.databases.createBackup

Sicherungszeitplan aktualisieren

spanner.backupSchedules.update

Sicherungszeitplan löschen

spanner.backupSchedules.delete

1 Erforderlich, wenn Sie eine Sicherung über die Seite Sicherung/Wiederherstellung auf Instanzebene und nicht auf Datenbankebene erstellen.

IAM-Richtlinienverwaltung für Spanner

Sie können IAM-Richtlinien mit den REST oder RPC APIs für Spanner-Instanz-, Datenbank- und Sicherungsressourcen abrufen, festlegen und testen.

Instanzen

REST-API RPC API
projects.instances.getIamPolicy GetIamPolicy
projects.instances.setIamPolicy SetIamPolicy
projects.instances.testIamPermissions TestIamPermissions

Datenbanken

REST-API RPC API
projects.instances.databases.getIamPolicy GetIamPolicy
projects.instances.databases.setIamPolicy SetIamPolicy
projects.instances.databases.testIamPermissions TestIamPermissions

Sicherungen

REST API RPC API
projects.instances.backups.getIamPolicy GetIamPolicy
projects.instances.backups.setIamPolicy SetIamPolicy
projects.instances.backups.testIamPermissions TestIamPermissions

Weitere Informationen