Kontrol akses Bigtable dengan IAM
Halaman ini menjelaskan opsi kontrol akses di Bigtable.
Ringkasan
Bigtable menggunakan Identity and Access Management (IAM) untuk kontrol akses. Anda menetapkan kebijakan IAM pada resource untuk mengontrol siapa yang memiliki akses apa ke resource mana.
Resource Bigtable diatur dalam hierarki. Project Google Cloud adalah induk dari instance Bigtable, yang merupakan induk dari cluster dan tabelnya. Tabel adalah induk tampilan yang diotorisasi, sedangkan cluster adalah induk cadangannya. Anda dapat mengonfigurasi kontrol akses di setiap tingkat.
Jika memiliki izin di tingkat tertentu, Anda akan otomatis memiliki izin di bawah tingkat tersebut. Misalnya, jika memiliki akses di tingkat project, Anda akan memiliki akses ke instance, cluster, tabel, dan tampilan yang diotorisasi dalam project tersebut. Jika Anda diberi akses ke tampilan yang diotorisasi, Anda tidak otomatis memiliki akses ke resource tingkat yang lebih tinggi yang merupakan induk dari tampilan yang diotorisasi, seperti tabel dan instance. Perilaku ini disebut pewarisan kebijakan.
Untuk informasi selengkapnya tentang hierarki IAM, lihat Pewarisan kebijakan IAM.
Berikut adalah beberapa contoh penggunaan kontrol akses di tingkat project:
- Mengizinkan pengguna membaca dari, tetapi tidak menulis ke, tabel apa pun dalam project.
- Mengizinkan pengguna membaca dari dan menulis ke tabel apa pun dalam project, tetapi tidak mengelola instance.
- Izinkan pengguna membaca dari dan menulis ke tabel apa pun dalam project, serta mengelola instance.
Contoh penggunaan kontrol akses di tingkat instance mencakup hal berikut:
- Mengizinkan pengguna membaca dari tabel apa pun hanya dalam satu instance dalam project yang memiliki beberapa instance.
- Mengizinkan pengguna hanya mengelola satu instance dalam project yang memiliki beberapa instance.
Contoh penggunaan kontrol akses di tingkat tabel meliputi hal berikut:
- 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 pencadangan 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 diizinkan, tetapi tidak mengubahnya.
- Memungkinkan pengguna melihat data hanya dari salah satu dari beberapa tampilan tabel yang diotorisasi.
Untuk mengetahui deskripsi mendetail 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 prinsipal 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. Anda tidak akan dapat melihat peran Bigtable di konsol Google Cloud hingga 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; sebagai gantinya, Anda menetapkan
peran standar 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 |
Memperbarui setelan untuk profil aplikasi Bigtable. |
Nama izin pencadangan | Deskripsi |
---|---|
bigtable.backups.create |
Membuat cadangan Bigtable. |
bigtable.backups.delete |
Menghapus cadangan Bigtable. |
bigtable.backups.get |
Mendapatkan informasi tentang cadangan Bigtable. |
bigtable.backups.getIamPolicy |
Membaca daftar kontrol akses (ACL) cadangan. Ditampilkan sebagai kebijakan IAM. |
bigtable.backups.list |
Mencantumkan cadangan Bigtable. |
bigtable.backups.restore |
Memulihkan dari cadangan Bigtable. |
bigtable.backups.testIamPermissions |
Mendapatkan izin pemanggil pada pencadangan 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 |
Memperbarui setelan untuk cluster Bigtable. |
Nama izin tablet panas | Deskripsi |
---|---|
bigtable.hotTablets.list |
Mencantumkan tablet panas untuk cluster. |
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 |
Membaca daftar kontrol akses (ACL) instance. Ditampilkan sebagai kebijakan IAM. |
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 pramuat saluran. |
bigtable.instances.setIamPolicy |
Memperbarui ACL. |
bigtable.instances.update |
Memperbarui 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 kunci baris. |
bigtable.keyvisualizer.list |
Mencantumkan informasi Key Visualizer yang tersedia untuk tabel. |
Nama izin akses lokasi | Deskripsi |
---|---|
bigtable.locations.list |
Mencantumkan lokasi Bigtable. |
Nama izin tabel | Deskripsi |
---|---|
bigtable.tables.checkConsistency |
Periksa apakah tabel yang direplikasi sudah yang terbaru. |
bigtable.tables.create |
Membuat tabel |
bigtable.tables.delete |
Menghapus tabel. |
bigtable.tables.generateConsistencyToken |
Buat token untuk memeriksa apakah tabel yang direplikasi sudah yang terbaru. |
bigtable.tables.get |
Mendapatkan informasi tentang tabel, termasuk grup kolom dan setelannya masing-masing. |
bigtable.tables.getIamPolicy |
Membaca ACL tabel. Ditampilkan sebagai kebijakan IAM. |
bigtable.tables.list |
Mencantumkan tabel dalam instance. |
bigtable.tables.mutateRows |
Mengubah baris dalam tabel, atau memotong 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 contoh 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 akses 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 |
Melihat kontrol akses untuk tampilan yang diotorisasi. Ditampilkan sebagai kebijakan IAM. |
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 |
Dapatkan sampel kunci baris yang digunakan dalam tampilan yang diotorisasi. |
bigtable.authorizedViews.setIamPolicy |
Memperbarui kebijakan kontrol akses untuk tampilan yang diotorisasi. |
bigtable.authorizedViews.update |
Memperbarui setelan untuk tampilan yang diizinkan. |
Peran yang telah ditetapkan
Setiap peran bawaan adalah paket berisi satu atau beberapa izin. Misalnya, roles/bigtable.reader
menyediakan akses hanya baca ke informasi tentang instance, cluster, tabel, dan grup kolom Bigtable, serta data yang terdapat 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 |
---|---|
Bigtable Administrator( 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:
|
|
Bigtable Reader( Provides read-only access to the data stored within Bigtable tables. Intended for data scientists, dashboard generators, and other data-analysis scenarios. Lowest-level resources where you can grant this role:
|
|
Bigtable User( Provides read-write access to the data stored within Bigtable tables. Intended for application developers or service accounts. Lowest-level resources where you can grant this role:
|
|
Bigtable Viewer( Provides no data access. Intended as a minimal set of permissions to access the Google Cloud console for Bigtable. Lowest-level resources where you can grant this role:
|
|
Peran khusus
Jika peran bawaan untuk Bigtable tidak memenuhi persyaratan bisnis Anda, Anda dapat menentukan peran khusus Anda sendiri dengan izin yang Anda tentukan.
Jika peran kustom Anda perlu mendukung akses ke konsol Google Cloud, Anda harus mengidentifikasi tugas yang akan dilakukan pengguna, lalu memastikan bahwa peran kustom memiliki izin yang diperlukan untuk setiap tugas, seperti yang ditunjukkan dalam tabel berikut. Jika peran kustom tidak memiliki semua izin yang diperlukan untuk suatu tugas, dan pengguna mencoba melakukan tugas tersebut, konsol Google Cloud tidak akan berfungsi dengan benar.
Tugas konsol Google Cloud | Izin yang diperlukan |
---|---|
Akses dasar ke konsol Google Cloud |
|
Membuat instance atau cluster |
Izin akses dasar, ditambah:
|
Mengubah instance atau cluster |
Izin akses dasar, ditambah:
|
Mengelola konfigurasi replikasi |
Izin akses dasar, ditambah:
|
Menghapus instance atau cluster |
Izin akses dasar, ditambah:
|
Memantau instance dengan melihat grafik |
Izin akses dasar, ditambah:
|
Membuat dan memperbarui tabel |
Izin akses dasar, ditambah:
|
Memulihkan cadangan |
Izin akses dasar, ditambah:
|
Pengelolaan IAM
Bagian ini menjelaskan cara mengelola peran IAM dan izin terkait di level project, instance, tabel, dan pencadangan.
Pengelolaan IAM tingkat project
Di tingkat project, Anda dapat memberikan, mengubah, dan mencabut peran IAM menggunakan konsol Google Cloud, IAM API, atau Google Cloud CLI. Lihat Memberikan, Mengubah, dan Mencabut Akses untuk mengetahui petunjuk mendetail.
Setelah membuat project, Anda dapat memberikan peran IAM tingkat project kepada pengguna berdasarkan tingkat akses tertentu.
Peran yang diperlukan
Sebelum menetapkan peran IAM level instance, level tabel, level cadangan, atau level tampilan resmi untuk pengguna, pastikan pengguna memiliki setidaknya salah satu peran IAM level project berikut:
- Bigtable Viewer (direkomendasikan)
- Bigtable Reader
- Bigtable User
- Bigtable Administrator
Pilih peran tingkat project yang tidak memiliki lebih banyak izin daripada yang benar-benar diperlukan pengguna di semua instance, tabel, pencadangan, atau tampilan resmi dalam project. Oleh karena itu, Anda harus memberikan peran Bigtable Viewer dalam hampir semua kasus.
Jika pengguna tidak memiliki setidaknya salah satu peran tingkat project ini, pengguna tersebut tidak akan memiliki akses ke Bigtable melalui konsol Google Cloud. Konsol Google Cloud memerlukan salah satu peran tingkat project ini agar dapat mengambil informasi tentang instance, cluster, tabel, atau pencadangan atas nama pengguna.
Memberikan peran IAM tingkat instance
Di tingkat instance, Anda dapat memberikan peran bawaan Bigtable kepada pengguna atau akun layanan. Anda juga dapat memberikan peran kustom yang telah Anda tentukan.
Untuk memberikan peran bawaan atau khusus kepada pengguna atau akun layanan di tingkat instance:
Konsol
Buka halaman instance Bigtable di konsol Google Cloud.
Centang kotak di samping instance yang perannya ingin Anda kelola. Panel informasi akan muncul.
Di panel informasi, klik Izin.
Di bagian Add principals, mulai ketik alamat email pengguna atau akun layanan yang ingin Anda tambahkan, lalu klik alamat email pengguna atau akun layanan.
Klik menu drop-down Select a role, lalu klik Bigtable untuk memilih peran yang telah ditetapkan atau Custom untuk memilih peran kustom.
Klik nama setiap peran yang ingin Anda tetapkan.
Klik Tambahkan. Pengguna atau akun layanan diberi peran yang Anda tentukan di tingkat instance.
gcloud
Jika Anda tidak mengetahui ID instance, gunakan perintah
bigtable instances list
untuk melihat daftar instance project Anda:gcloud bigtable instances list
Gunakan perintah
bigtable instances set-iam-policy
:gcloud bigtable instances set-iam-policy \ INSTANCE_ID \ POLICY_FILE
Berikan hal berikut:
- INSTANCE_ID: ID permanen untuk instance.
- POLICY_FILE: Jalur ke file JSON atau YAML lokal yang berisi kebijakan IAM yang valid.
Memberikan peran IAM di tingkat tabel
Di tingkat tabel, Anda dapat memberikan peran predefinsi Bigtable kepada pengguna atau akun layanan. Anda juga dapat memberikan peran kustom yang telah Anda tentukan.
Untuk memberikan peran bawaan atau khusus kepada pengguna atau akun layanan di level tabel:
Konsol
Buka halaman instance Bigtable di konsol Google Cloud.
Klik nama instance yang berisi tabel yang IAM-nya Anda tetapkan.
Pilih Tabel di panel navigasi kiri.
Centang kotak di samping tabel yang perannya ingin Anda kelola. Panel informasi akan muncul.
Di panel informasi, klik Izin.
Di bagian Add principals, mulai ketik alamat email pengguna atau akun layanan yang ingin Anda tambahkan, lalu klik alamat email pengguna atau akun layanan.
Klik menu drop-down Select a role, lalu klik Bigtable untuk memilih peran yang telah ditetapkan atau Custom untuk memilih peran kustom.
Klik nama setiap peran yang ingin Anda tetapkan.
Klik Tambahkan. Pengguna atau akun layanan diberi peran yang Anda tentukan di tingkat tabel.
gcloud
Jika Anda tidak mengetahui ID instance, gunakan perintah
bigtable instances list
untuk melihat daftar instance project Anda:gcloud bigtable instances list
Jika Anda tidak mengetahui ID tabel instance, gunakan perintah
bigtable instances tables list
untuk melihat daftar tabel dalam instance.gcloud bigtable instances tables list --instances=INSTANCE_ID
Berikan hal berikut:
- INSTANCE_ID: ID permanen untuk instance.
Gunakan perintah
bigtable instances tables set-iam-policy
:gcloud bigtable instances tables set-iam-policy \TABLE_ID \ --instance=INSTANCE_ID \ POLICY_FILE
Berikan hal berikut:
- TABLE_ID: ID permanen untuk tabel.
- INSTANCE_ID: ID permanen untuk instance.
- POLICY_FILE: Jalur ke file JSON atau YAML lokal yang berisi kebijakan IAM yang valid.
Memberikan peran IAM tingkat cadangan
Pada tingkat pencadangan, Anda dapat memberikan peran yang telah ditentukan Bigtable kepada pengguna atau akun layanan. Anda juga dapat memberikan peran kustom yang telah Anda tentukan.
Untuk memberikan peran bawaan atau khusus kepada pengguna atau akun layanan di level pencadangan:
gcloud
Jika Anda tidak mengetahui ID instance, gunakan perintah
bigtable instances list
untuk melihat daftar instance project Anda:gcloud bigtable instances list
Jika Anda tidak mengetahui ID cadangan di instance, gunakan perintah
bigtable instances backups list
untuk melihat daftar cadangan di instance.gcloud bigtable backups list --instances=INSTANCE_ID
Berikan hal berikut:
- INSTANCE_ID: ID permanen untuk instance.
Gunakan perintah
gcloud bigtable backups set-iam-policy
:gcloud bigtable backups set-iam-policy BACKUP_ID \ --instance=INSTANCE_ID \ --cluster=CLUSTER_ID \ POLICY_FILE
Berikan hal berikut:
- BACKUP_ID: ID permanen untuk pencadangan.
- INSTANCE_ID: ID permanen untuk instance.
TABLE_ID
: ID permanen untuk tabelPOLICY_FILE
: Jalur ke file JSON atau YAML lokal yang berisi kebijakan IAM yang valid.
Memberikan peran IAM tingkat tampilan yang diotorisasi
Di tingkat tampilan yang diotorisasi, Anda dapat memberikan salah satu peran standar Bigtable kepada pengguna atau akun layanan. Anda juga dapat memberikan peran khusus yang telah Anda tentukan.
Untuk memberikan peran bawaan atau khusus kepada pengguna atau akun layanan di tingkat tampilan yang diotorisasi, lakukan tindakan berikut:
Konsol
Buka daftar instance Bigtable di konsol Google Cloud.
Klik instance yang berisi tampilan yang diotorisasi.
Di panel navigasi, klik Bigtable Studio.
Di penjelajah, luaskan tabel dan Authorized views.
Di samping tampilan yang diotorisasi yang ingin Anda ubah, klik menu tindakan more_vert, lalu klik Berikan akses.
Tambahkan minimal satu akun utama dan pilih peran yang akan ditetapkan kepada akun utama atau grup akun utama tersebut.
Opsional: Untuk memberikan akses untuk peran tambahan, klik Tambahkan peran lain, lalu masukkan akun utama dan peran untuk setiap peran tambahan.
Klik Simpan.
gcloud
Jika Anda tidak mengetahui ID instance, gunakan perintah
bigtable instances list
untuk melihat daftar instance project Anda:gcloud bigtable instances list
Jika Anda tidak mengetahui ID tabel instance, gunakan perintah
bigtable instances tables list
untuk melihat daftar tabel dalam instance.gcloud bigtable instances tables list --instances=INSTANCE_ID
Jika Anda tidak mengetahui ID tampilan, gunakan perintah
bigtable authorized-views list
untuk melihat daftar semua tampilan tabel yang diotorisasi.gcloud bigtable instances tables authorized-views list \ --instance=INSTANCE_ID \ --table=TABLE_ID
Gunakan perintah
bigtable authorized-views set-iam-policy
:gcloud bigtable authorized-views set-iam-policy TABLE_ID \ AUTHORIZED_VIEW_ID --instance=INSTANCE_ID POLICY_FILE
Berikan hal berikut:
INSTANCE_ID
: ID permanen untuk instance.TABLE_ID
: ID permanen untuk tabelAUTHORIZED_VIEW_ID
: ID permanen untuk tampilanPOLICY_FILE
: Jalur ke file JSON atau YAML lokal yang berisi kebijakan IAM yang valid.
IAM Conditions
Dengan IAM Conditions, Anda dapat menentukan dan menerapkan kontrol akses berbasis atribut bersyarat untuk beberapa resource Google Cloud, termasuk resource Bigtable.
Di Bigtable, Anda dapat menerapkan akses kondisional berdasarkan atribut berikut:
- Atribut tanggal/waktu: Gunakan untuk menetapkan akses sementara (kadaluwarsa), terjadwal, atau berdurasi terbatas ke resource Bigtable. Misalnya, Anda dapat mengizinkan pengguna untuk mengakses tabel hingga tanggal tertentu.
- Atribut resource: Gunakan untuk mengonfigurasi akses bersyarat berdasarkan nama resource, jenis resource, atau atribut layanan resource. Di Bigtable, Anda dapat menggunakan atribut instance, cluster, tabel, pencadangan, dan tampilan yang diotorisasi untuk mengonfigurasi akses kondisional. Misalnya, Anda dapat mengizinkan pengguna mengelola tabel hanya pada tabel yang dimulai dengan awalan tertentu, atau Anda dapat mengizinkan pengguna hanya mengakses tabel tertentu.
Untuk mengetahui informasi selengkapnya tentang IAM Conditions, lihat Ringkasan kondisi.
Langkah selanjutnya
Pelajari IAM lebih lanjut.