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 ada yang boleh memiliki izin lebih dari yang sebenarnya dibutuhkan.
Saat akun utama (akun pengguna, grup, atau layanan) memanggil Google Cloud API, akun utama tersebut harus memiliki izin IAM yang sesuai untuk menggunakan resource. Untuk memberikan akun utama izin yang diperlukan, Anda memberikan peran IAM kepada akun utama.
Dokumen ini menjelaskan cara menggunakan peran IAM standar 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 bawaan 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. Sebaliknya, akun pengguna, grup, atau layanan diberi akses ke satu atau beberapa peran bawaan atau peran khusus untuk memberi mereka izin melakukan tindakan pada resource.
Anda dapat memberikan akses pada level resource BigQuery berikut:
- Organisasi, folder, atau project
- Koneksi
- Set data
- Tabel atau tampilan
- Tag kebijakan, kebijakan akses baris, atau kebijakan data BigQuery
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 resource 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 bawaan dengan daftar terkait semua izin yang disertakan dalam setiap peran. Perhatikan 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, Notebook Runtime Admin and Dataproc Serverless Editor. |
|
BigQuery Studio User( Combination role of BigQuery Job User, BigQuery Read Session User, Dataform Code Creator, Notebook Runtime User and Dataproc Serverless Editor. |
|
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 khusus untuk BigQuery
Untuk membuat peran IAM khusus 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. Izin ini disertakan dalam peran bawaan dan dapat digunakan dalam definisi peran kustom.
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 pada 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 |
Diwajibkan oleh konsol Google Cloud untuk memberi pengguna opsi mendapatkan set data
izin IAM. 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 |
Diwajibkan oleh konsol Google Cloud untuk memberi pengguna opsi menyetel set data
izin IAM. 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 dari setiap tugas yang dikirimkan oleh pengguna mana pun. |
bigquery.jobs.listExecutionMetadata |
Mencantumkan semua metadata eksekusi tugas (tanpa informasi sensitif) dari setiap tugas yang dikirimkan pengguna. Hal ini hanya dapat diterapkan pada 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 |
Menghapus 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 |
Perbarui metadata model machine learning. Untuk memperbarui data model, Anda memerlukan
bigquery.models.updateData . |
bigquery.models.export |
Mengekspor 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 membaca menggunakan Storage Read API. |
bigquery.readsessions.update |
Memperbarui sesi membaca menggunakan Storage Read API. |
bigquery.reservations.create |
Buat pemesanan slot di project administrasi. |
bigquery.reservations.delete |
Menghapus reservasi slot. |
bigquery.reservations.get |
Mengambil detail tentang reservasi slot. |
bigquery.reservations.list |
Mencantumkan semua reservasi slot dalam project administrasi. |
bigquery.reservations.update |
Memperbarui properti reservasi slot. |
bigquery.reservationAssignments.create |
Buat penetapan pemesanan.
Izin ini diperlukan pada
project pemilik dan resource penerima tugas. |
bigquery.reservationAssignments.delete |
Menghapus penetapan pemesanan.
Izin ini diperlukan pada
project pemilik dan resource penerima tugas. |
bigquery.reservationAssignments.list |
Mencantumkan semua penetapan reservasi dalam project. |
bigquery.reservationAssignments.search |
Menemukan penetapan 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 |
Mendapatkan data dalam tabel yang hanya ingin Anda lihat oleh akun utama dalam daftar penerima 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 Katalog Data 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
|
Buat 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
|
Menghapus 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.listEffectiveTags |
Mencantumkan binding tag yang efektif dengan Cloud Resource Manager API. Dicek saat tanda --effective digunakan. |
bigquery.tables.listTagBindings |
Mencantumkan binding tag dengan Cloud Resource Manager API. |
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
|
Melakukan 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.