Kontrol akses Bigtable dengan IAM

Halaman ini menjelaskan opsi kontrol akses di Bigtable.

Ringkasan

Bigtable menggunakan Identity and Access Management (IAM) untuk kontrol akses. Untuk mengontrol siapa yang memiliki akses apa ke resource mana, tetapkan kebijakan IAM pada resource tersebut.

Resource Bigtable diatur dalam hierarki. Project Google Cloud adalah induk dari instance Bigtable, yang merupakan induk dari cluster dan tabelnya. Tabel adalah induk dari tampilan yang diizinkannya, sedangkan cluster adalah induk dari cadangannya. Anda dapat mengonfigurasi kontrol akses di setiap tingkat.

Jika memiliki izin di suatu tingkat, Anda otomatis memiliki izin di bawah tingkat tersebut. Misalnya, jika Anda memiliki akses di tingkat project, maka Anda memiliki akses ke instance, cluster, tabel, tampilan yang diotorisasi, dan tampilan terwujud berkelanjutan dalam project tersebut. Jika Anda diberi akses ke tampilan yang diotorisasi atau tampilan terwujud berkelanjutan, Anda tidak otomatis memiliki akses ke resource tingkat yang lebih tinggi yang merupakan induk dari tampilan yang diotorisasi atau tampilan terwujud berkelanjutan, seperti tabel dan instance. Perilaku ini disebut pewarisan kebijakan.

Untuk mengetahui informasi selengkapnya tentang hierarki IAM, lihat Pewarisan kebijakan IAM.

Berikut beberapa contoh penggunaan kontrol akses di tingkat project:

  • Mengizinkan pengguna membaca, tetapi tidak menulis ke, tabel apa pun dalam project.
  • Mengizinkan pengguna membaca dan menulis ke tabel apa pun dalam project, tetapi tidak mengelola instance.
  • Mengizinkan pengguna membaca dan menulis ke tabel mana pun dalam project, serta mengelola instance.

Contoh penggunaan kontrol akses di tingkat instance meliputi hal berikut:

  • Mengizinkan pengguna membaca dari tabel mana pun hanya dalam satu instance di project yang memiliki beberapa instance.
  • Mengizinkan pengguna mengelola hanya satu instance dalam project yang memiliki beberapa instance.

Contoh penggunaan kontrol akses di tingkat tabel meliputi:

  • Mengizinkan pengguna menulis ke tabel, tetapi tidak membaca dari tabel.
  • Mengizinkan pengguna membaca dari tabel, tetapi tidak menulis ke tabel.

Contoh penggunaan kontrol akses di tingkat backup meliputi:

  • Mencegah pengguna menghapus cadangan.
  • Mencegah pengguna memulihkan dari cadangan.

Contoh penggunaan kontrol akses di tingkat tampilan yang diotorisasi mencakup hal berikut:

  • Mengizinkan pengguna membaca tampilan yang diotorisasi, tetapi tidak mengubahnya.
  • Izinkan pengguna melihat data hanya dari salah satu dari beberapa tampilan tabel yang diberi otorisasi.

Contoh penggunaan kontrol akses di tingkat tampilan terwujud berkelanjutan mencakup hal berikut:

  • Memungkinkan pengguna membaca dari tampilan terwujud berkelanjutan, tetapi tidak mengubah tabel pokok.

Untuk mengetahui informasi selengkapnya tentang IAM dan fitur-fiturnya, lihat panduan developer IAM. Secara khusus, lihat Memberikan, Mengubah, dan Mencabut Akses.

Di Bigtable, Anda tidak dapat memberikan akses ke jenis principal berikut:

Untuk mengetahui daftar izin dan peran yang didukung Bigtable, lihat bagian berikut.

Mengaktifkan Bigtable API

Untuk melihat dan menetapkan peran IAM Bigtable, Anda harus mengaktifkan Bigtable API untuk project Anda. Hingga Anda mengaktifkan API, peran Bigtable tidak akan muncul di konsolGoogle Cloud .

Peran yang diperlukan untuk mengaktifkan API

Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

Mengaktifkan API

Izin

Bagian ini merangkum izin yang didukung Bigtable.

Izin memungkinkan pengguna melakukan tindakan tertentu pada resource Bigtable. Misalnya, izin bigtable.instances.list memungkinkan pengguna mencantumkan semua instance Bigtable dalam project. Anda tidak memberikan izin kepada pengguna secara langsung; tetapi, Anda menetapkan peran bawaan atau peran khusus kepada setiap pengguna, yang memberikan satu atau beberapa izin.

Tabel berikut mencantumkan izin IAM yang terkait dengan Bigtable:

Nama izin profil aplikasi Deskripsi
bigtable.appProfiles.create Buat profil aplikasi Bigtable.
bigtable.appProfiles.delete Menghapus profil aplikasi Bigtable.
bigtable.appProfiles.get Mendapatkan informasi tentang profil aplikasi Bigtable.
bigtable.appProfiles.list Mencantumkan profil aplikasi Bigtable instance.
bigtable.appProfiles.update Perbarui setelan untuk profil aplikasi Bigtable.
Nama izin pencadangan Deskripsi
bigtable.backups.create Buat cadangan Bigtable.
bigtable.backups.delete Menghapus cadangan Bigtable.
bigtable.backups.get Mendapatkan informasi tentang cadangan Bigtable.
bigtable.backups.getIamPolicy Mendapatkan kebijakan IAM cadangan.
bigtable.backups.list Mencantumkan cadangan Bigtable.
bigtable.backups.restore Pulihkan dari cadangan Bigtable.
bigtable.backups.testIamPermissions Mendapatkan izin pemanggil pada cadangan yang ditentukan.
bigtable.backups.read Membaca dari cadangan Bigtable.
bigtable.backups.setIamPolicy Memperbarui ACL cadangan.
bigtable.backups.update Mengubah masa berlaku cadangan Bigtable.
Nama izin cluster Deskripsi
bigtable.clusters.create Buat cluster Bigtable.
bigtable.clusters.delete Menghapus cluster Bigtable.
bigtable.clusters.get Mendapatkan informasi tentang cluster Bigtable.
bigtable.clusters.list Mencantumkan cluster Bigtable instance.
bigtable.clusters.update Perbarui setelan untuk cluster Bigtable.
Nama izin tablet populer Deskripsi
bigtable.hotTablets.list Mencantumkan tablet aktif untuk cluster.
Nama izin tingkat dalam memori (Pratinjau) Deskripsi
bigtable.memoryLayer.get Melihat informasi tentang tingkat dalam memori Bigtable.
bigtable.memoryLayer.list Mencantumkan tingkat dalam memori Bigtable.
bigtable.memoryLayer.update Aktifkan, nonaktifkan, atau ubah ukuran tingkat dalam memori Bigtable.
Nama izin instance Deskripsi
bigtable.instances.create Buat instance Bigtable.
bigtable.instances.createTagBinding Buat tag.
bigtable.instances.delete Menghapus instance Bigtable.
bigtable.instances.deleteTagBinding Menghapus tag.
bigtable.instances.get Mendapatkan informasi tentang instance Bigtable.
bigtable.instances.getIamPolicy Mendapatkan kebijakan IAM instance.
bigtable.instances.list Mencantumkan instance Bigtable project.
bigtable.instances.listEffectiveTagBindings Mencantumkan semua tag yang berlaku untuk instance.
bigtable.instances.listTagBindings Mencantumkan tag instance.
bigtable.instances.ping Mengirim permintaan pengoptimalan saluran.
bigtable.instances.executeQuery Kirim permintaan ExecuteQuery dan PrepareQuery ke instance.
bigtable.instances.setIamPolicy Perbarui ACL.
bigtable.instances.update Perbarui setelan untuk instance Bigtable.
Nama izin Key Visualizer Deskripsi
bigtable.keyvisualizer.get Mendapatkan informasi Key Visualizer tentang tabel, termasuk metadata tentang pola akses dan distribusi row key.
bigtable.keyvisualizer.list Mencantumkan informasi Key Visualizer yang tersedia untuk tabel.
Nama izin lokasi Deskripsi
bigtable.locations.list Mencantumkan lokasi Bigtable.
Nama izin tabel Deskripsi
bigtable.tables.checkConsistency Periksa apakah tabel yang direplikasi sudah terbaru.
bigtable.tables.create Membuat tabel
bigtable.tables.delete Menghapus tabel.
bigtable.tables.generateConsistencyToken Buat token untuk memeriksa apakah tabel yang direplikasi sudah terbaru.
bigtable.tables.get Mendapatkan informasi tentang tabel, termasuk grup kolom dan setelan masing-masing.
bigtable.tables.getIamPolicy Mendapatkan kebijakan IAM tabel.
bigtable.tables.list Mencantumkan tabel dalam instance.
bigtable.tables.mutateRows Ubah baris dalam tabel, atau potong tabel.
bigtable.tables.readRows Membaca baris dari tabel. Hal ini mencakup informasi tentang tabel, seperti grup kolom dan setelan masing-masing.
bigtable.tables.sampleRowKeys Mendapatkan sampel kunci baris yang digunakan dalam tabel.
bigtable.tables.setIamPolicy Memperbarui ACL tabel.
bigtable.tables.undelete Memulihkan tabel yang dihapus.
bigtable.tables.update Memperbarui setelan untuk tabel, termasuk grup kolom dan setelan masing-masing.
Nama izin lokasi Deskripsi
bigtable.locations.list Mencantumkan lokasi Bigtable.
Nama izin tampilan yang diotorisasi Deskripsi
bigtable.authorizedViews.create Buat tampilan yang diotorisasi.
bigtable.authorizedViews.delete Menghapus tampilan yang diotorisasi.
bigtable.authorizedViews.get Mendapatkan informasi tentang tampilan yang diotorisasi.
bigtable.authorizedViews.getIamPolicy Mendapatkan kebijakan IAM tampilan resmi.
bigtable.authorizedViews.list Mencantumkan tampilan yang diizinkan dalam tabel.
bigtable.authorizedViews.mutateRows Mengubah baris dalam tampilan yang diotorisasi.
bigtable.authorizedViews.readRows Membaca baris dari tampilan yang diotorisasi.
bigtable.authorizedViews.sampleRowKeys Mendapatkan sampel kunci baris yang digunakan dalam tampilan yang diotorisasi.
bigtable.authorizedViews.setIamPolicy Memperbarui kebijakan kontrol akses untuk tampilan yang diotorisasi.
bigtable.authorizedViews.update Perbarui setelan untuk tampilan yang diotorisasi.
Nama izin tampilan terwujud berkelanjutan Deskripsi
bigtable.materializedViews.create Buat tampilan terwujud berkelanjutan.
bigtable.materializedViews.delete Menghapus tampilan terwujud berkelanjutan.
bigtable.materializedViews.get Mendapatkan informasi tentang tampilan terwujud berkelanjutan.
bigtable.materializedViews.getIamPolicy Mendapatkan kebijakan IAM tampilan terwujud berkelanjutan.
bigtable.materializedViews.list Mencantumkan tampilan terwujud berkelanjutan dalam instance.
bigtable.materializedViews.readRows Membaca baris dari tampilan terwujud berkelanjutan.
bigtable.materializedViews.sampleRowKeys Mendapatkan sampel kunci baris yang digunakan dalam tampilan terwujud berkelanjutan.
bigtable.materializedViews.setIamPolicy Perbarui kebijakan kontrol akses untuk tampilan terwujud berkelanjutan.
bigtable.materializedViews.update Memperbarui setelan untuk tampilan terwujud berkelanjutan.

Peran yang telah ditetapkan

Setiap peran bawaan adalah paket berisi satu atau beberapa izin. Misalnya, roles/bigtable.reader memberikan akses hanya baca ke informasi tentang instance, cluster, tabel, dan grup kolom Bigtable, serta data yang ada dalam tabel Anda. Anda menetapkan peran kepada pengguna atau grup, yang memungkinkan mereka melakukan tindakan pada resource di project Anda.

Tabel berikut mencantumkan peran bawaan untuk Bigtable, termasuk daftar izin yang terkait dengan setiap peran:

Role Permissions

(roles/bigtable.admin)

Administers all Bigtable instances within a project, including the data stored within tables. Can create new instances. Intended for project administrators.

Lowest-level resources where you can grant this role:

  • Table

bigtable.*

  • bigtable.appProfiles.create
  • bigtable.appProfiles.delete
  • bigtable.appProfiles.get
  • bigtable.appProfiles.list
  • bigtable.appProfiles.update
  • bigtable.authorizedViews.create
  • bigtable.authorizedViews.createTagBinding
  • bigtable.authorizedViews.delete
  • bigtable.authorizedViews.deleteTagBinding
  • bigtable.authorizedViews.get
  • bigtable.authorizedViews.getIamPolicy
  • bigtable.authorizedViews.list
  • bigtable.authorizedViews.listEffectiveTags
  • bigtable.authorizedViews.listTagBindings
  • bigtable.authorizedViews.mutateRows
  • bigtable.authorizedViews.readRows
  • bigtable.authorizedViews.sampleRowKeys
  • bigtable.authorizedViews.setIamPolicy
  • bigtable.authorizedViews.update
  • bigtable.backups.create
  • bigtable.backups.delete
  • bigtable.backups.get
  • bigtable.backups.getIamPolicy
  • bigtable.backups.list
  • bigtable.backups.read
  • bigtable.backups.restore
  • bigtable.backups.setIamPolicy
  • bigtable.backups.update
  • bigtable.clusters.create
  • bigtable.clusters.delete
  • bigtable.clusters.get
  • bigtable.clusters.list
  • bigtable.clusters.update
  • bigtable.hotTablets.list
  • bigtable.instances.create
  • bigtable.instances.createTagBinding
  • bigtable.instances.delete
  • bigtable.instances.deleteTagBinding
  • bigtable.instances.executeQuery
  • bigtable.instances.get
  • bigtable.instances.getIamPolicy
  • bigtable.instances.list
  • bigtable.instances.listEffectiveTags
  • bigtable.instances.listTagBindings
  • bigtable.instances.ping
  • bigtable.instances.setIamPolicy
  • bigtable.instances.update
  • bigtable.keyvisualizer.get
  • bigtable.keyvisualizer.list
  • bigtable.locations.list
  • bigtable.logicalViews.create
  • bigtable.logicalViews.delete
  • bigtable.logicalViews.get
  • bigtable.logicalViews.getIamPolicy
  • bigtable.logicalViews.list
  • bigtable.logicalViews.readRows
  • bigtable.logicalViews.setIamPolicy
  • bigtable.logicalViews.update
  • bigtable.materializedViews.create
  • bigtable.materializedViews.delete
  • bigtable.materializedViews.get
  • bigtable.materializedViews.getIamPolicy
  • bigtable.materializedViews.list
  • bigtable.materializedViews.readRows
  • bigtable.materializedViews.sampleRowKeys
  • bigtable.materializedViews.setIamPolicy
  • bigtable.materializedViews.update
  • bigtable.memoryLayers.get
  • bigtable.memoryLayers.list
  • bigtable.memoryLayers.update
  • bigtable.schemaBundles.create
  • bigtable.schemaBundles.delete
  • bigtable.schemaBundles.get
  • bigtable.schemaBundles.getIamPolicy
  • bigtable.schemaBundles.list
  • bigtable.schemaBundles.setIamPolicy
  • bigtable.schemaBundles.update
  • bigtable.tables.checkConsistency