Mengontrol akses dengan tag
Dokumen ini menjelaskan cara menggunakan tag dengan resource BigQuery untuk kontrol akses.
Tag adalah pasangan nilai kunci yang dapat Anda lampirkan ke resource Google Cloud. Anda dapat menggunakan tag dengan BigQuery dengan cara berikut:
- Kebijakan pemberian atau penolakan secara bersyarat: Anda dapat melampirkan tag ke tabel, tampilan, dan set data BigQuery, lalu menggunakan Identity and Access Management (IAM) untuk memberikan peran secara bersyarat atau menolak akses (Pratinjau) ke resource tersebut berdasarkan tagnya. Untuk mengetahui informasi selengkapnya tentang kebijakan penolakan, lihat Kebijakan penolakan.
- Kontrol akses tingkat kolom: Anda dapat melampirkan tag tata kelola data (Pratinjau) ke kolom tabel dan menggunakannya dengan kebijakan data untuk membatasi akses ke data kolom.
Anda dapat melampirkan tag langsung ke resource, atau tag dapat diwarisi dari resource induk dalam hierarki resource Google Cloud .
Dokumen ini berfokus pada penggunaan tag dengan IAM untuk memberikan atau menolak akses secara bersyarat ke tabel, tampilan, dan set data BigQuery.
Untuk mengetahui informasi selengkapnya tentang penggunaan tag di seluruh hierarki resource Google Cloud, lihat Ringkasan tag.
Untuk memberikan izin ke banyak resource BigQuery terkait secara bersamaan, termasuk resource yang belum ada, pertimbangkan untuk menggunakan IAM Conditions.
Batasan
Tag tabel tidak didukung di tabel BigQuery Omni, tabel dalam set data tersembunyi, atau tabel sementara. Tag set data tidak didukung di set data BigQuery Omni. Selain itu, kueri lintas region di BigQuery Omni tidak menggunakan tag selama pemeriksaan kontrol akses tabel di region lain.
Anda dapat memasang maksimum 50 tag ke tabel atau set data.
Semua tabel yang direferensikan dalam kueri karakter pengganti harus memiliki set kunci dan nilai tag yang sama persis.
Pengguna dengan akses kondisional ke set data atau tabel tidak dapat mengubah izin untuk resource tersebut melalui konsol Google Cloud . Modifikasi izin hanya didukung melalui alat bq dan BigQuery API.
Beberapa layanan di luar BigQuery tidak dapat memverifikasi kondisi tag IAM dengan benar. Jika kondisi tag positif, artinya pengguna diberi peran pada resource hanya jika resource tersebut memiliki tag tertentu, akses ditolak ke resource tersebut, terlepas dari tag mana yang dipasang ke resource tersebut. Jika kondisi tag negatif, artinya pengguna diberi peran pada resource hanya jika resource tersebut tidak memiliki tag tertentu, kondisi tag tidak diperiksa.
Peran yang diperlukan
Anda perlu memberikan peran IAM yang memberi pengguna izin yang diperlukan untuk melakukan setiap tugas dalam dokumen ini.
Kedua peran IAM yang telah ditetapkan berikut mencakup semua izin BigQuery yang diperlukan:
- BigQuery Data Owner (
roles/bigquery.dataOwner) - BigQuery Admin (
roles/bigquery.admin)
Izin Resource Manager untuk menambahkan dan menghapus tag disertakan dalam peran Tag User (roles/resourcemanager.tagUser).
Izin yang diperlukan
Untuk menggunakan tag di BigQuery, Anda memerlukan izin berikut:
| Operasi | Antarmuka BigQuery (API, CLI, konsol) dan Terraform | Cloud Resource Manager API atau gcloud |
|---|---|---|
| Melampirkan tag ke tabel atau tampilan |
|
|
| Menghapus tag dari tabel atau tampilan |
|
|
| Melampirkan tag ke set data |
|
|
| Menghapus tag dari set data |
|
|
Untuk mencantumkan kunci tag dan nilai kunci di konsol Google Cloud , Anda memerlukan izin berikut:
Untuk mencantumkan kunci tag yang terkait dengan project atau organisasi induk, Anda memerlukan izin
resourcemanager.tagKeys.listdi level induk kunci tag dan izinresourcemanager.tagKeys.getuntuk setiap kunci tag. Untuk melihat daftar kunci tag di konsol BigQuery, klik nama set data, lalu klik Edit detail, atau klik nama tabel atau tampilan, lalu klik Detail > Edit detail.Untuk mencantumkan nilai tag dari kunci yang terkait dengan organisasi atau project induk, Anda memerlukan izin
resourcemanager.tagValues.listdi tingkat induk nilai tag dan izinresourcemanager.tagValues.getuntuk setiap nilai tag. Untuk melihat daftar nilai kunci tag di konsol BigQuery, klik nama set data, lalu klik Edit detail, atau klik nama tabel atau tampilan, lalu klik Detail > Edit detail.
Untuk menggunakan tag di Cloud Resource Manager API atau gcloud, Anda memerlukan izin berikut:
- Untuk membuat daftar tag yang dilampirkan ke tabel atau tampilan dengan Cloud Resource Manager API atau gcloud CLI, Anda memerlukan izin IAM
bigquery.tables.listTagBindings. - Untuk mencantumkan tag efektif untuk
tabel atau tampilan, Anda memerlukan izin IAM
bigquery.tables.listEffectiveTags. - Untuk mencantumkan tag yang dilampirkan ke set data dengan Cloud Resource Manager API atau gcloud CLI, Anda memerlukan izin IAM
bigquery.datasets.listTagBindings. - Untuk mencantumkan tag efektif untuk
set data, Anda memerlukan izin IAM
bigquery.datasets.listEffectiveTags.
Membuat kunci dan nilai tag
Anda dapat membuat tag sebelum melampirkannya ke resource BigQuery, atau Anda dapat membuat tag secara manual saat membuat resource menggunakan konsolGoogle Cloud .
Untuk mengetahui informasi tentang cara membuat kunci tag dan nilai tag, lihat artikel Membuat tag dan Menambahkan nilai tag di dokumentasi Resource Manager.
Memberi tag pada set data
Bagian berikut menjelaskan cara melampirkan tag ke set data baru dan yang sudah ada, mencantumkan tag yang dilampirkan ke set data, dan melepaskan tag dari set data.
Melampirkan tag saat Anda membuat set data baru
Setelah membuat tag, Anda dapat memasangnya ke set data BigQuery baru. Anda hanya dapat memasang satu nilai tag ke set data untuk setiap kunci tag tertentu. Anda dapat memasang maksimum 50 tag ke set data.
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel kiri, klik Explorer:

Jika Anda tidak melihat panel kiri, klik Luaskan panel kiri untuk membuka panel.
Di panel Explorer, pilih project tempat Anda ingin membuat set data.
Klik View actions > Create dataset.
Masukkan informasi untuk set data baru Anda. Untuk mengetahui detail selengkapnya, lihat Membuat set data.
Luaskan bagian Tag.
Untuk menerapkan tag yang ada, lakukan hal berikut:
Klik panah drop-down di samping Pilih cakupan, lalu pilih Cakupan saat ini—Pilih organisasi saat ini atau Pilih project saat ini.
Atau, klik Pilih cakupan untuk menelusuri resource atau melihat daftar resource saat ini.
Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.
Untuk memasukkan tag baru secara manual, lakukan hal berikut:
Klik panah drop-down di samping Pilih cakupan, lalu pilih Masukkan ID secara manual > Organisasi, Project, atau Tag.
Jika Anda membuat tag untuk project atau organisasi, masukkan
PROJECT_IDatauORGANIZATION_IDdi dialog, lalu klik Simpan.Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.
Opsional: Untuk menambahkan tag tambahan ke tabel, klik Tambahkan tag dan ikuti langkah-langkah sebelumnya.
Klik Create dataset.
SQL
Gunakan pernyataan CREATE SCHEMA.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE SCHEMA PROJECT_ID.DATASET_ID OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Ganti kode berikut:
PROJECT_ID: project ID Anda.DATASET_ID: ID set data yang Anda buat.TAG_KEY_1: nama kunci dengan namespace yang ingin Anda tetapkan sebagai tag pertama di set data, misalnya,'my-project/env'atau'556741164180/department'.TAG_VALUE_1: nama pendek untuk nilai tag, misalnya,'prod'atau'sales'.TAG_KEY_2: nama kunci dengan namespace untuk tag kedua.TAG_VALUE_2: nama pendek untuk nilai tag kedua.
Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
bq
Gunakan perintah bq mk --dataset dengan flag --add_tags:
bq mk --dataset \ --add_tags=TAG \ PROJECT_ID:DATASET_ID
Ganti kode berikut:
TAG: tag yang Anda lampirkan ke set data baru. Beberapa tag dipisahkan dengan koma. Contoh,556741164180/env:prod,myProject/department:sales. Setiap tag harus memiliki nama kunci dengan namespace dan nama pendek nilai.PROJECT_ID: ID project tempat Anda membuat set data.DATASET_ID: ID set data baru.
Terraform
Gunakan resource
google_bigquery_dataset.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut membuat set data bernama my_dataset, lalu melampirkan
tag ke set data tersebut dengan mengisi kolom resource_tags:
Untuk menerapkan konfigurasi Terraform di project, selesaikan langkah-langkah di bagian berikut. Google Cloud
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default 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.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
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.tfyang 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
Menerapkan perubahan
-
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
yespada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka Google Cloud project Anda untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
API
Panggil
metode datasets.insert
dan tambahkan tag Anda ke kolom resource_tags.
Memasang tag ke set data yang ada
Setelah membuat tag, Anda dapat melampirkannya ke set data yang ada. Anda hanya dapat memasang satu nilai tag ke set data untuk setiap kunci tag tertentu.
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel kiri, klik Explorer:

Di panel Explorer, luaskan project Anda, klik Set data, lalu pilih set data.
Di bagian Dataset info, klik Edit details.
Luaskan bagian Tag.
Untuk menerapkan tag yang ada, lakukan hal berikut:
Klik panah drop-down di samping Pilih cakupan, lalu pilih Cakupan saat ini—Pilih organisasi saat ini atau Pilih project saat ini.
Atau, klik Pilih cakupan untuk menelusuri resource atau melihat daftar resource saat ini.
Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.
Untuk memasukkan tag baru secara manual, lakukan hal berikut:
Klik panah drop-down di samping Pilih cakupan, lalu pilih Masukkan ID secara manual > Organisasi, Project, atau Tag.
Jika Anda membuat tag untuk project atau organisasi, masukkan
PROJECT_IDatauORGANIZATION_IDdi dialog, lalu klik Simpan.Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.
Opsional: Untuk menambahkan tag tambahan ke tabel, klik Tambahkan tag dan ikuti langkah-langkah sebelumnya.
Klik Simpan.
SQL
Gunakan pernyataan ALTER SCHEMA SET OPTIONS.
Contoh berikut mengganti semua tag untuk set data yang ada.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
ALTER SCHEMA PROJECT_ID.DATASET_ID SET OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Ganti kode berikut:
PROJECT_ID: project ID Anda.DATASET_ID: ID set data yang berisi tabel.TABLE_ID: nama tabel yang Anda beri tag.TAG_KEY_1: nama kunci dengan namespace yang ingin Anda tetapkan sebagai tag pertama pada tabel, misalnya,'my-project/env'atau'556741164180/department'.TAG_VALUE_1: nama pendek untuk nilai tag, misalnya,'prod'atau'sales'.TAG_KEY_2: nama kunci dengan namespace untuk tag kedua.TAG_VALUE_2: nama pendek untuk nilai tag kedua.
Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
Contoh berikut menggunakan operator += untuk melampirkan tag ke set data
tanpa mengganti tag yang ada. Jika tag yang ada memiliki kunci yang sama, tag tersebut akan ditimpa.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
ALTER SCHEMA PROJECT_ID.DATASET_ID SET OPTIONS ( tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Ganti kode berikut:
PROJECT_ID: project ID Anda.DATASET_ID: ID set data yang berisi tabel.TABLE_ID: nama tabel yang Anda beri tag.TAG_KEY_1: nama kunci dengan namespace yang ingin Anda tetapkan sebagai tag pertama pada tabel, misalnya,'my-project/env'atau'556741164180/department'.TAG_VALUE_1: nama pendek untuk nilai tag, misalnya,'prod'atau'sales'.TAG_KEY_2: nama kunci dengan namespace untuk tag kedua.TAG_VALUE_2: nama pendek untuk nilai tag kedua.
Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
bq
Gunakan perintah bq update dengan flag --add_tags:
bq update \ --add_tags=TAG \ PROJECT_ID:DATASET_ID
Ganti kode berikut:
TAG: tag yang Anda lampirkan ke set data. Beberapa tag dipisahkan dengan koma. Contoh,556741164180/env:prod,myProject/department:sales. Setiap tag harus memiliki nama kunci dengan namespace dan nama pendek nilai.PROJECT_ID: ID project tempat set data yang ada berada.DATASET_ID: ID set data yang ada.
gcloud
Untuk memasang tag ke set data menggunakan command line, buat resource binding tag menggunakan perintah gcloud resource-manager tags bindings create:
gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_NAME \
--parent=RESOURCE_ID \
--location=LOCATION
Ganti kode berikut:
TAG_VALUE_NAME: ID permanen atau nama dengan namespace dari nilai tag yang akan dipasang, sepertitagValues/4567890123atau1234567/my_tag_key/my_tag_value.RESOURCE_ID: ID lengkap set data, termasuk nama domain API (//bigquery.googleapis.com/) untuk mengidentifikasi jenis resource. Contoh,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset.LOCATION: lokasi set data Anda.
Terraform
Tambahkan tag ke kolom resource_tags set data, lalu terapkan
konfigurasi yang diperbarui menggunakan resource google_bigquery_dataset. Untuk
mengetahui informasi selengkapnya, lihat contoh Terraform di
Melampirkan tag saat Anda membuat set data baru.
API
Panggil
metode datasets.get
untuk mendapatkan resource set data, termasuk kolom resource_tags. Tambahkan tag
ke kolom resource_tags dan teruskan kembali resource set data yang diperbarui
menggunakan
metode datasets.update.
Mencantumkan tag yang dipasang ke set data
Langkah-langkah berikut menyediakan daftar binding tag yang dipasang langsung ke set data. Metode ini tidak menampilkan tag yang diwarisi dari resource induk.
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel kiri, klik Explorer:

Di panel Explorer, luaskan project Anda, klik Set data, lalu pilih set data.
Tag muncul di bagian Dataset info.
bq
Untuk mencantumkan tag yang dipasang ke set data, gunakan
perintah bq show.
bq show PROJECT_ID:DATASET_ID
Ganti kode berikut:
PROJECT_ID: ID project yang berisi set data Anda.DATASET_ID: ID set data yang ingin Anda cantumkan tag-nya.
gcloud
Untuk mendapatkan daftar binding tag yang dipasang ke resource, gunakan perintah gcloud resource-manager tags bindings list:
gcloud resource-manager tags bindings list \
--parent=RESOURCE_ID \
--location=LOCATION
Ganti kode berikut:
RESOURCE_ID: ID lengkap set data, termasuk nama domain API (//bigquery.googleapis.com/) untuk mengidentifikasi jenis resource. Contohnya,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset.LOCATION: lokasi set data Anda.
Outputnya mirip dengan hal berikut ini:
name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123 parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset tagValue: tagValues/4567890123
Anda dapat mencantumkan tag yang diwarisi menurut set data BigQuery menggunakan
gcloud resource-manager tags bindings list. Anda juga dapat menggunakan opsi --filter
pada atribut namespacedTagValue untuk memfilter tag menurut
ID project, nilai tag, atau kunci tag.
gcloud resource-manager tags bindings list \
--parent=//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID \
--effective \
--filter=namespacedTagValue:TAG_FILTER
Ganti kode berikut :
PROJECT_ID: ID project yang berisi set data Anda.DATASET_ID: ID set data.TAG_FILTER: tentukan nilai untuk memfilter tag yang diwarisi berdasarkan salah satu hal berikut:Memfilter tag menurut project ID. Misalnya,
myproject.Filter nilai tag dengan menentukan ID permanen atau nama dengan namespace dari nilai tag. Misalnya
tagValues/4567890123atau1234567/my_tag_key/my_tag_value.Memfilter kunci tag dengan menentukan nama tampilan untuk kunci tag. Misalnya,
tagkey.
Terraform
Gunakan perintah terraform state show untuk mencantumkan atribut
set data, termasuk kolom resource_tags. Jalankan perintah ini
di direktori tempat file konfigurasi Terraform set data telah
dijalankan.
terraform state show google_bigquery_dataset.default
API
Panggil
metode datasets.get
untuk mendapatkan resource set data. Resource set data mencakup tag yang dilampirkan ke
set data di kolom resource_tags.
Tampilan
Gunakan
tampilan INFORMATION_SCHEMA.SCHEMATA_OPTIONS.
Misalnya, kueri berikut menampilkan semua tag yang dilampirkan ke semua set data
dalam suatu region. Kueri ini menampilkan tabel dengan kolom yang mencakup schema_name
(nama set data), option_name (selalu 'tags'),
object_type (selalu ARRAY<STRUCT<STRING, STRING>>), dan option_value,
yang berisi array objek STRUCT yang merepresentasikan tag yang terkait dengan
setiap set data. Untuk set data tanpa tag yang ditetapkan, kolom option_value akan menampilkan array kosong.
SELECT * from region-REGION.INFORMATION_SCHEMA.SCHEMATA_OPTIONS WHERE option_name='tags'
Ganti kode berikut:
REGION: region tempat set data Anda berada.
Melepaskan tag dari set data
Anda dapat melepaskan tag dari resource dengan menghapus resource binding tag. Jika Anda menghapus tag, Anda harus melepaskannya dari set data sebelum menghapusnya. Untuk mengetahui informasi selengkapnya, lihat Menghapus tag.
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel kiri, klik Explorer:

Di panel Explorer, luaskan project Anda, klik Set data, lalu pilih set data.
Di bagian Dataset info, klik Edit details.
Di bagian Tags, klik Delete item di samping tag yang ingin dihapus.
Klik Simpan.
SQL
Gunakan pernyataan ALTER SCHEMA SET OPTIONS.
Contoh berikut melepaskan tag dari set data menggunakan operator -=. Untuk
melepaskan semua tag dari set data, Anda dapat menentukan tags=NULL atau tags=[].
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Ganti kode berikut:
PROJECT_ID: project ID Anda.DATASET_ID: ID set data yang berisi tabel.TABLE_ID: nama tabel tempat Anda melepaskan tag.TAG_KEY_1: nama kunci dengan namespace dari tag pertama yang ingin Anda lepas, misalnya,'my-project/env'atau'556741164180/department'.TAG_VALUE_1: nama pendek dari nilai untuk tag yang ingin Anda lepas, misalnya,'prod'atau'sales'.TAG_KEY_2: nama kunci dengan namespace untuk tag kedua yang Anda lepaskan.TAG_VALUE_2: nama pendek untuk nilai tag kedua yang Anda lepaskan.
Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
bq
Gunakan perintah bq update dengan flag --remove_tags:
bq update \ --remove_tags=REMOVED_TAG \ PROJECT_ID:DATASET_ID
Ganti kode berikut:
REMOVED_TAG: tag yang Anda hapus dari set data. Beberapa tag dipisahkan dengan koma. Hanya menerima pasangan nilai tanpa kunci. Contoh,556741164180/env,myProject/department. Setiap tag harus memiliki nama kunci dengan namespace.PROJECT_ID: ID project yang berisi set data Anda.DATASET_ID: ID set data yang akan dilepaskan tagnya.
Atau, jika Anda ingin menghapus semua tag dari set data, gunakan
perintah bq update
dengan flag --clear_all_tags:
bq update \ --clear_all_tags PROJECT_ID:DATASET_ID
gcloud
Untuk melepaskan tag dari set data menggunakan command line, hapus binding tag menggunakan
perintah gcloud resource-manager tags bindings delete:
gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_NAME \
--parent=RESOURCE_ID \
--location=LOCATION
Ganti kode berikut:
TAG_VALUE_NAME: ID permanen atau nama dengan namespace untuk nilai tag yang akan dilepas, sepertitagValues/4567890123atau1234567/my_tag_key/my_tag_value.RESOURCE_ID: ID lengkap set data, termasuk nama domain API (//bigquery.googleapis.com/) untuk mengidentifikasi jenis resource. Contohnya,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset.LOCATION: lokasi set data Anda.
Terraform
Hapus tag Anda dari kolom resource_tags set data, lalu terapkan
konfigurasi yang diperbarui menggunakan resource google_bigquery_dataset.
API
Panggil
metode datasets.get
untuk mendapatkan resource set data, termasuk kolom resource_tags. Hapus
tag Anda dari kolom resource_tags dan teruskan kembali resource
kumpulan data yang diperbarui menggunakan
metode datasets.update.
Tabel tag
Bagian berikut menjelaskan cara melampirkan tag ke tabel baru dan yang sudah ada, mencantumkan tag yang dilampirkan ke tabel, dan melepaskan tag dari tabel.
Melampirkan tag saat Anda membuat tabel baru
Setelah membuat tag, Anda dapat memasangnya ke tabel baru. Anda hanya dapat melampirkan satu nilai tag ke tabel untuk setiap kunci tag tertentu. Anda dapat melampirkan maksimum 50 tag ke tabel.
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel kiri, klik Explorer:

Di panel Explorer, luaskan project Anda, klik Set data, lalu pilih set data.
Di bagian Dataset info, klik Create table.
Masukkan informasi untuk tabel baru Anda. Untuk mengetahui detail selengkapnya, lihat Membuat dan menggunakan tabel.
Luaskan bagian Tag.
Untuk menerapkan tag yang ada, lakukan hal berikut:
Klik panah drop-down di samping Pilih cakupan, lalu pilih Cakupan saat ini—Pilih organisasi saat ini atau Pilih project saat ini.
Atau, klik Pilih cakupan untuk menelusuri resource atau melihat daftar resource saat ini.
Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.
Untuk memasukkan tag baru secara manual, lakukan hal berikut:
Klik panah drop-down di samping Pilih cakupan, lalu pilih Masukkan ID secara manual > Organisasi, Project, atau Tag.
Jika Anda membuat tag untuk project atau organisasi, masukkan
PROJECT_IDatauORGANIZATION_IDdi dialog, lalu klik Simpan.Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.
Opsional: Untuk menambahkan tag tambahan ke tabel, klik Tambahkan tag dan ikuti langkah-langkah sebelumnya.
Klik Create table.
SQL
Gunakan pernyataan CREATE TABLE.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE TABLE PROJECT_ID.DATASET_ID.TABLE_ID OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Ganti kode berikut:
PROJECT_ID: project ID Anda.DATASET_ID: ID set data tempat Anda membuat tabel.TABLE_ID: nama tabel baru.TAG_KEY_1: nama kunci dengan namespace yang ingin Anda tetapkan sebagai tag pertama pada tabel, misalnya,'my-project/env'atau'556741164180/department'.TAG_VALUE_1: nama pendek untuk nilai tag, misalnya,'prod'atau'sales'.TAG_KEY_2: nama kunci dengan namespace untuk tag kedua.TAG_VALUE_2: nama pendek untuk nilai tag kedua.
Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
bq
Gunakan perintah bq mk --table dengan flag --add_tags:
bq mk --table \ --schema=SCHEMA \ --add_tags=TAG \ PROJECT_ID:DATASET_ID.TABLE_ID
Ganti kode berikut:
SCHEMA: definisi skema inline.TAG: tag yang Anda lampirkan ke tabel baru. Beberapa tag dipisahkan dengan koma. Contoh,556741164180/env:prod,myProject/department:sales. Setiap tag harus memiliki nama kunci dengan namespace dan nama pendek nilai.PROJECT_ID: ID project tempat Anda membuat tabel.DATASET_ID: ID set data tempat Anda membuat tabel.TABLE_ID: ID tabel baru.
Terraform
Gunakan resource google_bigquery_table.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut membuat tabel bernama mytable, lalu melampirkan
tag ke tabel tersebut dengan mengisi kolom resource_tags:
Untuk menerapkan konfigurasi Terraform di project, selesaikan langkah-langkah di bagian berikut. Google Cloud
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default 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.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
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.tfyang 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
Menerapkan perubahan
-
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
yespada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka Google Cloud project Anda untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
API
Panggil
metode tables.insert
dengan resource tabel yang ditentukan.
Sertakan tag di kolom resource_tags.
Melampirkan tag ke tabel yang ada
Setelah membuat tag, Anda dapat melampirkannya ke tabel yang ada. Anda hanya dapat melampirkan satu nilai tag ke tabel untuk setiap kunci tag tertentu.
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel kiri, klik Explorer:

Di panel Explorer, luaskan project Anda, lalu klik Set Data.
Klik Ringkasan > Tabel, lalu pilih tabel.
Klik tab Detail, lalu klik Edit detail.
Luaskan bagian Tag.
Untuk menerapkan tag yang ada, lakukan hal berikut:
Klik panah drop-down di samping Pilih cakupan, lalu pilih Cakupan saat ini—Pilih organisasi saat ini atau Pilih project saat ini.
Atau, klik Pilih cakupan untuk menelusuri resource atau melihat daftar resource saat ini.
Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.
Untuk memasukkan tag baru secara manual, lakukan hal berikut:
Klik panah drop-down di samping Pilih cakupan, lalu pilih Masukkan ID secara manual > Organisasi, Project, atau Tag.
Jika Anda membuat tag untuk project atau organisasi, masukkan
PROJECT_IDatauORGANIZATION_IDdi dialog, lalu klik Simpan.Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.
Opsional: Untuk menambahkan tag tambahan ke tabel, klik Tambahkan tag dan ikuti langkah-langkah sebelumnya.
Klik Simpan.
SQL
Gunakan pernyataan ALTER TABLE SET OPTIONS.
Contoh berikut mengganti semua tag untuk tabel yang ada.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Ganti kode berikut:
PROJECT_ID: project ID Anda.DATASET_ID: ID set data yang berisi tabel.TABLE_ID: nama tabel yang Anda beri tag.TAG_KEY_1: nama kunci dengan namespace yang ingin Anda tetapkan sebagai tag pertama pada tabel, misalnya,'my-project/env'atau'556741164180/department'.TAG_VALUE_1: nama pendek untuk nilai tag, misalnya,'prod'atau'sales'.TAG_KEY_2: nama kunci dengan namespace untuk tag kedua.TAG_VALUE_2: nama pendek untuk nilai tag kedua.
Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
Contoh berikut menggunakan operator += untuk melampirkan tag ke tabel
tanpa mengganti tag yang ada. Jika tag yang ada memiliki kunci yang sama, tag tersebut akan ditimpa.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Ganti kode berikut:
PROJECT_ID: project ID Anda.DATASET_ID: ID set data yang berisi tabel.TABLE_ID: nama tabel yang Anda beri tag.TAG_KEY_1: nama kunci dengan namespace yang ingin Anda tetapkan sebagai tag pertama pada tabel, misalnya,'my-project/env'atau'556741164180/department'.TAG_VALUE_1: nama pendek untuk nilai tag, misalnya,'prod'atau'sales'.TAG_KEY_2: nama kunci dengan namespace untuk tag kedua.TAG_VALUE_2: nama pendek untuk nilai tag kedua.
Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
bq
Gunakan perintah bq update dengan flag --add_tags:
bq update \ --add_tags=TAG \ PROJECT_ID:DATASET_ID.TABLE_ID
Ganti kode berikut:
TAG: tag yang Anda lampirkan ke tabel. Beberapa tag dipisahkan dengan koma. Contoh,556741164180/env:prod,myProject/department:sales. Setiap tag harus memiliki nama kunci dengan namespace dan nama pendek nilai.PROJECT_ID: ID project yang berisi tabel Anda.DATASET_ID: ID set data yang berisi tabel Anda.TABLE_ID: ID tabel yang Anda perbarui.
gcloud
Untuk melampirkan tag ke tabel menggunakan command line, buat resource binding tag menggunakan
perintah gcloud resource-manager tags bindings create:
gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_NAME \
--parent=RESOURCE_ID \
--location=LOCATION
Ganti kode berikut:
TAG_VALUE_NAME: ID permanen atau nama dengan namespace dari nilai tag yang akan dipasang, sepertitagValues/4567890123atau1234567/my_tag_key/my_tag_value.RESOURCE_ID: ID lengkap tabel, termasuk nama domain API (//bigquery.googleapis.com/) untuk mengidentifikasi jenis resource. Misalnya,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tables/my_tableLOCATION: lokasi tabel Anda.
Terraform
Tambahkan tag ke kolom resource_tags tabel, lalu terapkan
konfigurasi yang diperbarui menggunakan resource google_bigquery_table. Untuk
mengetahui informasi selengkapnya, lihat contoh Terraform di
Melampirkan tag saat Anda membuat tabel baru.
API
Panggil
metode tables.update
dengan resource tabel yang ditentukan.
Sertakan tag di kolom resource_tags.
Mencantumkan tag yang dilampirkan ke tabel
Anda dapat mencantumkan tag yang dilampirkan langsung ke tabel. Proses ini tidak mencantumkan tag yang diwarisi dari resource induk.
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel kiri, klik Explorer:

Di panel Explorer, luaskan project Anda, lalu klik Set Data.
Klik Ringkasan > Tabel, lalu pilih tabel.
Tag dapat dilihat di tab Detail.
bq
Gunakan
perintah bq show
dan cari kolom tags. Jika tidak ada tag pada tabel, kolom
tags tidak ditampilkan.
bq show \ PROJECT_ID:DATASET_ID.TABLE_ID
Ganti kode berikut:
PROJECT_ID: ID project yang berisi tabel Anda.DATASET_ID: ID set data yang berisi tabel Anda.TABLE_ID: ID tabel Anda.
gcloud
Untuk mendapatkan daftar binding tag yang dipasang ke resource, gunakan perintah gcloud resource-manager tags bindings list:
gcloud resource-manager tags bindings list \
--parent=RESOURCE_ID \
--location=LOCATION
Ganti kode berikut:
RESOURCE_ID: ID lengkap tabel, termasuk nama domain API (//bigquery.googleapis.com/) untuk mengidentifikasi jenis resource. Contohnya,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tables/my_table.LOCATION: lokasi set data Anda.
Outputnya mirip dengan hal berikut ini:
name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123 parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset tagValue: tagValues/4567890123
Anda dapat mencantumkan tag yang diwarisi menurut tabel BigQuery menggunakan
gcloud resource-manager tags bindings list. Anda juga dapat menggunakan opsi --filter
pada atribut namespacedTagValue untuk memfilter tag menurut
ID project, nilai tag, atau kunci tag.
gcloud resource-manager tags bindings list \
--parent=//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID \
--effective \
--filter=namespacedTagValue:TAG_FILTER
Ganti kode berikut :
PROJECT_ID: ID project yang berisi set data Anda.DATASET_ID: ID set data.TAG_FILTER: tentukan nilai untuk memfilter tag yang diwarisi berdasarkan salah satu hal berikut:Memfilter tag menurut project ID. Misalnya,
myproject.Filter nilai tag dengan menentukan ID permanen atau nama dengan namespace dari nilai tag. Misalnya
tagValues/4567890123atau1234567/my_tag_key/my_tag_value.Memfilter kunci tag dengan menentukan nama tampilan untuk kunci tag. Misalnya,
tagkey.
Terraform
Gunakan perintah terraform state show untuk mencantumkan atribut tabel, termasuk kolom resource_tags. Jalankan perintah ini
di direktori tempat file konfigurasi Terraform tabel telah
dijalankan.
terraform state show google_bigquery_table.default
API
Panggil
metode tables.get
dengan resource tabel yang ditentukan,
dan cari kolom resource_tags.
Tampilan
Gunakan
tampilan INFORMATION_SCHEMA.TABLE_OPTIONS.
Misalnya, kueri berikut menampilkan semua tag yang dilampirkan ke semua tabel dalam
set data. Kueri ini menampilkan tabel dengan kolom yang mencakup schema_name (nama set data), option_name (selalu 'tags'), object_type (selalu ARRAY<STRUCT<STRING, STRING>>), dan option_value, yang berisi array objek STRUCT yang merepresentasikan tag yang terkait dengan setiap set data. Untuk tabel tanpa tag yang ditetapkan, kolom option_value
akan menampilkan array kosong.
SELECT * from DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name='tags'
Ganti DATASET_ID dengan ID set data yang berisi tabel Anda.
Melepaskan tag dari tabel
Anda dapat menghapus pengaitan tag dari tabel dengan menghapus binding tag. Jika menghapus tag, Anda harus melepaskannya dari tabel sebelum menghapusnya. Untuk mengetahui informasi selengkapnya, lihat Menghapus tag.
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel kiri, klik Explorer:

Di panel Explorer, luaskan project Anda, lalu klik Set Data.
Klik Ringkasan > Tabel, lalu pilih tabel.
Klik tab Detail, lalu klik Edit detail.
Di bagian Tags, klik Delete item di samping tag yang ingin dihapus.
Klik Simpan.
SQL
Gunakan pernyataan ALTER TABLE SET OPTIONS.
Contoh berikut melepaskan tag dari tabel menggunakan operator -=. Untuk
melepaskan semua tag dari tabel, Anda dapat menentukan tags=NULL atau tags=[].
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Ganti kode berikut:
PROJECT_ID: project ID Anda.DATASET_ID: ID set data yang berisi tabel.TABLE_ID: nama tabel tempat Anda melepaskan tag.TAG_KEY_1: nama kunci dengan namespace dari tag pertama yang ingin Anda lepas, misalnya,'my-project/env'atau'556741164180/department'.TAG_VALUE_1: nama pendek dari nilai untuk tag yang ingin Anda lepas, misalnya,'prod'atau'sales'.TAG_KEY_2: nama kunci dengan namespace untuk tag kedua yang Anda lepaskan.TAG_VALUE_2: nama pendek untuk nilai tag kedua yang Anda lepaskan.
Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
bq
Untuk menghapus beberapa tag dari tabel, gunakan
perintah bq update
dengan flag --remove_tags:
bq update \ --remove_tags=TAG_KEYS \ PROJECT_ID:DATASET_ID.TABLE_ID
Ganti kode berikut:
TAG_KEYS: kunci tag yang Anda lepaskan dari tabel, dipisahkan dengan koma. Contoh,556741164180/env,myProject/department. Setiap kunci tag harus memiliki nama kunci dengan namespace.PROJECT_ID: ID project yang berisi tabel Anda.DATASET_ID: ID set data yang berisi tabel Anda.TABLE_ID: ID tabel yang Anda perbarui.
Untuk menghapus semua tag dari tabel, gunakan
perintah bq update
dengan flag --clear_all_tags:
bq update \ --clear_all_tags \ PROJECT_ID:DATASET_ID.TABLE_ID
gcloud
Untuk menghapus asosiasi tag dari tabel menggunakan command line, hapus binding tag menggunakan
perintah gcloud resource-manager tags bindings delete:
gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_NAME \
--parent=RESOURCE_ID \
--location=LOCATION
Ganti kode berikut:
TAG_VALUE_NAME: ID permanen atau nama dengan namespace untuk nilai tag yang akan dihapus, sepertitagValues/4567890123atau1234567/my_tag_key/my_tag_value.RESOURCE_ID: ID lengkap tabel, termasuk nama domain API (//bigquery.googleapis.com/) untuk mengidentifikasi jenis resource. Contohnya,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tables/my_table.LOCATION: lokasi set data Anda.
Terraform
Hapus tag Anda dari kolom resource_tags tabel, lalu terapkan
konfigurasi yang diperbarui menggunakan resource google_bigquery_table.
API
Panggil
metode tables.update
dengan resource tabel yang ditentukan,
dan hapus tag di kolom resource_tags. Untuk menghapus semua tag, hapus kolom resource_tags.
Memberi tag pada resource seperti tabel lainnya
Anda dapat menandai tampilan BigQuery, tampilan terwujud, clone, dan snapshot dengan cara yang sama.
Kolom tag
Anda dapat memberi tag pada kolom tabel dengan tag tata kelola data untuk kontrol akses tingkat kolom dan penyamaran data.
Menghapus tag
Anda tidak dapat menghapus tag jika tag tersebut direferensikan oleh tabel, tampilan, atau set data. Anda harus melepaskan semua resource binding tag yang ada sebelum menghapus kunci atau nilai tag itu sendiri. Untuk menghapus kunci tag dan nilai tag, baca artikel Menghapus tag.
Contoh
Misalkan Anda adalah administrator dari suatu organisasi. Analis data Anda adalah semua anggota grup analis@contoh.com, yang memiliki peran IAM BigQuery Data Viewer pada project userData. Seorang analis data dipekerjakan, dan sesuai dengan kebijakan perusahaan, analis tersebut hanya akan memiliki izin untuk melihat set data anonymousData dalam project userData.
Anda dapat mengontrol aksesnya menggunakan tag.
Buat tag dengan kunci
employee_typedan nilaiintern:
Di konsol Google Cloud , buka halaman IAM.
Cari baris yang berisi karyawan magang yang akses set datanya ingin Anda batasi, lalu klik Edit akun utama di baris tersebut.
Dari menu Role, pilih BigQuery Data Viewer.
Klik Add condition.
Di kolom Title dan Description, masukkan nilai yang mendeskripsikan kondisi tag IAM yang ingin Anda buat.
Di tab Condition builder, klik Add.
Di menu Jenis kondisi, pilih Resource, lalu pilih Tag.
Di menu Operator, pilih has value.
Di kolom Value path, masukkan jalur nilai tag dalam formulir
ORGANIZATION/TAG_KEY/TAG_VALUE. Misalnya,example.org/employee_type/intern.
Kondisi tag IAM ini akan membatasi akses karyawan magang ke set data yang memiliki tag
intern.Untuk menyimpan kondisi tag, klik Save.
Untuk menyimpan perubahan apa pun yang Anda buat di panel Edit izin, klik Simpan.
Untuk memasang nilai tag
internke set dataanonymousData, gunakan command line untuk menjalankan perintahgcloud resource-manager tags bindings create. Contoh:gcloud resource-manager tags bindings create \ --tag-value=tagValues/4567890123 \ --parent=//bigquery.googleapis.com/projects/userData/datasets/anonymousData \ --location=US
Mengontrol akses ke kolom dengan tag tata kelola data
Anda dapat menerapkan keamanan tingkat kolom dan data masking di BigQuery menggunakan tag tata kelola data. Tag tata kelola data adalah jenis tag Resource Manager yang dapat Anda lampirkan ke kolom sensitif dan gunakan dalam kebijakan data BigQuery untuk memberikan akses bersyarat kepada pengguna Anda.
Konfigurasi keamanan tingkat kolom dengan membuat tag tata kelola data dan melampirkannya ke kolom BigQuery. Kemudian, buat kebijakan data BigQuery Data Policy yang mereferensikan tag ini. Kebijakan ini menerapkan aturan penyamaran data atau memberikan akses data mentah kepada pengguna tertentu, sehingga memastikan hanya pokok yang berwenang yang dapat melihat data sensitif.
Untuk mengetahui informasi selengkapnya, lihat Pengantar kontrol akses tingkat kolom dan Pengantar penyamaran data.
Sebelum Anda mulai menggunakan tag tata kelola
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init - Untuk membuat dan mengelola tag tata kelola data, Anda harus menggunakan BigQuery Enterprise edition.
Peran yang diperlukan untuk tag tata kelola data
Untuk mendapatkan izin yang Anda perlukan untuk mengontrol akses kolom dengan tag tata kelola data, minta administrator untuk memberi Anda peran IAM berikut:
-
Buat tag tata kelola data:
- Tag Administrator (
roles/resourcemanager.tagAdmin) di project atau organisasi - Organization Viewer (
roles/resourcemanager.organizationViewer) di organisasi
- Tag Administrator (
-
Melampirkan atau menghapus tag ke kolom:
- BigQuery Data Owner (
roles/bigquery.dataOwner) pada tabel - Tag User (
roles/resourcemanager.tagUser) di organisasi, project, atau nilai tag
- BigQuery Data Owner (
-
Membuat dan mengelola kebijakan data:
Admin BigQuery (
roles/bigquerydatapolicy.admin) di project
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat tag tata kelola data
Buat kunci tag tata kelola data dan nilainya.
Membuat kunci tag
Untuk membuat kunci untuk tag tata kelola data, tetapkan kolom purpose ke
purpose saat Anda membuat kunci tag.DATA_GOVERNANCE Menetapkan tujuan ini mengategorikan tag untuk keamanan tingkat kolom atau data masking dan membedakannya dari tag resource umum di BigQuery.
gcloud
Jalankan perintah
gcloud resource-manager tags keys create:gcloud resource-manager tags keys create TAG_KEY \ --parent=projects/PROJECT_ID \ --purpose=DATA_GOVERNANCEGanti kode berikut:
TAG_KEY: nama pendek untuk kunci tag.PROJECT_ID: ID project Google Cloud Anda. Untuk memberikan organisasi, bukan project, gunakanorganizations/ORGANIZATION_ID, bukanprojects/PROJECT_ID.
API
Kirim permintaan
POSTke endpointtagKeys:curl --request POST \ "https://cloudresourcemanager.googleapis.com/v3/tagKeys" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{"shortName":"TAG_KEY","parent":"projects/PROJECT_ID","purpose":"DATA_GOVERNANCE"}' \ --compressedGanti kode berikut:
TAG_KEY: nama pendek untuk kunci tag.PROJECT_ID: ID project Google Cloud Anda. Untuk memberikan organisasi, bukan project, gunakanorganizations/ORGANIZATION_ID, bukanprojects/PROJECT_ID.
Membuat nilai tag
Untuk menambahkan satu atau beberapa nilai ke kunci tag, ikuti langkah-langkah berikut.
gcloud
Dapatkan nama dengan namespace untuk kunci tag dengan menjalankan perintah
gcloud resource-manager tags keys list:gcloud resource-manager tags keys list --parent=projects/PROJECT_IDBuat nilai baru dengan menjalankan perintah
gcloud resource-manager tags values create:gcloud resource-manager tags values create TAG_VALUE \ --parent=PROJECT_ID/TAG_KEYGanti kode berikut:
TAG_VALUE: nama pendek yang ditentukan pengguna untuk nilai tag.PROJECT_ID: ID project Google Cloud Anda. Untuk memberikan organisasi, bukan project, gunakanORGANIZATION_IDAnda.
API
Dapatkan nama dengan namespace untuk kunci tag:
curl --request GET \ "https://cloudresourcemanager.googleapis.com/v3/tagKeys/namespaced?name=PROJECT_ID/TAG_KEY" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header 'Accept: application/json'Respons berisi kolom
name, misalnyatagKeys/4567890123.Kirim permintaan
POSTke endpointtagValuesdengan nama kunci tag:curl --request POST \ "https://cloudresourcemanager.googleapis.com/v3/tagValues" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{"shortName":"TAG_VALUE","parent":"tagKeys/TAG_KEY_ID"}' \ --compressedGanti kode berikut:
TAG_VALUE: nama pendek yang ditentukan pengguna untuk nilai tag.PROJECT_ID: ID project Google Cloud Anda. Untuk memberikan organisasi, bukan project, gunakanORGANIZATION_IDAnda.TAG_KEY_ID: nama dengan namespace untuk kunci tag dari langkah 1—misalnya, jika nama kunci tag adalahtagKeys/4567890123, maka ID kunci tag adalah4567890123.
Membuat nilai tag hierarkis
Secara opsional, Anda dapat membuat nilai tag turunan yang memiliki induk nilai tag dan membuat hierarki nilai tag tata kelola data. Hierarki dapat memiliki kedalaman 5 tingkat, seperti yang ditunjukkan dalam diagram berikut:
gcloud
Untuk membuat nilai tag turunan, jalankan perintah
gcloud resource-manager tags values create
dan tentukan nilai tag induk dalam flag --parent:
gcloud resource-manager tags values create CHILD_TAG_VALUE \
--parent=PROJECT_ID/TAG_KEY/PARENT_TAG_VALUE
Ganti kode berikut:
CHILD_TAG_VALUE: nama pendek untuk nilai tag turunan yang Anda buat.PROJECT_ID: ID Google Cloud project Anda. Untuk memberikan organisasi, bukan project, gunakanORGANIZATION_IDsebagai gantinya.TAG_KEY: nama pendek kunci tag yang merupakan induk dari nilai tag.PARENT_TAG_VALUE: nama pendek nilai tag induk.
API
Untuk membuat nilai tag turunan, gunakan nama resource nilai tag induk (misalnya, tagValues/123456789012) di kolom parent:
curl --request POST \
"https://cloudresourcemanager.googleapis.com/v3/tagValues" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"shortName":"CHILD_TAG_VALUE","parent":"tagValues/PARENT_TAG_VALUE_ID"}' \
--compressed
Ganti kode berikut:
CHILD_TAG_VALUE: nama pendek untuk nilai tag turunan yang Anda buat.PARENT_TAG_VALUE_ID: ID numerik nilai tag induk.
Melampirkan tag tata kelola data ke kolom BigQuery
Lampirkan tag tata kelola data yang Anda buat ke kolom BigQuery yang ingin Anda lindungi.
SQL
Membuat tabel baru dengan kolom yang diberi tag
Untuk melampirkan tag tata kelola data saat membuat tabel baru, gunakan pernyataan
CREATE TABLE. Tentukan tag dengan menyetel opsi data_governance_tags di kolom.
CREATE TABLE PROJECT_ID.DATASET_ID.TABLE_ID (
COLUMN_NAME INT64 OPTIONS (data_governance_tags=[("PROJECT_ID/TAG_KEY", "TAG_VALUE")])
);
Ganti kode berikut:
PROJECT_ID: ID Google Cloud project Anda. Untuk memberikan organisasi, bukan project, sebagai induk tag, gunakanORGANIZATION_IDAnda sebagai gantinya untuk format kunci tag (ORGANIZATION_ID/TAG_KEY).DATASET_ID: ID set data tempat tabel berada.TABLE_ID: ID tabel yang Anda buat.COLUMN_NAME: nama kolom yang ingin Anda beri tag.TAG_KEY: kunci tag yang ingin Anda terapkan.TAG_VALUE: nilai tag yang ingin Anda terapkan.
Menambahkan tag ke tabel yang ada
Untuk melampirkan tag tata kelola data ke kolom dalam tabel yang ada, gunakan pernyataan
ALTER TABLE
untuk menetapkan opsi data_governance_tags pada kolom.
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
ALTER COLUMN COLUMN_NAME SET OPTIONS (data_governance_tags=[("PROJECT_ID/TAG_KEY", "TAG_VALUE")]);
bq CLI
Membuat tabel baru dengan kolom yang diberi tag
Untuk membuat file skema JSON lokal yang menentukan tag, jalankan perintah
bq mkberikut:bq mk \ --table \ --project_id=PROJECT_ID \ --description="description of my table" \ --schema=SCHEMA_FILE.json \ DATASET_ID.TABLE_IDGanti kode berikut:
PROJECT_ID: ID project Google Cloud Anda. Untuk memberikan organisasi, bukan project, sebagai induk tag Anda, gunakanORGANIZATION_IDAnda sebagai gantinya untuk format kunci tag (ORGANIZATION_ID/TAG_KEY).DATASET_ID: ID set data tempat tabel berada.TABLE_ID: ID tabel yang Anda buat.
Menambahkan tag ke tabel yang ada
Untuk menambahkan tag ke tabel yang ada, ekspor terlebih dahulu skemanya ke file lokal:
bq show \ --project_id=PROJECT_ID \ --schema \ --format=prettyjson \ DATASET_ID.TABLE_ID > SCHEMA_FILE.jsonEdit file skema untuk menambahkan objek
dataGovernanceTagsInfoke kolom. Contoh:[ { "description": "my sensitive column", "mode": "NULLABLE", "name": "Column_X", "type": "INT64", "dataGovernanceTagsInfo": { "dataGovernanceTags": { "PROJECT_ID/TAG_KEY": "TAG_VALUE" } } }, { "mode": "REQUIRED", "name": "column2", "type": "FLOAT" } ]Perbarui tabel untuk melampirkan tag ke kolom sensitif dengan perintah
bq update:bq update \ --project_id=PROJECT_ID \ --schema=SCHEMA_FILE.json \ DATASET_ID.TABLE_IDAnda juga dapat menggunakan perintah
bq updateuntuk menghapus tag yang ada dan melampirkan tag baru.
API
Membuat tabel baru dengan kolom yang diberi tag
Gunakan metode tables.insert. Sertakan kolom dataGovernanceTagsInfo dalam isi permintaan.
```json
{
"schema": {
"fields": [
{
"name": "Column_X",
"type": "INT64",
"description": "sensitive column",
"dataGovernanceTagsInfo": {
"dataGovernanceTags": {
"PROJECT_ID/TAG_KEY": "TAG_VALUE"
}
}
}
]
}
}
```
Menambahkan tag ke tabel yang ada
Ambil resource tabel saat ini dengan metode
tables.get.Ubah resource tabel untuk menyertakan kolom
dataGovernanceTagsInfountuk kolom target.Panggil metode
tables.updateatautables.patchdengan resource tabel yang diperbarui.
Membuat dan mengelola kebijakan data
Buat dan kelola kebijakan data BigQuery yang mereferensikan tag tata kelola data untuk menerapkan aturan penyamaran atau kebijakan akses data mentah.
Setelah kebijakan data dibuat untuk kolom yang diberi tag, hanya pengguna yang ditentukan dalam kebijakan tersebut yang dapat mengakses kolom, asalkan mereka juga memiliki akses ke tabel. Semua pengguna lain ditolak aksesnya.
Membuat kebijakan data
API
Buat kebijakan data yang menggunakan aturan penyamaran SHA256 standar, atau buat kebijakan akses data mentah.
Membuat kebijakan data dengan aturan penyamaran SHA256 standar
Untuk membuat kebijakan data dengan aturan penyamaran SHA256 yang telah ditentukan sebelumnya, kirim permintaan
POST ke endpoint dataPolicies:
curl --request POST \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"dataPolicy":{"dataPolicyType":"DATA_MASKING_POLICY","dataMaskingPolicy":{"predefinedExpression":"SHA256"},"grantees": ["principal://goog/subject/EMAIL_ADDRESS"],"dataGovernanceTag":{"key":"PROJECT_ID/TAG_KEY","value":"TAG_VALUE"}},"dataPolicyId":"POLICY_ID"}' \
--compressed
Ganti kode berikut:
PROJECT_ID: ID project Google Cloud Anda. Untuk memberikan organisasi, bukan project, sebagai induk tag Anda, gunakanORGANIZATION_ID, bukan formatdataGovernanceTag.key(ORGANIZATION_ID/TAG_KEY).LOCATION: region tempat Anda membuat kebijakan data. Untuk mengetahui informasi selengkapnya, lihat lokasi kebijakan data.EMAIL_ADDRESS: alamat email pengguna yang akan diberi akses.TAG_KEY: nama pendek untuk kunci tag.TAG_VALUE: nama pendek yang ditentukan pengguna untuk nilai tag.POLICY_ID: ID untuk kebijakan data.
Membuat kebijakan akses data mentah
Untuk membuat kebijakan akses data mentah, tetapkan dataPolicyType ke
RAW_DATA_ACCESS_POLICY:
curl --request POST \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"dataPolicy":{"dataPolicyType":"RAW_DATA_ACCESS_POLICY","grantees": ["principal://goog/subject/EMAIL_ADDRESS"],"dataGovernanceTag":{"key":"PROJECT_ID/TAG_KEY","value":"TAG_VALUE"}},"dataPolicyId":"POLICY_ID"}' \
--compressed
Memperbarui kebijakan data
Memperbarui kebijakan data yang ada untuk memberikan akses kepada pengguna tambahan.
API
Untuk menambahkan pengguna dengan memperbarui kebijakan secara langsung, dapatkan kebijakan saat ini dan
etag-nya terlebih dahulu:curl --request GET \ "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --compressedKirim permintaan
PATCHdengan daftar penerima hibah yang telah diperbarui danetagdari langkah sebelumnya:curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"], "etag": "ETAG" }' \ "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID?updateMask=grantees"Ganti
ETAGdengan nilaietagyang ditampilkan oleh permintaanGETpada langkah sebelumnya.Atau, gunakan metode
addGranteesuntuk menambahkan pengguna ke kebijakan:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"] }' \ "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID:addGrantees"Untuk menghapus pengguna dari kebijakan, gunakan metode
removeGrantees:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"] }' \ "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID:removeGrantees"
Menghapus kebijakan data
API
Untuk menghapus kebijakan data, kirim permintaan DELETE ke endpoint dataPolicies:
curl --request DELETE \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--compressed
Mencantumkan kebijakan data
API
Untuk mencantumkan kebijakan data yang mereferensikan kunci tag, kirim permintaan GET ke endpoint dataPolicies dengan parameter filter:
curl --request GET \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies?filter=dataGovernanceTag:PROJECT_ID/TAG_KEY" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--compressed
Interaksi dengan fitur lain
Bagian ini menjelaskan cara tag tata kelola data berinteraksi dengan fitur BigQuery lainnya.
| Fitur | Interaksi |
|---|---|
| Skema Informasi | Tag tata kelola data yang dilampirkan ke kolom disertakan dalam
tampilan INFORMATION_SCHEMA.COLUMNS
dan INFORMATION_SCHEMA.COLUMN_FIELD_PATHS. |
| Salinan tabel | Penyalinan tabel lintas region dinonaktifkan untuk tabel yang memiliki fitur keamanan tingkat kolom, termasuk tabel dengan tag tata kelola data. |
| Perjalanan waktu | Akses ke data tabel historis diatur oleh kebijakan akses dan tag yang dilampirkan ke tabel. |
Mengonfigurasi project kebijakan data default
Saat Anda mengakses kolom yang dilindungi oleh tag tata kelola data, BigQuery secara default hanya mengevaluasi kebijakan data di project tempat tabel berada. Kebijakan data yang ditentukan di project lain tidak berlaku, kecuali jika administrator mengonfigurasi project kebijakan data default di tingkat organisasi.
Jika project kebijakan data default dikonfigurasi untuk organisasi Anda, BigQuery akan mengevaluasi kebijakan data project tabel dan project kebijakan data default saat menentukan akses kolom.
Jika pengguna tunduk pada kebijakan data yang bertentangan di project tabel dan project kebijakan data default, kebijakan data di project tabel akan diprioritaskan.
Untuk menyetel atau melihat opsi default_data_policy_projects di tingkat organisasi menggunakan DDL atau tampilan INFORMATION_SCHEMA, lihat Setelan pengelolaan data dalam dokumentasi konfigurasi default.
Batasan tag tata kelola data
- Tabel BigQuery Omni tidak mendukung tag tata kelola data pada kolom.
- Anda dapat menggunakan konsol Google Cloud untuk melihat tag tata kelola data pada kolom, tetapi tidak untuk mengikat atau melepaskan ikatannya.
- Anda dapat mengikat satu tag per kolom dan hingga 1.000 tag unik per tabel.
- Jika Anda membuat kueri kolom yang diberi tag menggunakan BigQuery Storage Read API, panggilan
tabledata.list, atau tabel wildcard, Anda akan menerima error akses ditolak kecuali jika kebijakan data memberi Anda akses. - Untuk kolom
STRUCT, Anda hanya dapat menerapkan tag tata kelola data ke kolom leaf. - Anda dapat menghapus nilai tag yang terlampir pada kolom. Jika Anda menghapus nilai tag, pengikatan tag akan tetap ada di kolom, tetapi karena nilai tag tidak ada lagi, akses ke kolom mungkin hilang.
Memecahkan masalah tag tata kelola data
Bagian ini menjelaskan cara memecahkan masalah umum saat mengontrol akses ke kolom dengan tag tata kelola data.
Nama tag yang diformat salah
Saat membuat tag, Anda menentukan nama pendek (misalnya, ssn). Namun,
saat melampirkan tag ke kolom dalam skema atau menggunakannya dalam kondisi, kunci
tag harus menggunakan format dengan namespace (PROJECT_ID/TAG_KEY atau
ORGANIZATION_ID/TAG_KEY), sementara nilai tag tetap menggunakan nama pendek. Hanya memberikan
nama pendek untuk kunci tag akan menghasilkan error Invalid tagKey atau Invalid
tagValue.
Penerapan kebijakan lintas project
Secara default, hanya kebijakan data project tabel yang dievaluasi. Kebijakan dari project lain tidak berlaku kecuali jika project kebijakan data default dikonfigurasi di tingkat organisasi. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi dan mengevaluasi kebijakan lintas project, lihat Mengonfigurasi project kebijakan data default.
Langkah berikutnya
- Untuk ringkasan tag di Google Cloud, lihat Ringkasan tag.
- Untuk mengetahui informasi selengkapnya tentang cara menggunakan tag, lihat Membuat dan mengelola tag.
- Pelajari lebih lanjut cara menerapkan kebijakan pada kolom.
- Untuk mengetahui informasi tentang cara mengontrol akses ke resource BigQuery dengan IAM Conditions, lihat Mengontrol akses dengan IAM Conditions.