Peran dan izin IAM BigQuery
Dokumen ini memberikan informasi tentang peran dan izin Identity and Access Management (IAM) untuk BigQuery. Dengan IAM, Anda dapat memberikan akses terperinci ke resource BigQuery tertentu dan membantu mencegah akses ke resource lain. IAM memungkinkan Anda menerapkan prinsip keamanan dengan hak istimewa terendah, yang menyatakan bahwa tidak boleh ada orang yang memiliki izin lebih dari yang sebenarnya mereka butuhkan.
Saat akun utama (pengguna, grup, atau akun layanan) memanggil Google Cloud API, akun utama tersebut harus memiliki izin IAM yang sesuai agar dapat menggunakan resource. Untuk memberikan akun utama izin yang diperlukan, Anda memberikan peran IAM kepada akun utama.
Dokumen ini menjelaskan cara menggunakan peran IAM yang telah ditetapkan dan kustom untuk mengizinkan akun utama mengakses resource BigQuery.
Untuk mempelajari pengelolaan akses di Google Cloud secara umum, lihat ringkasan IAM.
Jenis peran IAM
Peran adalah kumpulan izin. Anda dapat menggunakan jenis peran berikut di IAM untuk memberikan akses ke resource BigQuery:
- Peran yang telah ditetapkan dikelola oleh Google Cloud dan mendukung kasus penggunaan umum dan pola kontrol akses.
- Peran khusus memberikan akses sesuai dengan daftar izin yang ditentukan pengguna.
Untuk menentukan apakah satu atau beberapa izin disertakan dalam peran, Anda dapat menggunakan salah satu metode berikut:
- Referensi penelusuran izin IAM
- Perintah
gcloud iam roles describe
- Metode
roles.get()
di IAM API
Saat Anda menetapkan beberapa jenis peran kepada pengguna, izin yang diberikan merupakan gabungan dari izin setiap peran.
Untuk informasi tambahan tentang penggunaan IAM untuk mengakses resource, lihat Memberikan, mengubah, dan mencabut akses ke resource dalam dokumentasi IAM.
Untuk mengetahui informasi cara membuat peran khusus, lihat Membuat dan mengelola peran khusus dalam dokumentasi IAM.
Peran IAM di BigQuery
Izin tidak ditetapkan langsung ke pengguna, grup, atau akun layanan. Sebagai gantinya, pengguna, grup, atau akun layanan diberi akses ke satu atau beberapa peran bawaan atau khusus untuk memberi mereka izin agar dapat melakukan tindakan pada resource.
Anda dapat memberikan akses pada level resource BigQuery berikut:
- level organisasi atau project Google Cloud
- level set data
- level tabel atau tabel virtual
Peran yang diterapkan pada level organisasi atau project Google Cloud
Saat menetapkan peran pada level organisasi dan project, Anda memberikan izin untuk menjalankan tugas BigQuery atau mengakses semua resource BigQuery project.
Peran yang diterapkan pada level set data
Anda dapat menetapkan peran pada level set data untuk memberikan akses ke set data tertentu, tanpa memberikan akses lengkap ke resource project. Dalam hierarki kebijakan IAM, set data BigQuery adalah resource turunan dari project. Untuk mengetahui informasi selengkapnya tentang cara menetapkan peran pada level set data, lihat Mengontrol akses ke set data.
Peran diterapkan ke setiap resource dalam set data
Anda dapat menetapkan peran satu per satu ke jenis resource tertentu dalam set data, tanpa memberikan akses lengkap ke resource set data.
Peran dapat diterapkan ke setiap jenis resource berikut:
- tabel
- tabel virtual
Peran tidak dapat diterapkan ke setiap jenis resource berikut:
- rutinitas
- model
Untuk mengetahui informasi selengkapnya tentang cara menetapkan peran pada level tabel atau tabel virtual, lihat Mengontrol akses ke tabel atau tabel virtual.
Peran IAM bawaan BigQuery
Tabel berikut mencantumkan peran IAM BigQuery yang telah ditentukan sebelumnya, dengan daftar yang sesuai dari semua izin yang disertakan dalam setiap peran. Perlu diketahui bahwa setiap izin berlaku untuk jenis resource tertentu.
Role | Permissions |
---|---|
BigQuery Admin( Provides permissions to manage all resources within the project. Can manage all data within the project, and can cancel jobs from other users running within the project. Lowest-level resources where you can grant this role:
|
|
BigQuery Connection Admin(
|
|
BigQuery Connection User(
|
|
BigQuery Data Editor( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role can also create new datasets. Lowest-level resources where you can grant this role:
|
|
BigQuery Data Owner( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role can also create new datasets. Lowest-level resources where you can grant this role:
|
|
BigQuery Data Viewer( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to list all of the resources in the dataset (such as tables, views, snapshots, models, and routines) and to read their data and metadata with applicable APIs and in queries. When applied at the project or organization level, this role can also enumerate all datasets in the project. Additional roles, however, are necessary to allow the running of jobs. Lowest-level resources where you can grant this role:
|
|
BigQuery Filtered Data Viewer( Access to view filtered table data defined by a row access policy |
|
BigQuery Job User( Provides permissions to run jobs, including queries, within the project. Lowest-level resources where you can grant this role:
|
|
BigQuery Metadata Viewer( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role provides permissions to:
Additional roles are necessary to allow the running of jobs. Lowest-level resources where you can grant this role:
|
|
BigQuery Read Session User( Provides the ability to create and use read sessions. Lowest-level resources where you can grant this role:
|
|
BigQuery Resource Admin( Administers BigQuery workloads, including slot assignments, commitments, and reservations. |
|
BigQuery Resource Editor( Manages BigQuery workloads, but is unable to create or modify slot commitments. |
|
BigQuery Resource Viewer( Can view BigQuery workloads, but cannot create or modify slot reservations or commitments. |
|
BigQuery Studio Admin( Combination role of BigQuery Admin, Dataform Admin, and Notebook Runtime Admin. |
|
BigQuery Studio User( Combination role of BigQuery Job User, BigQuery Read Session User, Dataform Code Creator, and Notebook Runtime User. |
|
BigQuery User( When applied to a dataset, this role provides the ability to read the dataset's metadata and list tables in the dataset. When applied to a project, this role also provides the ability to run jobs, including queries,
within the project. A principal with this role can enumerate their own jobs, cancel their own jobs, and
enumerate datasets within a project. Additionally, allows the creation of new datasets within the
project; the creator is granted the BigQuery Data Owner role ( Lowest-level resources where you can grant this role:
|
|
BigQuery Data Policy Admin( Role for managing Data Policies in BigQuery |
|
Masked Reader( Masked read access to sub-resources tagged by the policy tag associated with a data policy, for example, BigQuery columns |
|
Raw Data Reader Beta( Raw read access to sub-resources associated with a data policy, for example, BigQuery columns |
|
BigQuery Data Policy Viewer( Role for viewing Data Policies in BigQuery |
|
Peran IAM kustom untuk BigQuery
Agar dapat membuat peran IAM kustom untuk BigQuery, ikuti langkah-langkah yang diuraikan untuk peran khusus IAM menggunakan izin BigQuery.
Peran dasar BigQuery
Untuk mengetahui informasi tentang peran dasar BigQuery, lihat Peran dasar dan izin BigQuery.
Izin BigQuery
Tabel berikut menjelaskan izin yang tersedia di BigQuery. Peran ini termasuk dalam peran yang telah ditetapkan dan dapat digunakan dalam definisi peran khusus.
Izin | Deskripsi |
---|---|
bigquery.bireservations.get |
Membaca pemesanan BI Engine. |
bigquery.bireservations.update |
Memperbarui pemesanan BI Engine. |
bigquery.capacityCommitments.create |
Membuat komitmen kapasitas dalam project. |
bigquery.capacityCommitments.delete |
Menghapus komitmen kapasitas. |
bigquery.capacityCommitments.get |
Mengambil detail tentang komitmen kapasitas. |
bigquery.capacityCommitments.list |
Mencantumkan semua komitmen kapasitas dalam project. |
bigquery.capacityCommitments.update |
Memperbarui semua komitmen kapasitas dalam project. |
bigquery.config.update |
Membuat konfigurasi. |
bigquery.config.get |
Mendapatkan detail tentang konfigurasi. |
bigquery.connections.create |
Membuat koneksi baru dalam project. |
bigquery.connections.delete |
Menghapus koneksi. |
bigquery.connections.get |
Mendapatkan metadata koneksi. Kredensial dikecualikan. |
bigquery.connections.list |
Mencantumkan koneksi dalam project. |
bigquery.connections.update |
Memperbarui koneksi dan kredensialnya. |
bigquery.connections.updateTag |
Memperbarui tag untuk koneksi. |
bigquery.connections.use |
Menggunakan konfigurasi koneksi untuk terhubung ke sumber data jarak jauh. |
bigquery.connections.delegate |
Mendelegasikan koneksi untuk membuat tabel eksternal yang diotorisasi dan fungsi jarak jauh. |
bigquery.dataPolicies.create |
Membuat kebijakan data baru. |
bigquery.dataPolicies.delete |
Menghapus kebijakan data. |
bigquery.dataPolicies.get |
Mendapatkan metadata tentang kebijakan data. |
bigquery.dataPolicies.getIamPolicy |
Membaca kebijakan data izin IAM. |
bigquery.dataPolicies.list |
Mencantumkan kebijakan data dalam project. |
bigquery.dataPolicies.maskedGet |
Melihat data yang disamarkan di kolom yang memiliki tag kebijakan terkait dengan kebijakan data. |
bigquery.dataPolicies.setIamPolicy |
Menetapkan kebijakan data izin IAM. |
bigquery.dataPolicies.update |
Memperbarui metadata untuk kebijakan data. |
bigquery.datasets.create |
Membuat set data kosong yang baru. |
bigquery.datasets.createTagBinding |
Membuat binding tag resource pada set data. |
bigquery.datasets.delete |
Menghapus set data. |
bigquery.datasets.deleteTagBinding |
Menghapus binding tag resource di set data. |
bigquery.datasets.get |
Mendapatkan metadata dan izin tentang set data.
Izin melihat di Konsol Google Cloud juga memerlukan
izin bigquery.datasets.getIamPolicy . |
bigquery.datasets.getIamPolicy |
Diperlukan oleh konsol Google Cloud untuk memberi pengguna opsi dalam mendapatkan izin IAM set data. Gagal terbuka. Kemampuan untuk benar-benar melakukan operasi
dalam mendapatkan izin dibatasi oleh izin bigquery.datasets.get
. |
bigquery.datasets.link |
Buat set data tertaut. |
bigquery.datasets.listTagBindings |
Mencantumkan binding tag resource pada set data. |
bigquery.datasets.setIamPolicy |
Diperlukan oleh konsol Google Cloud untuk memberi pengguna opsi untuk menetapkan izin IAM
set data. Gagal terbuka. Kemampuan untuk benar-benar melakukan operasi
dalam menyetel izin dibatasi oleh izin bigquery.datasets.update
. |
bigquery.datasets.update |
Memperbarui metadata dan izin untuk set data.
Memberikan izin di Konsol Google Cloud juga memerlukan
izin bigquery.datasets.setIamPolicy . |
bigquery.datasets.updateTag |
Perbarui tag Data Catalog untuk set data. |
bigquery.jobs.create |
Menjalankan tugas (termasuk kueri) dalam project. |
bigquery.jobs.get |
Mendapatkan data dan metadata dari setiap tugas.1 |
bigquery.jobs.list |
Mencantumkan semua tugas dan mengambil metadata dari setiap tugas yang dikirimkan pengguna. Untuk tugas yang dikirimkan oleh pengguna lain, detail dan metadata akan disamarkan. |
bigquery.jobs.listAll |
Mencantumkan semua tugas dan mengambil metadata pada setiap tugas yang dikirimkan oleh pengguna mana pun. |
bigquery.jobs.listExecutionMetadata |
Mencantumkan semua metadata eksekusi tugas (tanpa informasi sensitif) pada tugas apa pun yang dikirimkan oleh pengguna. Kolom ini hanya dapat diterapkan di tingkat organisasi dan digunakan oleh UI Admin. |
bigquery.jobs.delete |
Menghapus metadata tugas. |
bigquery.jobs.update |
Membatalkan setiap tugas.1 |
bigquery.models.create |
Membuat model machine learning baru. |
bigquery.models.delete |
Hapus model machine learning. |
bigquery.models.getData |
Mendapatkan data model machine learning. Untuk mendapatkan metadata model, Anda memerlukan bigquery.models.getMetadata . |
bigquery.models.getMetadata |
Mendapatkan metadata model machine learning. Untuk mendapatkan data model, Anda memerlukan bigquery.models.getData . |
bigquery.models.list |
Mencantumkan model machine learning dan metadata pada model. |
bigquery.models.updateData |
Memperbarui data model machine learning. Untuk memperbarui metadata model, Anda memerlukan bigquery.models.updateMetadata . |
bigquery.models.updateMetadata |
Memperbarui metadata model machine learning. Untuk memperbarui data model, Anda memerlukan bigquery.models.updateData . |
bigquery.models.export |
Ekspor model machine learning. |
bigquery.models.updateTag |
Memperbarui tag Data Catalog untuk model. |
bigquery.readsessions.create |
Buat sesi baca baru menggunakan Storage Read API. |
bigquery.readsessions.getData |
Membaca data dari sesi baca menggunakan Storage Read API. |
bigquery.readsessions.update |
Mengupdate sesi baca menggunakan Storage Read API. |
bigquery.reservations.create |
Buat reservasi slot dalam project administrasi. |
bigquery.reservations.delete |
Hapus reservasi slot. |
bigquery.reservations.get |
Mengambil detail tentang reservasi slot. |
bigquery.reservations.list |
Mencantumkan semua reservasi slot dalam project administrasi. |
bigquery.reservations.update |
Perbarui properti reservasi slot. |
bigquery.reservationAssignments.create |
Buat tugas reservasi.
Izin ini diperlukan untuk
project pemilik dan resource penerima tugas. |
bigquery.reservationAssignments.delete |
Hapus tugas reservasi.
Izin ini diperlukan untuk
project pemilik dan resource penerima tugas. |
bigquery.reservationAssignments.list |
Mencantumkan semua tugas reservasi di project. |
bigquery.reservationAssignments.search |
Menemukan tugas reservasi untuk project, folder, atau organisasi tertentu. |
bigquery.rowAccessPolicies.create |
Membuat kebijakan akses tingkat baris yang baru pada tabel. |
bigquery.rowAccessPolicies.delete |
Menghapus kebijakan akses tingkat baris dari tabel. |
bigquery.rowAccessPolicies.getFilteredData |
Dapatkan data dalam tabel yang hanya ingin Anda lihat oleh akun utama dalam daftar penerima hibah kebijakan akses tingkat baris. Sebaiknya izin ini hanya diberikan pada resource kebijakan akses tingkat baris. |
bigquery.rowAccessPolicies.list |
Mencantumkan semua kebijakan akses tingkat baris pada tabel. |
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions |
Mengakses data historis untuk tabel yang memiliki, atau pernah memiliki, kebijakan akses tingkat baris. |
bigquery.rowAccessPolicies.getIamPolicy |
Mendapatkan kebijakan akses baris izin IAM. |
bigquery.rowAccessPolicies.setIamPolicy |
Menetapkan kebijakan akses baris izin IAM. |
bigquery.rowAccessPolicies.update |
Membuat ulang kebijakan akses tingkat baris. |
bigquery.routines.create |
Membuat rutinitas baru (fungsi dan prosedur yang tersimpan). |
bigquery.routines.delete |
Menghapus rutinitas. |
bigquery.routines.get |
Mendapatkan metadata dan definisi rutinitas. |
bigquery.routines.list |
Mencantumkan rutinitas dan metadata pada rutinitas. |
bigquery.routines.update |
Memperbarui metadata dan definisi rutinitas. |
bigquery.routines.updateTag |
Memperbarui tag Data Catalog untuk rutinitas. |
bigquery.savedqueries.create |
Membuat kueri tersimpan. |
bigquery.savedqueries.delete |
Menghapus kueri tersimpan. |
bigquery.savedqueries.get |
Mendapatkan metadata pada kueri tersimpan. |
bigquery.savedqueries.list |
Mencantumkan kueri tersimpan. |
bigquery.savedqueries.update |
Memperbarui kueri tersimpan. |
bigquery.tables.create |
Membuat tabel baru. |
bigquery.tables.createIndex |
Membuat indeks penelusuran pada tabel. |
bigquery.tables.createSnapshot
|
Membuat snapshot tabel yang baru. |
bigquery.tables.createTagBinding
|
Membuat binding tag resource pada tabel. |
bigquery.tables.delete |
Menghapus tabel. |
bigquery.tables.deleteIndex |
Menghapus indeks penelusuran pada tabel. |
bigquery.tables.deleteSnapshot
|
Menghapus snapshot tabel. |
bigquery.tables.deleteTagBinding
|
Hapus binding tag resource pada tabel. |
bigquery.tables.export |
Mengekspor data tabel dari BigQuery. |
bigquery.tables.get |
Mendapatkan metadata tabel. Untuk mendapatkan data tabel, Anda memerlukan bigquery.tables.getData . |
bigquery.tables.getData |
Mendapatkan data tabel. Izin ini diperlukan untuk membuat kueri data tabel. Untuk mendapatkan metadata tabel, Anda memerlukan bigquery.tables.get . |
bigquery.tables.getIamPolicy |
Membaca tabel kebijakan IAM. |
bigquery.tables.list |
Mencantumkan tabel dan metadata pada tabel. |
bigquery.tables.replicateData |
Mereplikasikan data tabel. Izin ini diperlukan untuk membuat replika tampilan terwujud. |
bigquery.tables.restoreSnapshot
|
Memulihkan snapshot tabel. |
bigquery.tables.setCategory |
Menetapkan tag kebijakan dalam skema tabel. |
bigquery.tables.setIamPolicy |
Mengubah tabel kebijakan IAM. |
bigquery.tables.update |
Memperbarui metadata tabel. |
bigquery.tables.updateData |
Memperbarui data tabel. |
bigquery.tables.updateTag |
Memperbarui tag Data Catalog untuk tabel. |
bigquery.transfers.get |
Mendapatkan metadata transfer. |
bigquery.transfers.update |
Membuat, memperbarui, dan menghapus transfer. |
1 Untuk setiap tugas yang dibuat, Anda secara otomatis memiliki izin yang setara
dengan izin bigquery.jobs.get
dan bigquery.jobs.update
untuk tugas tersebut.
Izin untuk tugas ML BigQuery
Tabel berikut menjelaskan izin yang diperlukan untuk tugas umum BigQuery ML.
Izin | Deskripsi |
---|---|
bigquery.jobs.create bigquery.models.create bigquery.models.getData bigquery.models.updateData |
Membuat model baru menggunakan pernyataan CREATE MODEL |
bigquery.jobs.create bigquery.models.create bigquery.models.getData bigquery.models.updateData bigquery.models.updateMetadata |
Mengganti model yang ada menggunakan pernyataan CREATE OR REPLACE MODEL |
bigquery.models.delete |
Menghapus model menggunakan models.delete API |
bigquery.jobs.create bigquery.models.delete |
Menghapus model menggunakan pernyataan DROP MODEL |
bigquery.models.getMetadata |
Mendapatkan metadata model menggunakan models.get API |
bigquery.models.list |
Mencantumkan model dan metadata pada model menggunakan models.list API |
bigquery.models.updateMetadata |
Memperbarui metadata model menggunakan models.delete API. Jika ingin menyetel atau memperbarui akhir masa berlaku
yang bukan nol untuk Model, izin bigquery.models.delete juga diperlukan |
bigquery.jobs.create bigquery.models.getData
|
Lakukan evaluasi, prediksi, serta pemeriksaan model dan fitur menggunakan fungsi seperti ML.EVALUATE , ML.PREDICT , ML.TRAINING_INFO , dan ML.WEIGHTS . |
bigquery.jobs.create bigquery.models.export
|
Mengekspor model |
bigquery.models.updateTag |
Memperbarui tag Data Catalog untuk model. |
Langkah selanjutnya
- Untuk mengetahui informasi selengkapnya tentang cara menetapkan peran pada level set data, lihat Mengontrol akses ke set data.
- Untuk mengetahui informasi selengkapnya tentang cara menetapkan peran pada level tabel atau tabel virtual, lihat Mengontrol akses ke tabel atau tabel virtual.