Mengontrol akses ke resource dengan IAM
Dokumen ini menjelaskan cara melihat, memberikan, dan mencabut kontrol akses untuk set data, tabel, dan tampilan BigQuery, serta rutin.
Dokumen ini mengasumsikan Anda telah memahami Identity and Access Management (IAM) di Trusted Cloud by S3NS.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengubah kebijakan IAM untuk resource, minta administrator Anda untuk memberi Anda peran IAM BigQuery Data Owner (roles/bigquery.dataOwner
) di project.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk mengubah kebijakan IAM untuk resource. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan guna mengubah kebijakan IAM untuk resource:
-
Untuk mendapatkan kebijakan akses set data:
bigquery.datasets.get
-
Untuk menetapkan kebijakan akses set data:
bigquery.datasets.update
-
Untuk mendapatkan kebijakan akses set data (khusus konsolTrusted Cloud ):
bigquery.datasets.getIamPolicy
-
Untuk menetapkan kebijakan akses set data (khusus konsol):
bigquery.datasets.setIamPolicy
-
Untuk mendapatkan kebijakan tabel atau tabel virtual:
bigquery.tables.getIamPolicy
-
Untuk menyetel kebijakan tabel atau tabel virtual:
bigquery.tables.setIamPolicy
-
Untuk mendapatkan kebijakan akses rutin:
bigquery.routines.getIamPolicy
-
Untuk menetapkan kebijakan akses rutin:
bigquery.routines.setIamPolicy
-
Untuk membuat alat bq atau tugas BigQuery SQL (opsional):
bigquery.jobs.create
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Melihat binding kontrol akses untuk set data
Untuk melihat binding kontrol akses untuk set data, pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di panel Explorer, luaskan project Anda dan pilih set data.
Klik > Permissions.
SharingKebijakan akses set data akan muncul di panel Dataset Permissions.
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Untuk mendapatkan kebijakan yang ada dan menghasilkannya ke file lokal di JSON, gunakan perintah
bq show
di Cloud Shell:bq show \ --format=prettyjson \ PROJECT_ID:DATASET > PATH_TO_FILE
Ganti kode berikut:
- PROJECT_ID: project ID Anda
- DATASET: nama set data Anda
- PATH_TO_FILE: jalur ke file JSON di komputer lokal Anda
API
Untuk melihat kebijakan akses set data, panggil metode
datasets.get
dengan resource
dataset
yang ditentukan.
Kebijakan ini tersedia di properti access
dari resource dataset
yang ditampilkan.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
client.Dataset().Metadata()
. Kebijakan akses tersedia di properti Access
.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Dataset#getMetadata()
.
Kebijakan akses tersedia di properti akses objek metadata yang dihasilkan.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
client.get_dataset()
.
Kebijakan akses tersedia di
properti dataset.access_entries
.
Melihat binding kontrol akses untuk tabel atau tabel virtual
Untuk melihat binding kontrol akses untuk tabel atau tampilan, pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di panel Explorer, luaskan project Anda dan pilih tabel atau tabel virtual.
Klik
Share.Kebijakan akses tabel atau tabel virtual akan muncul di panel Share.
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Untuk mendapatkan kebijakan akses yang ada dan menghasilkannya ke file lokal di JSON, gunakan perintah
bq get-iam-policy
di Cloud Shell:bq get-iam-policy \ --table=true \ PROJECT_ID:DATASET.RESOURCE > PATH_TO_FILE
Ganti kode berikut:
- PROJECT_ID: project ID Anda
- DATASET: nama set data Anda
- RESOURCE: nama tabel atau tampilan yang kebijakannya ingin Anda lihat
- PATH_TO_FILE: jalur ke file JSON di komputer lokal Anda
API
Untuk mengambil kebijakan saat ini, panggil metode tables.getIamPolicy
.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
IAM().Policy()
resource. Kemudian, panggil fungsi Roles()
untuk mendapatkan kebijakan akses tabel atau tabel virtual.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Table#getIamPolicy()
.
Detail kebijakan akses tersedia di objek kebijakan yang ditampilkan.
Melihat kontrol akses yang diwariskan untuk resource
Anda dapat memeriksa peran IAM yang diwariskan untuk resource menggunakan UI web BigQuery. Anda memerlukan izin yang sesuai untuk melihat pewarisan di konsol. Untuk memeriksa pewarisan set data, tabel, tampilan, atau rutinitas:
Di Trusted Cloud konsol, buka halaman BigQuery.
Di panel Explorer, klik set data, atau luaskan set data dan pilih tabel, tampilan, atau rutin.
Untuk set data, klik Berbagi. Untuk tabel, tampilan, atau rutinitas, klik Bagikan.
Pastikan opsi Show inherited roles in table diaktifkan.
Luaskan peran dalam tabel.
Di kolom Pewarisan, ikon heksagonal menunjukkan apakah peran diwarisi dari resource induk.
Melihat binding kontrol akses untuk rutinitas
Untuk melihat binding kontrol akses untuk rutinitas, pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di panel Explorer, luaskan project Anda, luaskan set data, lalu pilih rutinitas.
Klik
Bagikan.Kontrol akses rutin akan muncul di panel Share.
bq
Perintah bq get-iam-policy
tidak memberikan dukungan untuk melihat kontrol akses pada rutinitas.
API
Untuk mengambil kebijakan saat ini, panggil metode routines.getIamPolicy
.
Memberikan akses ke resource
Bagian berikut menjelaskan cara memberikan akses ke berbagai resource.
Memberikan akses ke set data
Anda dapat memberikan akses ke set data dengan memberikan izin peran IAM untuk mengakses set data atau dengan memberikan akses secara bersyarat menggunakan kondisi IAM. Untuk mengetahui informasi selengkapnya tentang pemberian akses bersyarat, lihat Mengontrol akses dengan Kondisi IAM.
Untuk memberikan akses peran IAM ke set data tanpa menggunakan kondisi, pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di panel Explorer, luaskan project Anda dan pilih set data untuk dibagikan.
Klik > Permissions.
SharingKlik
Add principal.Di kolom New principals, masukkan akun utama.
Di daftar Select a role, pilih peran yang telah ditetapkan atau peran khusus.
Klik Save.
Untuk kembali ke info set data, klik Close.
SQL
Untuk memberikan akses ke set data kepada akun utama, gunakan pernyataan DCL GRANT
:
Di Trusted Cloud konsol, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
GRANT `ROLE_LIST` ON SCHEMA RESOURCE_NAME TO "USER_LIST"
Ganti kode berikut:
ROLE_LIST
: peran atau daftar peran yang dipisahkan koma yang ingin Anda berikanRESOURCE_NAME
: nama resource yang ingin Anda beri izinUSER_LIST
: daftar pengguna yang dipisahkan koma yang diberi peranUntuk mengetahui daftar format yang valid, lihat
user_list
.
Klik
Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
Contoh berikut memberikan peran Data Viewer pada set data myDataset
:
GRANT `roles/bigquery.dataViewer`
ON SCHEMA `myProject`.myDataset
TO "user:raha@example-pet-store.com", "user:sasha@example-pet-store.com"
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Untuk menulis informasi set data yang ada (termasuk kontrol akses) ke file JSON, gunakan perintah
bq show
:bq show \ --format=prettyjson \ PROJECT_ID:DATASET > PATH_TO_FILE
Ganti kode berikut:
- PROJECT_ID: project ID Anda
- DATASET: nama set data Anda
- PATH_TO_FILE: jalur ke file JSON di komputer lokal Anda
Buat perubahan pada bagian
access
pada file JSON. Anda dapat menambahkan ke salah satu entrispecialGroup
:projectOwners
,projectWriters
,projectReaders
, danallAuthenticatedUsers
. Anda juga dapat menambahkan salah satu dari:userByEmail
,groupByEmail
, dandomain
.Misalnya, bagian
access
pada file JSON set data akan terlihat seperti berikut:{ "access": [ { "role": "READER", "specialGroup": "projectReaders" }, { "role": "WRITER", "specialGroup": "projectWriters" }, { "role": "OWNER", "specialGroup": "projectOwners" }, { "role": "READER", "specialGroup": "allAuthenticatedUsers" }, { "role": "READER", "domain": "domain_name" }, { "role": "WRITER", "userByEmail": "user_email" }, { "role": "READER", "groupByEmail": "group_email" } ], ... }
Setelah pengeditan selesai, gunakan perintah
bq update
dan sertakan file JSON menggunakan flag--source
. Jika set data berada dalam project selain project default Anda, tambahkan project ID ke nama set data dalam format berikut:PROJECT_ID:DATASET
.bq update
--source PATH_TO_FILE
PROJECT_ID:DATASETUntuk memverifikasi perubahan kontrol akses, gunakan kembali perintah
bq show
tanpa perlu menulis informasi tersebut ke file:bq show --format=prettyjson PROJECT_ID:DATASET
- Luncurkan Cloud Shell.
-
Tetapkan project default Trusted Cloud tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka Trusted Cloud project Anda untuk melihat hasilnya. Di konsol Trusted Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
Terraform
Gunakan resource google_bigquery_dataset_iam
untuk memperbarui akses ke set data.
Menetapkan kebijakan akses untuk set data
Contoh berikut menunjukkan cara menggunakan
resource google_bigquery_dataset_iam_policy
untuk menetapkan kebijakan IAM untuk
set data mydataset
. Tindakan ini akan menggantikan kebijakan apa pun yang sudah ada dan telah dilampirkan ke set data:
# This file sets the IAM policy for the dataset created by # https://github.com/terraform-google-modules/terraform-docs-samples/blob/main/bigquery/bigquery_create_dataset/main.tf. # You must place it in the same local directory as that main.tf file, # and you must have already applied that main.tf file to create # the "default" dataset resource with a dataset_id of "mydataset". data "google_iam_policy" "iam_policy" { binding { role = "roles/bigquery.admin" members = [ "user:hao@altostrat.com", ] } binding { role = "roles/bigquery.dataOwner" members = [ "group:dba@altostrat.com", ] } binding { role = "roles/bigquery.dataEditor" members = [ "serviceAccount:bqcx-1234567891011-12a3@gcp-sa-bigquery-condel.s3ns-system.iam.gserviceaccount.com", ] } } resource "google_bigquery_dataset_iam_policy" "dataset_iam_policy" { dataset_id = google_bigquery_dataset.default.dataset_id policy_data = data.google_iam_policy.iam_policy.policy_data }
Menetapkan keanggotaan peran untuk set data
Contoh berikut menunjukkan cara menggunakan
resource google_bigquery_dataset_iam_binding
untuk menetapkan keanggotaan dalam peran tertentu untuk set data mydataset
. Tindakan ini akan menggantikan keanggotaan yang ada dalam peran tersebut.
Peran lain dalam kebijakan IAM untuk set data dipertahankan:
# This file sets membership in an IAM role for the dataset created by # https://github.com/terraform-google-modules/terraform-docs-samples/blob/main/bigquery/bigquery_create_dataset/main.tf. # You must place it in the same local directory as that main.tf file, # and you must have already applied that main.tf file to create # the "default" dataset resource with a dataset_id of "mydataset". resource "google_bigquery_dataset_iam_binding" "dataset_iam_binding" { dataset_id = google_bigquery_dataset.default.dataset_id role = "roles/bigquery.jobUser" members = [ "user:raha@altostrat.com", "group:analysts@altostrat.com" ] }
Menetapkan keanggotaan peran untuk satu akun utama
Contoh berikut menunjukkan cara menggunakan
resource google_bigquery_dataset_iam_member
untuk memperbarui kebijakan IAM untuk set data mydataset
guna memberikan peran kepada satu akun utama. Memperbarui kebijakan IAM ini tidak memengaruhi akses untuk akun utama lain yang telah diberi peran tersebut untuk set data.
# This file adds a member to an IAM role for the dataset created by # https://github.com/terraform-google-modules/terraform-docs-samples/blob/main/bigquery/bigquery_create_dataset/main.tf. # You must place it in the same local directory as that main.tf file, # and you must have already applied that main.tf file to create # the "default" dataset resource with a dataset_id of "mydataset". resource "google_bigquery_dataset_iam_member" "dataset_iam_member" { dataset_id = google_bigquery_dataset.default.dataset_id role = "roles/bigquery.user" member = "user:yuri@altostrat.com" }
Untuk menerapkan konfigurasi Terraform di project Trusted Cloud , selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
Menerapkan perubahan
API
Untuk menerapkan kontrol akses saat set data dibuat, panggil metode datasets.insert
dengan resource set data yang ditentukan.
Untuk memperbarui kontrol akses, panggil metode datasets.patch
dan gunakan properti access
di resource Dataset
.
Karena metode datasets.update
menggantikan seluruh resource set data, datasets.patch
adalah metode yang lebih disukai untuk memperbarui kontrol akses.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
DatasetMetadataToUpdate
. Kemudian, panggil
fungsi dataset.Update()
untuk memperbarui properti.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
dataset.access_entries
dengan kontrol akses untuk set data. Kemudian, panggil
fungsi client.update_dataset()
untuk memperbarui properti.
Memberikan akses ke tabel atau tabel virtual
Pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di panel Explorer, luaskan project Anda dan pilih tabel atau tampilan untuk dibagikan.
Klik
Bagikan.Klik
Add principal.Di kolom New principals, masukkan akun utama.
Di daftar Select a role, pilih peran yang telah ditetapkan atau peran khusus.
Klik Save.
Untuk kembali ke tabel atau melihat detail, klik Close.
SQL
Untuk memberikan akses ke tabel atau tabel virtual kepada akun utama, gunakan pernyataan DCL GRANT
:
Di Trusted Cloud konsol, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
GRANT `ROLE_LIST` ON RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST"
Ganti kode berikut:
ROLE_LIST
: peran atau daftar peran yang dipisahkan koma yang ingin Anda berikanRESOURCE_TYPE
: jenis resource tempat peran diterapkanNilai yang didukung mencakup
TABLE
,VIEW
,MATERIALIZED VIEW
, danEXTERNAL TABLE
.RESOURCE_NAME
: nama resource yang ingin Anda beri izinUSER_LIST
: daftar pengguna yang dipisahkan koma yang diberi peranUntuk daftar format yang valid, lihat
user_list
.
Klik
Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
Contoh berikut memberikan peran Data Viewer pada tabel myTable
:
GRANT `roles/bigquery.dataViewer`
ON TABLE `myProject`.myDataset.myTable
TO "user:raha@example-pet-store.com", "user:sasha@example-pet-store.com"
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Untuk memberikan akses ke tabel atau tabel virtual, gunakan perintah
bq add-iam-policy-binding
:bq add-iam-policy-binding --member=MEMBER_TYPE:MEMBER --role=ROLE --table=true RESOURCE
Ganti kode berikut:
- MEMBER_TYPE: jenis anggota, seperti
user
,group
,serviceAccount
, ataudomain
. - MEMBER: alamat email atau nama domain anggota.
- ROLE: peran yang ingin Anda berikan kepada anggota.
- RESOURCE: nama tabel atau tampilan yang kebijakannya ingin Anda perbarui.
- MEMBER_TYPE: jenis anggota, seperti
- Luncurkan Cloud Shell.
-
Tetapkan project default Trusted Cloud tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka Trusted Cloud project Anda untuk melihat hasilnya. Di konsol Trusted Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
Untuk mengambil kebijakan saat ini, panggil metode
tables.getIamPolicy
.Edit kebijakan untuk menambahkan anggota atau binding, atau keduanya. Untuk mengetahui format yang diperlukan untuk kebijakan, lihat topik referensi Kebijakan.
Panggil
tables.setIamPolicy
untuk menulis kebijakan yang diperbarui.
Terraform
Gunakan resource google_bigquery_table_iam
untuk memperbarui akses ke tabel.
Menetapkan kebijakan akses untuk tabel
Contoh berikut menunjukkan cara menggunakan
resource google_bigquery_table_iam_policy
untuk menetapkan kebijakan IAM untuk tabel
mytable
. Tindakan ini akan menggantikan kebijakan apa pun yang sudah ada dan telah dilampirkan ke tabel:
# This file sets the IAM policy for the table created by # https://github.com/terraform-google-modules/terraform-docs-samples/blob/main/bigquery/bigquery_create_table/main.tf. # You must place it in the same local directory as that main.tf file, # and you must have already applied that main.tf file to create # the "default" table resource with a table_id of "mytable". data "google_iam_policy" "iam_policy" { binding { role = "roles/bigquery.dataOwner" members = [ "user:raha@altostrat.com", ] } } resource "google_bigquery_table_iam_policy" "table_iam_policy" { dataset_id = google_bigquery_table.default.dataset_id table_id = google_bigquery_table.default.table_id policy_data = data.google_iam_policy.iam_policy.policy_data }
Menetapkan keanggotaan peran untuk tabel
Contoh berikut menunjukkan cara menggunakan
google_bigquery_table_iam_binding
resource
untuk menetapkan keanggotaan dalam peran tertentu untuk tabel
mytable
. Tindakan ini akan menggantikan keanggotaan yang ada dalam peran tersebut.
Peran lain dalam kebijakan IAM untuk tabel dipertahankan.
# This file sets membership in an IAM role for the table created by # https://github.com/terraform-google-modules/terraform-docs-samples/blob/main/bigquery/bigquery_create_table/main.tf. # You must place it in the same local directory as that main.tf file, # and you must have already applied that main.tf file to create # the "default" table resource with a table_id of "mytable". resource "google_bigquery_table_iam_binding" "table_iam_binding" { dataset_id = google_bigquery_table.default.dataset_id table_id = google_bigquery_table.default.table_id role = "roles/bigquery.dataOwner" members = [ "group:analysts@altostrat.com", ] }
Menetapkan keanggotaan peran untuk satu akun utama
Contoh berikut menunjukkan cara menggunakan
resource google_bigquery_table_iam_member
untuk memperbarui kebijakan IAM untuk tabel mytable
guna memberikan peran kepada satu akun utama. Memperbarui kebijakan IAM ini tidak memengaruhi akses untuk akun utama lain yang telah diberi peran tersebut untuk set data.
# This file adds a member to an IAM role for the table created by # https://github.com/terraform-google-modules/terraform-docs-samples/blob/main/bigquery/bigquery_create_table/main.tf. # You must place it in the same local directory as that main.tf file, # and you must have already applied that main.tf file to create # the "default" table resource with a table_id of "mytable". resource "google_bigquery_table_iam_member" "table_iam_member" { dataset_id = google_bigquery_table.default.dataset_id table_id = google_bigquery_table.default.table_id role = "roles/bigquery.dataEditor" member = "serviceAccount:bqcx-1234567891011-12a3@gcp-sa-bigquery-condel.s3ns-system.iam.gserviceaccount.com" }
Untuk menerapkan konfigurasi Terraform di project Trusted Cloud , selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
Menerapkan perubahan
API
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
IAM().SetPolicy()
resource untuk menyimpan perubahan pada kebijakan akses tabel atau tabel virtual.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Table#getIamPolicy()
untuk mengambil kebijakan IAM saat ini untuk tabel atau tampilan, ubah kebijakan dengan menambahkan binding baru, lalu gunakan
fungsi Table#setIamPolicy()
untuk menyimpan perubahan pada kebijakan akses.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
client.set_iam_policy()
untuk menyimpan perubahan pada kebijakan akses untuk tabel atau tabel virtual.
Memberikan akses ke rutinitas
Untuk memberikan masukan atau meminta dukungan terkait fitur ini, kirim email ke bq-govsec-eng@google.com.
Pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di panel Explorer, luaskan project dan set data Anda, lalu pilih rutinitas yang akan dibagikan.
Klik
Bagikan.Klik
Tambahkan anggota.Di kolom New members, masukkan akun utama.
Di daftar Select a role, pilih peran yang telah ditetapkan atau peran khusus.
Klik Simpan.
Untuk kembali ke info rutinitas, klik Selesai.
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Untuk menulis informasi rutin yang ada (termasuk kontrol akses) ke file JSON, gunakan perintah
bq get-iam-policy
:bq get-iam-policy \ PROJECT_ID:DATASET.ROUTINE \ > PATH_TO_FILE
Ganti kode berikut:
- PROJECT_ID: project ID Anda
- DATASET: nama set data yang berisi rutin yang ingin Anda perbarui
- ROUTINE: nama resource yang akan diupdate
- PATH_TO_FILE: jalur ke file JSON di komputer lokal Anda
Buat perubahan pada bagian
bindings
pada file JSON. Binding mengikat satu atau beberapamembers
, atau akun utama, kerole
tunggal. Akun utama dapat berupa akun pengguna, akun layanan, grup Google, dan domain. Misalnya, bagianbindings
pada file JSON rutin akan terlihat seperti berikut:{ "bindings": [ { "role": "roles/bigquery.dataViewer", "members": [ "user:izumi@example.com", "group:admins@example.com", "domain:google.com", ] }, ], "etag": "BwWWja0YfJA=", "version": 1 }
Untuk memperbarui kebijakan akses, gunakan perintah
bq set-iam-policy
:bq set-iam-policy PROJECT_ID:DATASET.ROUTINE PATH_TO_FILE
Untuk memverifikasi perubahan kontrol akses Anda, gunakan perintah
bq get-iam-policy
lagi tanpa perlu menulis informasi tersebut ke file:bq get-iam-policy --format=prettyjson \\ PROJECT_ID:DATASET.ROUTINE
Untuk mengambil kebijakan saat ini, panggil metode
routines.getIamPolicy
.Edit kebijakan untuk menambahkan anggota, binding, atau keduanya. Untuk mengetahui format yang diperlukan untuk kebijakan, lihat topik referensi Kebijakan.
Panggil
routines.setIamPolicy
untuk menulis kebijakan yang diperbarui.
API
Mencabut akses ke resource
Bagian berikut menjelaskan cara mencabut akses ke berbagai resource.
Mencabut akses ke set data
Pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di panel Explorer, luaskan project Anda dan pilih set data.
Di panel detail, klik Sharing > Permissions.
Pada dialog Dataset Permissions, luaskan akun utama yang aksesnya ingin Anda cabut.
Klik
Remove principal.Pada dialog Hapus peran dari akun utama?, klik Hapus.
Untuk kembali ke detail set data, klik Close.
SQL
Untuk menghapus akses ke set data dari akun utama, gunakan pernyataan DCL REVOKE
:
Di Trusted Cloud konsol, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
REVOKE `ROLE_LIST` ON SCHEMA RESOURCE_NAME FROM "USER_LIST"
Ganti kode berikut:
ROLE_LIST
: peran atau daftar peran yang dipisahkan koma yang ingin Anda cabutRESOURCE_NAME
: nama resource yang izinnya ingin Anda cabutUSER_LIST
: daftar pengguna yang dipisahkan koma yang perannya akan dicabutUntuk mengetahui daftar format yang valid, lihat
user_list
.
Klik
Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
Contoh berikut mencabut peran Admin pada set data myDataset
:
REVOKE `roles/bigquery.admin`
ON SCHEMA `myProject`.myDataset
FROM "group:example-team@example-pet-store.com", "serviceAccount:user@test-project.s3ns-system.iam.gserviceaccount.com"
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Untuk menulis informasi set data yang ada (termasuk kontrol akses) ke file JSON, gunakan perintah
bq show
:bq show \ --format=prettyjson \ PROJECT_ID:DATASET > PATH_TO_FILE
Ganti kode berikut:
- PROJECT_ID: project ID Anda
- DATASET: nama set data Anda
- PATH_TO_FILE: jalur ke file JSON di komputer lokal Anda
Buat perubahan pada bagian
access
pada file JSON. Anda dapat menghapus salah satu entrispecialGroup
:projectOwners
,projectWriters
,projectReaders
, danallAuthenticatedUsers
. Anda juga dapat menghapus salah satu dari:userByEmail
,groupByEmail
, dandomain
.Misalnya, bagian
access
pada file JSON set data akan terlihat seperti berikut:{ "access": [ { "role": "READER", "specialGroup": "projectReaders" }, { "role": "WRITER", "specialGroup": "projectWriters" }, { "role": "OWNER", "specialGroup": "projectOwners" }, { "role": "READER", "specialGroup": "allAuthenticatedUsers" }, { "role": "READER", "domain": "domain_name" }, { "role": "WRITER", "userByEmail": "user_email" }, { "role": "READER", "groupByEmail": "group_email" } ], ... }
Setelah pengeditan selesai, gunakan perintah
bq update
dan sertakan file JSON menggunakan flag--source
. Jika set data berada dalam project selain project default Anda, tambahkan project ID ke nama set data dalam format berikut:PROJECT_ID:DATASET
.bq update
--source PATH_TO_FILE
PROJECT_ID:DATASETUntuk memverifikasi perubahan kontrol akses, gunakan kembali perintah
show
tanpa perlu menulis informasi tersebut ke file:bq show --format=prettyjson PROJECT_ID:DATASET
API
Panggil datasets.patch
dan gunakan properti access
di resource Dataset
untuk memperbarui kontrol akses.
Karena metode datasets.update
menggantikan seluruh resource set data, datasets.patch
adalah metode yang lebih disukai untuk memperbarui kontrol akses.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
DatasetMetadataToUpdate
. Kemudian, panggil
fungsi dataset.Update()
untuk memperbarui properti.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Dataset#get()
untuk mengambil metadata saat ini. Ubah properti akses untuk mengecualikan entity yang diinginkan, lalu panggil fungsi
Dataset#setMetadata()
untuk menerapkan daftar akses yang diperbarui.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
dataset.access_entries
dengan kontrol akses untuk set data. Kemudian, panggil
fungsi client.update_dataset()
untuk memperbarui properti.
Mencabut akses ke tabel atau tabel virtual
Pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di panel Explorer, luaskan project Anda dan pilih tabel atau tabel virtual.
Di panel detail, klik Share.
Pada dialog Share, luaskan akun utama yang aksesnya ingin Anda cabut.
Klik
Delete.Pada dialog Hapus peran dari akun utama?, klik Hapus.
Untuk kembali ke tabel atau melihat detail, klik Close.
SQL
Untuk menghapus akses ke tabel atau tabel virtual dari akun utama, gunakan pernyataan DCL REVOKE
:
Di Trusted Cloud konsol, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
REVOKE `ROLE_LIST` ON RESOURCE_TYPE RESOURCE_NAME FROM "USER_LIST"
Ganti kode berikut:
ROLE_LIST
: peran atau daftar peran yang dipisahkan koma yang ingin Anda cabutRESOURCE_TYPE
: jenis resource tempat peran dicabutNilai yang didukung mencakup
TABLE
,VIEW
,MATERIALIZED VIEW
, danEXTERNAL TABLE
.RESOURCE_NAME
: nama resource yang izinnya ingin Anda cabutUSER_LIST
: daftar pengguna yang dipisahkan koma yang perannya akan dicabutUntuk daftar format yang valid, lihat
user_list
.
Klik
Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
Contoh berikut mencabut peran Admin pada tabel myTable
:
REVOKE `roles/bigquery.admin`
ON TABLE `myProject`.myDataset.myTable
FROM "group:example-team@example-pet-store.com", "serviceAccount:user@test-project.s3ns-system.iam.gserviceaccount.com"
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Untuk mencabut akses ke tabel atau tampilan, gunakan perintah
bq remove-iam-policy-binding
:bq remove-iam-policy-binding --member=MEMBER_TYPE:MEMBER --role=ROLE --table=true RESOURCE
Ganti kode berikut:
- MEMBER_TYPE: jenis anggota, seperti
user
,group
,serviceAccount
, ataudomain
. - MEMBER: alamat email atau nama domain anggota.
- ROLE: peran yang ingin Anda cabut dari anggota.
- RESOURCE: nama tabel atau tampilan yang kebijakannya ingin Anda perbarui.
- MEMBER_TYPE: jenis anggota, seperti
Untuk mengambil kebijakan saat ini, panggil metode
tables.getIamPolicy
.Edit kebijakan untuk menghapus anggota atau binding, atau keduanya. Untuk mengetahui format yang diperlukan untuk kebijakan, lihat topik referensi Kebijakan.
Panggil
tables.setIamPolicy
untuk menulis kebijakan yang diperbarui.
API
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
policy.Remove()
untuk menghapus akses.
Kemudian, panggil fungsi
IAM().SetPolicy()
untuk menyimpan perubahan pada kebijakan akses tabel atau tampilan.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN
ke s3nsapis.fr
.
Table#getIamPolicy()
.
Ubah kebijakan untuk menghapus peran atau akun utama yang diinginkan, lalu terapkan kebijakan yang diperbarui menggunakan metode
Table#setIamPolicy()
.
Mencabut akses ke rutinitas
Untuk memberikan masukan atau meminta dukungan terkait fitur ini, kirim email ke bq-govsec-eng@google.com.
Pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di panel Explorer, luaskan project Anda dan pilih rutin.
Di panel detail, klik Sharing > Permissions.
Pada dialog Routine Permissions, luaskan akun utama yang aksesnya ingin Anda cabut.
Klik
Remove principal.Pada dialog Hapus peran dari akun utama?, klik Hapus.
Klik Close.
bq
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Untuk menulis informasi rutin yang ada (termasuk kontrol akses) ke file JSON, gunakan perintah
bq get-iam-policy
:bq get-iam-policy --routine PROJECT_ID:DATASET.ROUTINE > PATH_TO_FILE
Ganti kode berikut:
- PROJECT_ID: project ID Anda
- DATASET: nama set data yang berisi rutin yang ingin Anda perbarui
- ROUTINE: nama resource yang akan diupdate
PATH_TO_FILE: jalur ke file JSON di komputer lokal Anda
Buat perubahan pada bagian
access
pada file JSON. Anda dapat menghapus salah satu entrispecialGroup
:projectOwners
,projectWriters
,projectReaders
, danallAuthenticatedUsers
. Anda juga dapat menghapus salah satu dari:userByEmail
,groupByEmail
, dandomain
. Misalnya, bagianaccess
dari file JSON rutin akan terlihat seperti berikut:{ "bindings": [ { "role": "roles/bigquery.dataViewer", "members": [ "user:izumi@example.com", "group:admins@example.com", "domain:google.com", ] }, ], "etag": "BwWWja0YfJA=", "version": 1 }
Untuk memperbarui kebijakan akses, gunakan perintah
bq set-iam-policy
:bq set-iam-policy --routine PROJECT_ID:DATASET.ROUTINE PATH_TO_FILE
Untuk memverifikasi perubahan kontrol akses, gunakan kembali perintah
get-iam-policy
tanpa perlu menulis informasi tersebut ke file:bq get-iam-policy --routine --format=prettyjson \ PROJECT_ID:DATASET.ROUTINE
- Untuk mengambil kebijakan saat ini, panggil metode
routines.getIamPolicy
. Edit kebijakan untuk menambahkan anggota atau binding, atau keduanya. Untuk mengetahui format yang diperlukan untuk kebijakan, lihat topik referensi Kebijakan.
API
Menolak akses ke resource
Kebijakan penolakan IAM memungkinkan Anda menetapkan batasan pada akses ke resource BigQuery. Anda dapat menentukan aturan tolak yang mencegah akun utama yang dipilih menggunakan izin tertentu, terlepas dari peran yang diberikan.
Untuk mengetahui informasi tentang cara membuat, memperbarui, dan menghapus kebijakan tolak, lihat Menolak akses ke resource.
Kasus khusus
Pertimbangkan skenario berikut saat Anda membuat kebijakan penolakan IAM pada beberapa izin BigQuery:
Akses ke resource yang diotorisasi (tampilan, rutin, set data, atau prosedur tersimpan) memungkinkan Anda membuat, menghapus, atau memanipulasi tabel, serta membaca dan mengubah data tabel, meskipun Anda tidak memiliki izin langsung untuk melakukan operasi tersebut. Prosedur ini juga dapat mendapatkan data atau metadata model dan memanggil prosedur tersimpan lainnya di tabel pokok. Kemampuan ini menunjukkan bahwa resource yang diberi otorisasi memiliki izin berikut:
bigquery.tables.get
bigquery.tables.list
bigquery.tables.getData
bigquery.tables.updateData
bigquery.tables.create
bigquery.tables.delete
bigquery.routines.get
bigquery.routines.list
bigquery.datasets.get
bigquery.models.getData
bigquery.models.getMetadata
Untuk menolak akses ke resource yang diberi otorisasi ini, tambahkan salah satu nilai berikut ke kolom
deniedPrincipal
saat Anda membuat kebijakan penolakan:Nilai Kasus penggunaan principalSet://goog/public:all
Memblokir semua prinsipal, termasuk resource yang diberi otorisasi. principalSet://bigquery.googleapis.com/projects/PROJECT_NUMBER/*
Memblokir semua resource BigQuery yang diizinkan dalam project yang ditentukan. PROJECT_NUMBER
adalah ID unik yang dibuat secara otomatis untuk project Anda yang berjenisINT64
.Untuk mengecualikan akun utama tertentu dari kebijakan penolakan, tentukan akun utama tersebut di kolom
exceptionPrincipals
kebijakan penolakan Anda. Misalnya,exceptionPrincipals: "principalSet://bigquery.googleapis.com/projects/1234/*"
.BigQuery meng-cache hasil kueri milik pemilik tugas selama 24 jam, yang dapat diakses oleh pemilik tugas tanpa memerlukan izin
bigquery.tables.getData
pada tabel yang berisi data. Oleh karena itu, menambahkan kebijakan penolakan IAM ke izinbigquery.tables.getData
tidak akan memblokir akses ke hasil yang di-cache untuk pemilik tugas hingga cache berakhir. Untuk memblokir akses pemilik tugas ke hasil yang di-cache, buat kebijakan penolakan terpisah pada izinbigquery.jobs.create
.Untuk mencegah akses data yang tidak diinginkan saat menggunakan kebijakan penolakan untuk memblokir operasi baca data, sebaiknya Anda juga meninjau dan mencabut langganan yang ada pada set data.
Untuk membuat kebijakan penolakan IAM untuk melihat kontrol akses set data, tolak izin berikut:
bigquery.datasets.get
bigquery.datasets.getIamPolicy
Untuk membuat kebijakan penolakan IAM untuk memperbarui kontrol akses set data, tolak izin berikut:
bigquery.datasets.update
bigquery.datasets.setIamPolicy
Batasan
- Daftar kontrol akses (ACL) rutin tidak disertakan dalam rutinitas yang direplikasi.
- Rutinitas di dalam set data eksternal atau tertaut tidak mendukung kontrol akses.
- Tabel di dalam set data eksternal atau tertaut tidak mendukung kontrol akses.
- Kontrol akses rutin tidak dapat ditetapkan dengan Terraform.
- Kontrol akses rutin tidak dapat ditetapkan dengan Google Cloud SDK.
- Kontrol akses rutin tidak dapat ditetapkan menggunakan bahasa kontrol data (DCL) BigQuery.
- Data Catalog tidak mendukung kontrol akses rutin. Jika pengguna telah memberikan akses tingkat rutin secara bersyarat, mereka tidak akan melihat rutinitasnya di panel samping BigQuery. Sebagai solusinya, berikan akses tingkat set data.
- Tampilan
OBJECT_PRIVILEGES
tidak menampilkan kontrol akses rutin.
Langkah berikutnya
Pelajari cara menggunakan
metode projects.testIamPermissions
untuk menguji akses pengguna ke resource.