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.
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.
Sebelum memulai
Anda harus memberikan peran IAM yang memberi pengguna izin yang diperlukan untuk melakukan setiap tugas dalam dokumen ini. Anda juga perlu membuat kunci dan nilai tag untuk dilampirkan ke resource.
Izin yang diperlukan
Untuk menggunakan tag di BigQuery, Anda memerlukan izin berikut:
- Untuk memasang tag ke tabel atau tampilan, Anda memerlukan izin IAM
bigquery.tables.createTagBinding
pada tabel atau tampilan, dan izinresourcemanager.tagValueBindings.create
di tingkat project pada nilai tag yang ingin dipasang. - Untuk memasang tag ke set data, Anda memerlukan izin IAM
bigquery.datasets.createTagBinding
pada set data, dan izinresourcemanager.tagValueBindings.create
di level project pada nilai tag yang ingin dipasang. - Untuk menghapus tag dari tabel atau tampilan, Anda memerlukan izin IAM
bigquery.tables.deleteTagBinding
pada tabel atau tampilan, dan izinresourcemanager.tagValueBindings.delete
di tingkat project pada nilai tag yang ingin dihapus. - Untuk menghapus tag dari set data, Anda memerlukan izin IAM
bigquery.datasets.deleteTagBinding
pada set data, dan izinresourcemanager.tagValueBindings.delete
di tingkat project pada nilai tag yang ingin dihapus. - Untuk mencantumkan kunci tag yang terkait dengan organisasi atau project induk di panel Edit details untuk tabel, tampilan, atau set data, Anda memerlukan izin
resourcemanager.tagKeys.list
di level induk kunci tag dan izinresourcemanager.tagKeys.get
untuk setiap kunci tag. - Untuk mencantumkan nilai tag kunci yang terkait dengan organisasi atau project induk di panel Edit details untuk tabel, tampilan, atau set data, Anda memerlukan izin
resourcemanager.tagValues.list
di level induk nilai tag dan izinresourcemanager.tagValues.get
untuk setiap nilai tag.
Jika menggunakan tag dengan Cloud Resource Manager API atau gcloud, Anda juga 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
.
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 disertakan dalam peran Tag User (roles/resourcemanager.tagUser
).
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.
Membuat kunci dan nilai tag
Sebelum dapat mengaitkan tag, Anda harus membuat tag dan mengonfigurasi nilainya. Untuk membuat kunci tag dan nilai tag, lihat artikel Membuat tag dan Menambahkan nilai tag.
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 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.
Di bagian Tags, pilih tag yang ingin Anda tambahkan ke tabel baru.
Klik Create table.
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 yang Anda buat.
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 project Google Cloud 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 melampirkan tag tersebut 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 Explorer, luaskan project dan set data Anda, lalu pilih tabel.
Di tab Detail, klik
Edit detail.Di bagian Tags, pilih tag yang ingin Anda tambahkan ke tabel.
Klik Simpan.
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=TAGVALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
Ganti kode berikut:
TAGVALUE_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 konsol Google Cloud, 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 perlu menghapus tag, Anda harus melepaskan tag tersebut terlebih dahulu.
Konsol
Di konsol Google Cloud, buka halaman BigQuery.
Di panel Explorer, luaskan project dan set data Anda, lalu pilih tabel.
Di tab Detail, klik
Edit detail.Di bagian Tags, hapus tag yang ingin dilepas dari tabel.
Klik Simpan.
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=TAGVALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
Ganti kode berikut:
TAGVALUE_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 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 konsol Google Cloud, buka halaman BigQuery.
Di panel Explorer, pilih project tempat Anda ingin membuat set data.
Klik > Create dataset.
View actionsDi menu Tag, klik Select scope.
Pilih cakupan untuk tag Anda.
Pilih dan tambahkan tag yang ingin Anda tambahkan ke set data.
Klik Create dataset.
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
: ID project tempat Anda membuat set data.DATASET_ID
: ID set data baru yang Anda buat.
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 project Google Cloud 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 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 konsol Google Cloud, buka halaman BigQuery.
Di panel Explorer, luaskan project Anda dan pilih set data.
Di bagian Dataset info, klik
Edit details.Di bagian Tags, pilih tag yang ingin Anda tambahkan ke set data.
Klik Simpan.
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=TAGVALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
Ganti kode berikut:
TAGVALUE_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. API ini tidak menampilkan tag apa pun yang diwarisi dari resource induk.
Konsol
Di konsol Google Cloud, 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 perlu menghapus tag, Anda harus melepaskan tag tersebut terlebih dahulu.
Konsol
Di konsol Google Cloud, 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.
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=TAGVALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
Ganti kode berikut:
TAGVALUE_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
.
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
:gcloud resource-manager tags bindings create \ --tag-value=tagValues/4567890123 \ --parent=//bigquery.googleapis.com/projects/userData/datasets/anonymousData \ --location=US
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.
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.