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 izin resourcemanager.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 izin resourcemanager.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 izin resourcemanager.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 izin resourcemanager.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 izin resourcemanager.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 izin resourcemanager.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

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di panel Explorer, luaskan project Anda, lalu pilih set data.

  3. Di bagian Dataset info, klik Create table.

  4. Masukkan informasi untuk tabel baru Anda. Untuk mengetahui detail selengkapnya, lihat Membuat dan menggunakan tabel.

  5. Di bagian Tags, pilih tag yang ingin Anda tambahkan ke tabel baru.

  6. 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:


# Create tag keys and values
data "google_project" "default" {}

resource "google_tags_tag_key" "env_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "env3"
}

resource "google_tags_tag_key" "department_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "department3"
}

resource "google_tags_tag_value" "env_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.env_tag_key.name}"
  short_name = "prod"
}

resource "google_tags_tag_value" "department_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.department_tag_key.name}"
  short_name = "sales"
}

# Create a dataset
resource "google_bigquery_dataset" "default" {
  dataset_id                      = "MyDataset"
  default_partition_expiration_ms = 2592000000  # 30 days
  default_table_expiration_ms     = 31536000000 # 365 days
  description                     = "dataset description"
  location                        = "US"
  max_time_travel_hours           = 96 # 4 days
}

# Create a table
resource "google_bigquery_table" "default" {
  dataset_id          = google_bigquery_dataset.default.dataset_id
  table_id            = "mytable"
  description         = "table description"
  deletion_protection = false # set to "true" in production

  # Attach tags to the table
  resource_tags = {
    (google_tags_tag_key.env_tag_key.namespaced_name) : google_tags_tag_value.env_tag_value.short_name,
    (google_tags_tag_key.department_tag_key.namespaced_name) : google_tags_tag_value.department_tag_value.short_name
  }
}

Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.

Menyiapkan Cloud Shell

  1. Luncurkan Cloud Shell.
  2. 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).

  1. Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki ekstensi .tf—misalnya main.tf. Dalam tutorial ini, file ini disebut sebagai main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 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.

  3. Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
  4. Simpan perubahan Anda.
  5. 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

  1. Tinjau konfigurasi dan pastikan resource yang akan dibuat atau diupdate oleh Terraform sesuai yang Anda inginkan:
    terraform plan

    Koreksi konfigurasi jika diperlukan.

  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada prompt:
    terraform apply

    Tunggu hingga Terraform menampilkan pesan "Apply complete!".

  3. 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

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di panel Explorer, luaskan project dan set data Anda, lalu pilih tabel.

  3. Di tab Detail, klik Edit detail.

  4. Di bagian Tags, pilih tag yang ingin Anda tambahkan ke tabel.

  5. 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, seperti tagValues/4567890123 atau 1234567/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

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. 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

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di panel Explorer, luaskan project dan set data Anda, lalu pilih tabel.

  3. Di tab Detail, klik Edit detail.

  4. Di bagian Tags, hapus tag yang ingin dilepas dari tabel.

  5. 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, seperti tagValues/4567890123 atau 1234567/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

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di panel Explorer, pilih project tempat Anda ingin membuat set data.

  3. Klik View actions > Create dataset.

  4. Di menu Tag, klik Select scope.

  5. Pilih cakupan untuk tag Anda.

  6. Pilih dan tambahkan tag yang ingin Anda tambahkan ke set data.

  7. 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:


# Create tag keys and values
data "google_project" "default" {}

resource "google_tags_tag_key" "env_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "env2"
}

resource "google_tags_tag_key" "department_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "department2"
}

resource "google_tags_tag_value" "env_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.env_tag_key.name}"
  short_name = "prod"
}

resource "google_tags_tag_value" "department_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.department_tag_key.name}"
  short_name = "sales"
}

# Create a dataset
resource "google_bigquery_dataset" "default" {
  dataset_id                      = "my_dataset"
  default_partition_expiration_ms = 2592000000  # 30 days
  default_table_expiration_ms     = 31536000000 # 365 days
  description                     = "dataset description"
  location                        = "US"
  max_time_travel_hours           = 96 # 4 days

  # Attach tags to the dataset
  resource_tags = {
    (google_tags_tag_key.env_tag_key.namespaced_name) : google_tags_tag_value.env_tag_value.short_name,
    (google_tags_tag_key.department_tag_key.namespaced_name) : google_tags_tag_value.department_tag_value.short_name
  }
}

Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.

Menyiapkan Cloud Shell

  1. Luncurkan Cloud Shell.
  2. 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).

  1. Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki ekstensi .tf—misalnya main.tf. Dalam tutorial ini, file ini disebut sebagai main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 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.

  3. Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
  4. Simpan perubahan Anda.
  5. 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

  1. Tinjau konfigurasi dan pastikan resource yang akan dibuat atau diupdate oleh Terraform sesuai yang Anda inginkan:
    terraform plan

    Koreksi konfigurasi jika diperlukan.

  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada prompt:
    terraform apply

    Tunggu hingga Terraform menampilkan pesan "Apply complete!".

  3. 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

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di panel Explorer, luaskan project Anda dan pilih set data.

  3. Di bagian Dataset info, klik Edit details.

  4. Di bagian Tags, pilih tag yang ingin Anda tambahkan ke set data.

  5. 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, seperti tagValues/4567890123 atau 1234567/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

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. 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

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di panel Explorer, luaskan project Anda dan pilih set data.

  3. Di bagian Dataset info, klik Edit details.

  4. Di bagian Tags, klik Delete item di samping tag yang ingin dihapus.

  5. 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, seperti tagValues/4567890123 atau 1234567/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.

  1. Buat tag dengan kunci employee_type dan nilai intern:

    Contoh pembuatan kunci dan nilai tag.

  2. Di Konsol Google Cloud, buka halaman IAM.

    Buka IAM

  3. Cari baris yang berisi karyawan magang yang akses set datanya ingin Anda batasi, lalu klik Edit akun utama di baris tersebut.

  4. Dari menu Role, pilih BigQuery Data Viewer.

  5. Klik Add condition.

  6. Di kolom Title dan Description, masukkan nilai yang mendeskripsikan kondisi tag IAM yang ingin Anda buat.

  7. Di tab Condition builder, klik Add.

  8. Di menu Condition type, pilih Resource, lalu pilih Tag.

  9. Di menu Operator, pilih has value.

  10. Di kolom Value path, masukkan jalur nilai tag dalam bentuk ORGANIZATION/TAG_KEY/TAG_VALUE. Misalnya, example.org/employee_type/intern.

    Contoh IAM Conditions yang menggunakan tag.

    Kondisi tag IAM ini akan membatasi akses karyawan magang ke set data yang memiliki tag intern.

  11. Untuk menyimpan kondisi tag, klik Save.

  12. Untuk menyimpan perubahan apa pun yang Anda buat di panel Edit permissions, klik Save.

  13. Untuk memasang nilai tag intern ke set data anonymousData, gunakan command line untuk menjalankan perintah gcloud 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 tag employee_type=intern. Jika kondisi tag diubah menjadi negatif, sehingga karyawan magang hanya dapat melihat set data yang tidak memiliki tag employee_type=intern, pemeriksaan akan dilewati sepenuhnya dan karyawan magang dapat melihat set data yang biasanya tidak dapat mereka akses di BigQuery.

Langkah berikutnya