Memberi tag pada tabel, tampilan, dan set data
Dokumen ini menjelaskan cara menggunakan tag untuk menerapkan kebijakan Identity and Access Management (IAM) secara bersyarat pada tabel, tampilan, dan set data BigQuery.
Anda juga dapat menggunakan tag untuk menolak akses secara bersyarat dengan kebijakan IAM ke tabel, tampilan, dan set data BigQuery (Pratinjau). Untuk informasi selengkapnya, lihat Kebijakan penolakan.
Tag adalah pasangan nilai kunci yang dapat Anda lampirkan langsung ke tabel, tampilan, atau set data, atau pasangan nilai kunci yang dapat diwarisi oleh tabel, tampilan, atau set data dari resourceGoogle Cloud lainnya. Anda dapat menerapkan kebijakan secara bersyarat berdasarkan apakah resource memiliki tag tertentu atau tidak. Misalnya, Anda dapat memberikan peran BigQuery Data Viewer secara bersyarat kepada akun utama di set data apa pun dengan tag environment:dev
.
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 di 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 kumpulan 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 . Perubahan 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.
Misalnya, Data Catalog tidak dapat memverifikasi kondisi tag IAM pada set data dan tabel BigQuery. Misalkan ada kebijakan IAM bersyarat yang memberi karyawan magang peran BigQuery Data Viewer di set data dengan tag
employee_type=intern
. Karena ini adalah kondisi tag positif, karyawan magang tidak dapat melihat set data dengan melakukan penelusuran di Data Catalog meskipun set data tersebut memiliki tagemployee_type=intern
. Jika kondisi tag diubah menjadi negatif, sehingga karyawan magang hanya dapat melihat set data yang tidak memiliki tagemployee_type=intern
, pemeriksaan akan dilewati sepenuhnya dan karyawan magang dapat melihat set data yang biasanya tidak dapat mereka akses di BigQuery.
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 organisasi atau project induk, Anda memerlukan izin
resourcemanager.tagKeys.list
di level induk kunci tag dan izinresourcemanager.tagKeys.get
untuk setiap kunci tag. Untuk melihat daftar kunci tag di konsol BigQuery, klik nama set data, lalu klik Edit details, atau klik nama tabel atau tampilan, lalu klik Details > Edit details.Untuk mencantumkan nilai tag kunci yang dikaitkan dengan organisasi atau project induk, Anda memerlukan izin
resourcemanager.tagValues.list
di tingkat induk nilai tag dan izinresourcemanager.tagValues.get
untuk 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 yang 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 yang efektif untuk set data, Anda memerlukan izin IAM
bigquery.datasets.listEffectiveTags
.
Membuat kunci dan nilai tag
Anda dapat membuat tag sebelum melampirkan tag tersebut ke resource BigQuery, atau membuat tag secara manual saat membuat resource menggunakan konsolGoogle Cloud .
Untuk 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 terpasang ke set data, dan melepaskan tag dari set data.
Melampirkan tag saat Anda membuat set data baru
Setelah membuat tag, Anda dapat melampirkan tag tersebut ke set data BigQuery baru. Anda hanya dapat melampirkan satu nilai tag ke set data untuk setiap kunci tag tertentu. Anda dapat memasang maksimum 50 tag ke set data.
Konsol
Di Google Cloud konsol, buka halaman BigQuery.
Di panel Explorer, pilih project tempat Anda ingin membuat set data.
Klik > Create dataset.
View actionsMasukkan 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 Select scope dan pilih Current scope—Select current organization atau Select current project.
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 Select a scope, lalu pilih Manually enter IDs > Organization, Project, atau Tags.
Jika Anda membuat tag untuk project atau organisasi, di dialog, masukkan
PROJECT_ID
atauORGANIZATION_ID
, 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, lalu ikuti langkah-langkah sebelumnya.
Klik Create dataset.
SQL
Gunakan pernyataan CREATE SCHEMA
.
Di Google Cloud konsol, 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 informasi selengkapnya tentang cara menjalankan kueri, lihat 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 dan nama pendek nilai dengan namespace.PROJECT_ID
: project ID 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 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 Google Cloud , selesaikan langkah-langkah di bagian berikut.
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.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
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
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka Google Cloud project 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 melampirkan tag tersebut ke set data yang ada. Anda hanya dapat memasang satu nilai tag ke set data untuk setiap kunci tag tertentu.
Konsol
Di Google Cloud konsol, buka halaman BigQuery.
Di panel Explorer, luaskan project Anda dan 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 Select scope dan pilih Current scope—Select current organization atau Select current project.
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 Select a scope, lalu pilih Manually enter IDs > Organization, Project, atau Tags.
Jika Anda membuat tag untuk project atau organisasi, di dialog, masukkan
PROJECT_ID
atauORGANIZATION_ID
, 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, lalu ikuti langkah-langkah sebelumnya.
Klik Simpan.
SQL
Gunakan pernyataan ALTER SCHEMA SET OPTIONS
.
Contoh berikut menimpa semua tag untuk set data yang ada.
Di Google Cloud konsol, 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 di 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 informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
Contoh berikut menggunakan operator +=
untuk melampirkan tag ke set data tanpa menimpa tag yang ada. Jika tag yang ada memiliki kunci yang sama, tag tersebut akan ditimpa.
Di Google Cloud konsol, 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 di 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 informasi selengkapnya tentang cara menjalankan kueri, lihat 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 dan nama pendek nilai dengan namespace.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/4567890123
atau1234567/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 Anda ke kolom resource_tags
dan teruskan resource set data yang diperbarui kembali 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 Google Cloud konsol, buka halaman BigQuery.
Di panel Explorer, luaskan project Anda dan pilih set data.
Tag muncul di bagian Dataset info.
bq
Untuk mencantumkan tag yang dilampirkan 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 tagnya ingin Anda cantumkan.
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
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
.
Dilihat
Gunakan
tampilan INFORMATION_SCHEMA.SCHEMATA_OPTIONS
.
Misalnya, kueri berikut menampilkan semua tag yang dilampirkan ke semua set data
di 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 mewakili 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 menghapus tag, Anda harus melepaskannya dari set data sebelum menghapusnya. Untuk informasi selengkapnya, lihat Menghapus tag.
Konsol
Di Google Cloud konsol, buka halaman BigQuery.
Di panel Explorer, luaskan project Anda dan 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 Google Cloud konsol, 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 singkat untuk nilai tag kedua yang Anda lepaskan.
Klik
Run.
Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat 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 kunci tanpa pasangan nilai. 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 dari nilai tag yang akan dilepas, sepertitagValues/4567890123
atau1234567/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 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 resource set data yang diperbarui kembali menggunakan metode datasets.update
.
Tabel tag
Bagian berikut menjelaskan cara melampirkan tag ke tabel baru dan yang sudah ada, mencantumkan tag yang terlampir 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 Google Cloud konsol, buka halaman BigQuery.
Di panel Explorer, luaskan project Anda, 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 Select scope dan pilih Current scope—Select current organization atau Select current project.
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 Select a scope, lalu pilih Manually enter IDs > Organization, Project, atau Tags.
Jika Anda membuat tag untuk project atau organisasi, di dialog, masukkan
PROJECT_ID
atauORGANIZATION_ID
, 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, lalu ikuti langkah-langkah sebelumnya.
Klik Create table.
SQL
Gunakan pernyataan CREATE TABLE
.
Di Google Cloud konsol, 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 di 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 informasi selengkapnya tentang cara menjalankan kueri, lihat 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 dan nama pendek nilai dengan namespace.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 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 Google Cloud , selesaikan langkah-langkah di bagian berikut.
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.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
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
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka Google Cloud project 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 melampirkan tag tersebut ke tabel yang ada. Anda hanya dapat melampirkan satu nilai tag ke tabel untuk setiap kunci tag tertentu.
Konsol
Di Google Cloud konsol, buka halaman BigQuery.
Di panel Explorer, luaskan project dan set data Anda, lalu pilih tabel.
Klik tab Details, lalu klik
Edit details.Luaskan bagian Tag.
Untuk menerapkan tag yang ada, lakukan hal berikut:
Klik panah drop-down di samping Select scope dan pilih Current scope—Select current organization atau Select current project.
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 Select a scope, lalu pilih Manually enter IDs > Organization, Project, atau Tags.
Jika Anda membuat tag untuk project atau organisasi, di dialog, masukkan
PROJECT_ID
atauORGANIZATION_ID
, 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, lalu ikuti langkah-langkah sebelumnya.
Klik Simpan.
SQL
Gunakan pernyataan ALTER TABLE SET OPTIONS
.
Contoh berikut akan menimpa semua tag untuk tabel yang ada.
Di Google Cloud konsol, 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 di 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 informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
Contoh berikut menggunakan operator +=
untuk melampirkan tag ke tabel
tanpa menimpa tag yang ada. Jika tag yang ada memiliki kunci yang sama, tag tersebut akan ditimpa.
Di Google Cloud konsol, 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 di 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 informasi selengkapnya tentang cara menjalankan kueri, lihat 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 dan nama pendek nilai 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 update.
gcloud
Untuk memasang 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/4567890123
atau1234567/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_table
LOCATION
: 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 artikel 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 Google Cloud konsol, buka halaman BigQuery.
Di panel Explorer, luaskan project dan set data Anda, lalu pilih tabel.
Tag terlihat di tab Details.
bq
Gunakan
perintah bq show
dan cari kolom tags
. Jika tidak ada tag di tabel, kolom tags
tidak akan 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
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
.
Dilihat
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 mewakili 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 informasi selengkapnya, lihat Menghapus tag.
Konsol
Di Google Cloud konsol, buka halaman BigQuery.
Di panel Explorer, luaskan project dan set data Anda, lalu pilih tabel.
Klik tab Details, lalu klik
Edit details.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
melepas semua tag dari tabel, Anda dapat menentukan tags=NULL
atau tags=[]
.
Di Google Cloud konsol, 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 singkat untuk nilai tag kedua yang Anda lepaskan.
Klik
Run.
Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat 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 update.
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 pengaitan 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 dari nilai tag yang akan dihapus, sepertitagValues/4567890123
atau1234567/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 juga dapat memberi tag pada tampilan BigQuery, tampilan terwujud, clone, dan snapshot.
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_type
dan 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 Condition type, pilih Resource, lalu pilih Tag.
Di menu Operator, pilih has value.
Di kolom Value path, masukkan jalur nilai tag dalam bentuk
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 permissions, klik Save.
Untuk memasang nilai tag
intern
ke 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
Langkah berikutnya
- Untuk ringkasan tag di Google Cloud, lihat Ringkasan tag.
- Untuk mengetahui informasi selengkapnya tentang cara menggunakan tag, lihat Membuat dan mengelola tag.
- Untuk mengetahui informasi tentang cara mengontrol akses ke resource BigQuery dengan IAM Conditions, lihat Mengontrol akses dengan IAM Conditions.