Ringkasan IAM

Identity and Access Management (IAM) memungkinkan Anda mengontrol akses pengguna dan grup ke resource Spanner di tingkat project, instance Spanner, dan database Spanner. Misalnya, Anda dapat menentukan bahwa pengguna memiliki kontrol penuh atas database tertentu di instance tertentu dalam project, tetapi tidak dapat membuat, mengubah, atau menghapus instance apa pun dalam project. Dengan menggunakan kontrol akses dengan IAM, Anda dapat memberikan izin kepada pengguna atau grup tanpa harus mengubah setiap instance Spanner atau izin database secara terpisah.

Dokumen ini berfokus pada izin IAM yang relevan dengan Spanner dan peran IAM yang memberikan izin tersebut. Untuk mengetahui deskripsi mendetail tentang IAM dan fitur-fiturnya, lihat panduan developer Identity and Access Management. Secara khusus, lihat bagian Mengelola kebijakan IAM.

Izin

Izin memungkinkan pengguna melakukan tindakan tertentu pada resource Spanner. Misalnya, izin spanner.databases.read memungkinkan pengguna membaca dari database menggunakan API baca Spanner, sedangkan spanner.databases.select memungkinkan pengguna menjalankan pernyataan pilih SQL di database. Anda tidak secara langsung memberikan izin kepada pengguna; tetapi, Anda memberikan peran bawaan atau peran kustom kepada pengguna, yang memiliki satu atau beberapa izin yang dipaketkan di dalamnya.

Tabel berikut mencantumkan izin IAM yang terkait dengan Spanner.

Konfigurasi instance

Izin berikut berlaku untuk konfigurasi instance Spanner. Untuk informasi selengkapnya, lihat referensi konfigurasi instance untuk API REST dan RPC.

Nama izin konfigurasi instance Deskripsi
spanner.instanceConfigs.create Buat konfigurasi instance kustom.
spanner.instanceConfigs.delete Menghapus konfigurasi instance kustom.
spanner.instanceConfigs.get Mendapatkan konfigurasi instance.
spanner.instanceConfigs.list Mencantumkan kumpulan konfigurasi instance.
spanner.instanceConfigs.update Memperbarui konfigurasi instance kustom.

Operasi konfigurasi instance

Izin berikut berlaku untuk operasi konfigurasi instance Spanner. Untuk informasi selengkapnya, lihat referensi instance untuk API REST dan RPC.

Nama izin operasi konfigurasi instance Deskripsi
spanner.instanceConfigOperations.cancel Membatalkan operasi konfigurasi instance.
spanner.instanceConfigOperations.delete Menghapus operasi konfigurasi instance.
spanner.instanceConfigOperations.get Mendapatkan operasi konfigurasi instance.
spanner.instanceConfigOperations.list Mencantumkan operasi konfigurasi instance.

Instance

Izin berikut berlaku untuk instance Spanner. Untuk informasi selengkapnya, lihat referensi instance untuk API REST dan RPC.

Nama izin instance Deskripsi
spanner.instances.create Membuat instance.
spanner.instances.delete Menghapus instance.
spanner.instances.get Mendapatkan konfigurasi instance tertentu.
spanner.instances.getIamPolicy Mendapatkan Kebijakan IAM instance.
spanner.instances.list Mencantumkan instance.
spanner.instances.setIamPolicy Menetapkan Kebijakan IAM instance.
spanner.instances.update Mengupdate instance.

Operasi instance

Izin berikut berlaku untuk operasi instance Spanner. Untuk informasi selengkapnya, lihat referensi instance untuk API REST dan RPC.

Nama izin operasi instance Deskripsi
spanner.instanceOperations.cancel Membatalkan operasi instance.
spanner.instanceOperations.delete Menghapus operasi instance.
spanner.instanceOperations.get Mendapatkan operasi instance tertentu.
spanner.instanceOperations.list Mencantumkan operasi instance.

Partisi instance

Izin berikut berlaku untuk partisi instance Spanner. Untuk informasi selengkapnya, lihat referensi partisi instance untuk API REST dan RPC.

Nama izin instance Deskripsi
spanner.instancePartitions.create Membuat partisi instance.
spanner.instancePartitions.delete Menghapus partisi instance.
spanner.instancePartitions.get Mendapatkan konfigurasi partisi instance tertentu.
spanner.instancePartitions.list Mencantumkan partisi instance.
spanner.instancePartitions.update Memperbarui partisi instance.

Operasi partisi instance

Izin berikut berlaku untuk operasi partisi instance Spanner. Untuk informasi selengkapnya, lihat referensi partisi instance untuk API REST dan RPC.

Nama izin operasi partisi instance Deskripsi
spanner.instancePartitionOperations.cancel Membatalkan operasi partisi instance.
spanner.instancePartitionOperations.delete Menghapus operasi partisi instance.
spanner.instancePartitionOperations.get Mendapatkan operasi partisi instance tertentu.
spanner.instancePartitionOperations.list Mencantumkan operasi partisi instance.

Database

Izin berikut berlaku untuk database Spanner. Untuk informasi selengkapnya, lihat referensi database untuk API REST dan RPC.

Nama izin database Deskripsi
spanner.databases.adapt Memungkinkan Spanner Adapter API berinteraksi langsung dengan Spanner.
spanner.databases.beginOrRollbackReadWriteTransaction Memulai atau melakukan rollback transaksi baca-tulis di database Spanner.
spanner.databases.beginPartitionedDmlTransaction Menjalankan pernyataan bahasa manipulasi data (DML) yang dipartisi instance. Untuk mengetahui informasi selengkapnya tentang kueri yang dipartisi instance, lihat Membaca data secara paralel.
spanner.databases.beginReadOnlyTransaction Memulai transaksi hanya baca di database Spanner.
spanner.databases.create Membuat database.
spanner.databases.createBackup Buat cadangan dari database. Juga memerlukan spanner.backups.create untuk membuat resource cadangan.
spanner.databases.drop Menghapus database.
spanner.databases.get Mendapatkan metadata database.
spanner.databases.getDdl Mendapatkan skema database.
spanner.databases.getIamPolicy Mendapatkan kebijakan IAM database.
spanner.databases.list Mencantumkan database.
spanner.databases.read Membaca dari database menggunakan read API.
spanner.databases.select Menjalankan pernyataan pilih SQL pada database.
spanner.databases.setIamPolicy Menetapkan kebijakan IAM database.
spanner.databases.update Memperbarui metadata database.
spanner.databases.updateDdl Memperbarui skema database.
spanner.databases.useDataBoost Gunakan resource komputasi Spanner Data Boost untuk memproses kueri yang dipartisi instance.
spanner.databases.useRoleBasedAccess Gunakan kontrol akses terperinci.
spanner.databases.write Menulis ke database.

Peran database

Izin berikut berlaku untuk peran database Spanner. Untuk mengetahui informasi selengkapnya, lihat referensi database untuk API REST dan RPC.

Nama izin peran database Deskripsi
spanner.databaseRoles.list Mencantumkan peran database.
spanner.databaseRoles.use Menggunakan peran database yang ditentukan.

Operasi database

Izin berikut berlaku untuk operasi database Spanner. Untuk informasi selengkapnya, lihat referensi database untuk API REST dan RPC.

Nama izin operasi database Deskripsi
spanner.databaseOperations.cancel Membatalkan operasi database.
spanner.databaseOperations.get Mendapatkan operasi database tertentu.
spanner.databaseOperations.list Mencantumkan database dan memulihkan operasi database.

Cadangan

Izin berikut berlaku untuk pencadangan Spanner. Untuk informasi selengkapnya, lihat referensi pencadangan untuk API REST dan RPC.

Nama izin cadangan Deskripsi
spanner.backups.create Membuat cadangan. Juga memerlukan spanner.databases.createBackup di database sumber.
spanner.backups.delete Menghapus cadangan.
spanner.backups.get Mendapatkan cadangan.
spanner.backups.getIamPolicy Mendapatkan kebijakan IAM cadangan.
spanner.backups.list Mencantumkan pencadangan.
spanner.backups.restoreDatabase Memulihkan database dari cadangan. Juga memerlukan spanner.databases.create untuk membuat database yang dipulihkan di instance target.
spanner.backups.setIamPolicy Menetapkan kebijakan IAM cadangan.
spanner.backups.update Memperbarui cadangan.

Operasi pencadangan

Izin berikut berlaku untuk operasi pencadangan Spanner. Untuk mengetahui informasi selengkapnya, lihat referensi database untuk REST dan RPC API.

Nama izin operasi pencadangan Deskripsi
spanner.backupOperations.cancel Membatalkan operasi pencadangan.
spanner.backupOperations.get Mendapatkan operasi pencadangan tertentu.
spanner.backupOperations.list Mencantumkan operasi pencadangan.

Jadwal pencadangan

Izin berikut berlaku untuk jadwal pencadangan Spanner. Untuk mengetahui informasi selengkapnya, lihat referensi database untuk REST dan RPC API.

Nama izin jadwal pencadangan Deskripsi
spanner.backupSchedules.create Buat jadwal pencadangan. Juga memerlukan spanner.databases.createBackup di database sumber.
spanner.backupSchedules.delete Menghapus jadwal pencadangan.
spanner.backupSchedules.get Mendapatkan jadwal pencadangan.
spanner.backupSchedules.list Mencantumkan jadwal pencadangan.
spanner.backupSchedules.update Memperbarui jadwal pencadangan.

Sesi

Izin berikut berlaku untuk sesi Spanner. Untuk informasi selengkapnya, lihat referensi database untuk REST dan RPC API.

Nama izin sesi Deskripsi
spanner.sessions.create Buat sesi.
spanner.sessions.delete Menghapus sesi.
spanner.sessions.get Mendapatkan sesi.
spanner.sessions.list Mencantumkan sesi.

Peran yang telah ditetapkan

Peran yang telah ditetapkan adalah paket berisi satu atau beberapa izin. Misalnya, peran bawaan roles/spanner.databaseUser berisi izin spanner.databases.read dan spanner.databases.write. Ada dua jenis peran bawaan untuk Spanner:

  • Peran orang: Diberikan kepada pengguna atau grup, yang memungkinkan mereka melakukan tindakan pada resource di project Anda.
  • Peran mesin: Diberikan ke akun layanan, yang memungkinkan mesin yang berjalan sebagai akun layanan tersebut untuk melakukan tindakan pada resource dalam project Anda.

Tabel berikut mencantumkan kontrol akses dengan peran bawaan IAM, termasuk daftar izin yang terkait dengan setiap peran:

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

cloudkms.keyHandles.*

  • cloudkms.keyHandles.create
  • cloudkms.keyHandles.get
  • cloudkms.keyHandles.list

cloudkms.operations.get

cloudkms.projects.showEffectiveAutokeyConfig

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.adapt
  • spanner.databases.addSplitPoints
  • 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

cloudkms.keyHandles.*

  • cloudkms.keyHandles.create
  • cloudkms.keyHandles.get
  • cloudkms.keyHandles.list

cloudkms.operations.get

cloudkms.projects.showEffectiveAutokeyConfig

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.adapt

spanner.databases.addSplitPoints

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.adapt

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.serviceAgent)

Cloud Spanner API Service Agent

aiplatform.endpoints.get

aiplatform.endpoints.list

aiplatform.endpoints.predict

aiplatform.models.get

aiplatform.models.list

(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

Peran dasar

Peran dasar adalah peran level project yang sudah ada sebelum IAM. Lihat Peran dasar untuk mengetahui detail tambahan.

Meskipun Spanner mendukung peran dasar berikut, Anda harus menggunakan salah satu peran bawaan yang ditampilkan sebelumnya jika memungkinkan. Peran dasar menyertakan izin luas yang berlaku untuk semua resource Google Cloud Anda; sebaliknya, peran bawaan Spanner menyertakan izin terperinci yang hanya berlaku untuk Spanner.

Peran dasar Deskripsi
roles/editor Dapat melakukan semua yang dapat dilakukan roles/viewer. Dapat juga membuat instance dan database serta menulis data ke dalam database.
roles/owner Dapat melakukan semua yang dapat dilakukan roles/editor. Juga dapat mengubah akses ke database dan instance.
roles/viewer Dapat mencantumkan dan mendapatkan metadata skema dan instance. Juga dapat membaca dan membuat kueri menggunakan SQL di database.

Peran khusus

Jika peran bawaan untuk Spanner tidak memenuhi persyaratan bisnis Anda, Anda dapat menentukan peran khusus sendiri dengan izin yang Anda tentukan.

Sebelum membuat peran khusus, Anda harus mengidentifikasi tugas yang perlu dilakukan. Kemudian, Anda dapat mengidentifikasi izin yang diperlukan untuk setiap tugas dan menambahkan izin ini ke peran kustom.

Peran kustom untuk tugas akun layanan

Untuk sebagian besar tugas, izin yang perlu Anda tambahkan ke peran kustom akan terlihat jelas. Misalnya, jika Anda ingin akun layanan dapat membuat database, tambahkan izin spanner.databases.create ke peran kustom Anda.

Namun, saat membaca atau menulis data dalam tabel Spanner, Anda harus menambahkan beberapa izin berbeda ke peran kustom. Tabel berikut menunjukkan izin yang diperlukan untuk membaca dan menulis data.

Tugas akun layanan Izin yang diperlukan
Membuat cadangan spanner.backups.create
spanner.databases.createBackup
Membaca data spanner.databases.select
spanner.sessions.create
spanner.sessions.delete
Memulihkan database spanner.backups.restoreDatabase
spanner.databases.create
Menyisipkan, memperbarui, atau menghapus data spanner.databases.beginOrRollbackReadWriteTransaction
spanner.sessions.create
spanner.sessions.delete
spanner.databases.write

Peran khusus untuk Google Cloud tugas konsol

Untuk mengidentifikasi daftar izin yang Anda perlukan untuk tugas tertentu di konsolGoogle Cloud , Anda menentukan alur kerja untuk tugas tersebut dan mengompilasi izin untuk alur kerja tersebut. Misalnya, untuk melihat data dalam tabel, Anda harus mengikuti langkah-langkah berikut di Google Cloud console:

Langkah Izin
1. Mengakses project resourcemanager.projects.get
2. Melihat daftar instance spanner.instances.list
3. Pilih instance spanner.instances.get
4. Melihat daftar database spanner.databases.list
5. Memilih database dan tabel spanner.databases.getDdl
6. Melihat data dalam tabel spanner.databases.select, spanner.sessions.create, spanner.sessions.delete

Dalam contoh ini, Anda memerlukan izin berikut:

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

Tabel berikut mencantumkan izin yang diperlukan untuk tindakan di konsolGoogle Cloud .

Izin Tindakan
spanner.databases.setIamPolicy Menambahkan akun utama di tab Izin pada halaman detail Database
spanner.instances.setIamPolicy Menambahkan akun utama di tab Izin pada halaman Instance
spanner.backups.create
spanner.databases.createBackup
spanner.databases.list1
spanner.backupOperations.list1
Membuat cadangan
spanner.backupSchedules.create
spanner.databases.createBackup
Membuat jadwal pencadangan
spanner.databases.create Buat database
spanner.instancePartitions.list
spanner.instancePartitionOperations.get
spanner.instancePartitions.create
Membuat partisi instance
spanner.databaseOperations.get
spanner.databaseOperations.list
spanner.databases.updateDdl
Membuat tabel
Memperbarui skema tabel
spanner.instanceConfigs.list
spanner.instanceOperations.get
spanner.instances.create
Membuat instance
spanner.backups.delete Menghapus cadangan
spanner.backupSchedules.delete Menghapus jadwal pencadangan
spanner.databases.drop Menghapus database
spanner.instancePartitions.delete Menghapus partisi instance
spanner.instances.delete Menghapus instance
spanner.instancePartitionOperations.get
spanner.instancePartitions.update
Mengubah partisi instance
spanner.instanceOperations.get
spanner.instances.update
Mengubah instance
spanner.databases.beginOrRollbackReadWriteTransaction
spanner.databases.select
spanner.databases.write
spanner.sessions.create
spanner.sessions.delete
Mengubah data dalam tabel
spanner.instanceConfigs.list
spanner.instances.get
spanner.backups.get
spanner.backups.restoreDatabase
spanner.instances.list
spanner.databases.create
Memulihkan database dari cadangan
spanner.databases.get
spanner.databases.getDdl
Pilih database dari daftar database dan lihat skema di halaman Detail database
spanner.instances.get Pilih instance dari daftar instance untuk melihat halaman Detail Instance
spanner.backups.update Memperbarui cadangan
spanner.backupSchedules.update Memperbarui jadwal pencadangan
spanner.databases.select
spanner.sessions.create
spanner.sessions.delete
Melihat data di tab Data pada halaman Detail database
Membuat dan menjalankan kueri
spanner.backups.list
spanner.backups.get
Melihat halaman Pencadangan/Pemulihan
monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.timeSeries.list
spanner.instances.get
Melihat grafik di tab Monitor pada halaman Detail instance atau halaman Detail database
spanner.backupOperations.list Melihat daftar operasi pencadangan
spanner.databases.list Melihat daftar database di halaman Detail instance
resourcemanager.projects.get
spanner.instances.list
Melihat daftar instance di halaman Instance
spanner.databaseOperations.list Melihat daftar operasi pemulihan
spanner.databases.getIamPolicy Lihat daftar di tab Izin pada halaman Detail database
spanner.instances.getIamPolicy Lihat daftar di tab Izin pada halaman Instance
1 Wajib jika Anda membuat cadangan dari halaman Pencadangan/Pemulihan di tingkat instance, bukan tingkat database.

Manajemen kebijakan IAM Spanner

Anda dapat mendapatkan, menetapkan, dan menguji kebijakan IAM menggunakan REST atau RPC API pada resource instance, database, dan pencadangan Spanner.

Instance

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

Database

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

Cadangan

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

Langkah berikutnya