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 dalam instance tertentu di project Anda, tetapi tidak dapat membuat, mengubah, atau menghapus instance apa pun dalam project Anda. Dengan menggunakan kontrol akses dengan IAM, Anda dapat memberikan izin kepada pengguna atau grup tanpa harus mengubah setiap instance Spanner atau izin database satu per satu.

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.list Mencantumkan operasi konfigurasi instance.
spanner.instanceConfigOperations.get Mendapatkan operasi konfigurasi instance tertentu.
spanner.instanceConfigOperations.cancel Membatalkan operasi konfigurasi instance.
spanner.instanceConfigOperations.delete Menghapus 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 Buat instance.
spanner.instances.list Mencantumkan instance.
spanner.instances.get Mendapatkan konfigurasi instance tertentu.
spanner.instances.getIamPolicy Mendapatkan Kebijakan IAM instance.
spanner.instances.update Mengupdate instance.
spanner.instances.setIamPolicy Menetapkan Kebijakan IAM instance.
spanner.instances.delete Menghapus 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.list Mencantumkan operasi instance.
spanner.instanceOperations.get Mendapatkan operasi instance tertentu.
spanner.instanceOperations.cancel Membatalkan operasi instance.
spanner.instanceOperations.delete Menghapus operasi instance.

Partisi

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

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

Operasi partisi

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

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

Database

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

Nama izin database Deskripsi
spanner.databases.beginPartitionedDmlTransaction

Menjalankan pernyataan Bahasa Manipulasi Data (DML) Terpartisi. Untuk mengetahui informasi selengkapnya tentang kueri berpartisi, lihat Membaca data secara paralel.

spanner.databases.create Membuat database.
spanner.databases.createBackup Buat cadangan dari database. Juga memerlukan spanner.backups.create untuk membuat resource cadangan.
spanner.databases.list Mencantumkan database.
spanner.databases.update

Memperbarui metadata database.

spanner.databases.updateDdl Memperbarui skema database.
spanner.databases.get Mendapatkan metadata database.
spanner.databases.getDdl Mendapatkan skema database.
spanner.databases.getIamPolicy Mendapatkan Kebijakan IAM database.
spanner.databases.setIamPolicy Menetapkan Kebijakan IAM database.
spanner.databases.beginReadOnlyTransaction Memulai transaksi hanya baca di database Spanner.
spanner.databases.beginOrRollbackReadWriteTransaction Memulai atau melakukan rollback transaksi baca-tulis di database Spanner.
spanner.databases.read Membaca dari database menggunakan read API.
spanner.databases.select Menjalankan pernyataan pilih SQL di database.
spanner.databases.write Menulis ke database.
spanner.databases.drop Menghapus database.
spanner.databases.useRoleBasedAccess Gunakan kontrol akses terperinci.
spanner.databases.useDataBoost Gunakan resource komputasi Spanner Data Boost untuk memproses kueri yang dipartisi.

Peran database

Izin berikut berlaku untuk peran database Spanner. Untuk 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.list Mencantumkan database dan memulihkan operasi database.
spanner.databaseOperations.get Mendapatkan operasi database tertentu.
spanner.databaseOperations.cancel Membatalkan 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.get Mendapatkan cadangan.
spanner.backups.update Memperbarui cadangan.
spanner.backups.delete Menghapus 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.getIamPolicy Mendapatkan kebijakan IAM cadangan.
spanner.backups.setIamPolicy Menetapkan kebijakan IAM 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.list Mencantumkan operasi pencadangan.
spanner.backupOperations.get Mendapatkan operasi pencadangan tertentu.
spanner.backupOperations.cancel Membatalkan 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.get Mendapatkan jadwal pencadangan.
spanner.backupSchedules.update Memperbarui jadwal pencadangan.
spanner.backupSchedules.delete Menghapus jadwal pencadangan.
spanner.backupSchedules.list Mencantumkan 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.get Mendapatkan sesi.
spanner.sessions.delete Menghapus 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 dalam 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

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.databaseRoles.use
  • 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.updateTag
  • 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.instances.updateTag
  • 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.*

  • spanner.databaseRoles.list
  • spanner.databaseRoles.use

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

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

spanner.databaseRoles.use

(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.updateTag

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

Peran dasar

Peran dasar adalah peran level project yang sudah ada sebelum IAM. Lihat Peran dasar untuk 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 standar Spanner menyertakan izin terperinci yang hanya berlaku untuk Spanner.

Peran dasar Deskripsi
roles/viewer Dapat mencantumkan dan mendapatkan metadata skema dan instance. Juga dapat membaca dan membuat kueri menggunakan SQL di database.
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.

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
Membaca data spanner.databases.select
spanner.sessions.create
spanner.sessions.delete
Menyisipkan, memperbarui, atau menghapus data spanner.databases.beginOrRollbackReadWriteTransaction
spanner.databases.write
spanner.sessions.create
spanner.sessions.delete
Membuat cadangan spanner.backups.create
spanner.databases.createBackup
Memulihkan database spanner.databases.create
spanner.backups.restoreDatabase

Peran kustom untuk tugas Konsol Google Cloud

Untuk mengidentifikasi daftar izin yang Anda perlukan untuk tugas tertentu di konsol Google Cloud, Anda harus 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 konsol Google Cloud:

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 konsol Google Cloud.

Tindakan Izin
Melihat daftar instance di halaman Instance

resourcemanager.projects.get
spanner.instances.list

Lihat daftar di tab Izin pada halaman Instance

spanner.instances.getIamPolicy

Menambahkan akun utama di tab Izin pada halaman Instance

spanner.instances.setIamPolicy

Pilih instance dari daftar instance untuk melihat halaman Detail Instance

spanner.instances.get

Membuat instance

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

Menghapus instance

spanner.instances.delete

Mengubah instance

spanner.instanceOperations.get
spanner.instances.update

Membuat partisi

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

Menghapus partisi

spanner.instancePartitions.delete

Mengubah partisi

spanner.instancePartitionOperations.get
spanner.instancePartitions.update

Melihat grafik di tab Monitor pada halaman Detail instance atau halaman Detail database

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

Melihat daftar database di halaman Detail instance

spanner.databases.list

Lihat daftar di tab Izin pada halaman Detail database

spanner.databases.getIamPolicy

Menambahkan akun utama di tab Izin pada halaman detail Database

spanner.databases.setIamPolicy

Pilih database dari daftar database dan lihat skema di halaman Detail database

spanner.databases.get
spanner.databases.getDdl

Buat database

spanner.databases.create

Menghapus database

spanner.databases.drop

Membuat tabel

Memperbarui skema tabel

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

Melihat data di tab Data pada halaman Detail database

Membuat dan menjalankan kueri

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

Mengubah data dalam tabel

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

Melihat halaman Pencadangan/Pemulihan

spanner.backups.list
spanner.backups.get

Melihat daftar operasi pencadangan

spanner.backupOperations.list

Melihat daftar operasi pemulihan

spanner.databaseOperations.list

Membuat cadangan

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

Memulihkan database dari cadangan

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

Memperbarui cadangan

spanner.backups.update

Menghapus cadangan

spanner.backups.delete

Membuat jadwal pencadangan

spanner.backupSchedules.create

spanner.databases.createBackup

Memperbarui jadwal pencadangan

spanner.backupSchedules.update

Menghapus jadwal pencadangan

spanner.backupSchedules.delete

1 Wajib jika Anda membuat cadangan dari halaman Backup/Restore di tingkat instance, bukan di tingkat database.

Manajemen kebijakan IAM Spanner

Anda dapat mendapatkan, menetapkan, dan menguji kebijakan IAM menggunakan REST atau RPC API pada resource instance, database, dan cadangan 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 selanjutnya