Mengontrol akses dengan tag

Dokumen ini menjelaskan cara menggunakan tag dengan resource BigQuery untuk kontrol akses.

Tag adalah pasangan nilai kunci yang dapat Anda lampirkan ke resource Google Cloud. Anda dapat menggunakan tag dengan BigQuery dengan cara berikut:

  • Kebijakan pemberian atau penolakan secara bersyarat: Anda dapat melampirkan tag ke tabel, tampilan, dan set data BigQuery, lalu menggunakan Identity and Access Management (IAM) untuk memberikan peran secara bersyarat atau menolak akses (Pratinjau) ke resource tersebut berdasarkan tagnya. Untuk mengetahui informasi selengkapnya tentang kebijakan penolakan, lihat Kebijakan penolakan.
  • Kontrol akses tingkat kolom: Anda dapat melampirkan tag tata kelola data (Pratinjau) ke kolom tabel dan menggunakannya dengan kebijakan data untuk membatasi akses ke data kolom.

Anda dapat melampirkan tag langsung ke resource, atau tag dapat diwarisi dari resource induk dalam hierarki resource Google Cloud .

Dokumen ini berfokus pada penggunaan tag dengan IAM untuk memberikan atau menolak akses secara bersyarat ke tabel, tampilan, dan set data BigQuery.

Untuk mengetahui informasi selengkapnya tentang penggunaan tag di seluruh hierarki resource Google Cloud, lihat Ringkasan tag.

Untuk memberikan izin ke banyak resource BigQuery terkait secara bersamaan, termasuk resource yang belum ada, pertimbangkan untuk menggunakan IAM Conditions.

Batasan

  • Tag tabel tidak didukung di tabel BigQuery Omni, tabel dalam set data tersembunyi, atau tabel sementara. Tag set data tidak didukung di set data BigQuery Omni. Selain itu, kueri lintas region di BigQuery Omni tidak menggunakan tag selama pemeriksaan kontrol akses tabel di region lain.

  • Anda dapat memasang maksimum 50 tag ke tabel atau set data.

  • Semua tabel yang direferensikan dalam kueri karakter pengganti harus memiliki set kunci dan nilai tag yang sama persis.

  • Pengguna dengan akses kondisional ke set data atau tabel tidak dapat mengubah izin untuk resource tersebut melalui konsol Google Cloud . Modifikasi izin hanya didukung melalui alat bq dan BigQuery API.

  • Beberapa layanan di luar BigQuery tidak dapat memverifikasi kondisi tag IAM dengan benar. Jika kondisi tag positif, artinya pengguna diberi peran pada resource hanya jika resource tersebut memiliki tag tertentu, akses ditolak ke resource tersebut, terlepas dari tag mana yang dipasang ke resource tersebut. Jika kondisi tag negatif, artinya pengguna diberi peran pada resource hanya jika resource tersebut tidak memiliki tag tertentu, kondisi tag tidak diperiksa.

Peran yang diperlukan

Anda perlu memberikan peran IAM yang memberi pengguna izin yang diperlukan untuk melakukan setiap tugas dalam dokumen ini.

Kedua peran IAM yang telah ditetapkan berikut mencakup semua izin BigQuery yang diperlukan:

  • BigQuery Data Owner (roles/bigquery.dataOwner)
  • BigQuery Admin (roles/bigquery.admin)

Izin Resource Manager untuk menambahkan dan menghapus tag disertakan dalam peran Tag User (roles/resourcemanager.tagUser).

Izin yang diperlukan

Untuk menggunakan tag di BigQuery, Anda memerlukan izin berikut:

Operasi Antarmuka BigQuery (API, CLI, konsol) dan Terraform Cloud Resource Manager API atau gcloud
Melampirkan tag ke tabel atau tampilan
  • Izin bigquery.tables.createTagBinding pada tabel atau tampilan
  • Izin resourcemanager.tagValueBindings.create pada nilai tag
  • Izin bigquery.tables.create untuk melampirkan tag saat membuat tabel atau tampilan
  • Izin bigquery.tables.update untuk melampirkan tag saat memperbarui tabel atau tampilan
  • Izin bigquery.tables.createTagBinding pada tabel atau tampilan
  • Izin resourcemanager.tagValueBindings.create pada nilai tag
Menghapus tag dari tabel atau tampilan
  • Izin bigquery.tables.deleteTagBinding pada tabel atau tampilan
  • Izin resourcemanager.tagValueBindings.delete pada nilai tag
  • Izin bigquery.tables.update untuk menghapus tag saat memperbarui tabel atau tampilan
  • Izin bigquery.tables.deleteTagBinding pada tabel atau tampilan
  • Izin resourcemanager.tagValueBindings.delete pada nilai tag
Melampirkan tag ke set data
  • Izin bigquery.datasets.createTagBinding pada set data
  • Izin resourcemanager.tagValueBindings.create pada nilai tag
  • Izin bigquery.datasets.create untuk melampirkan tag saat membuat set data
  • Izin bigquery.datasets.update untuk melampirkan tag saat memperbarui set data
  • Izin bigquery.datasets.createTagBinding pada set data
  • Izin resourcemanager.tagValueBindings.create pada nilai tag
Menghapus tag dari set data
  • Izin bigquery.datasets.deleteTagBinding pada set data
  • Izin resourcemanager.tagValueBindings.delete pada nilai tag
  • Izin bigquery.datasets.update untuk menghapus tag saat memperbarui set data
  • Izin bigquery.datasets.deleteTagBinding pada set data
  • Izin resourcemanager.tagValueBindings.delete pada nilai tag

Untuk mencantumkan kunci tag dan nilai kunci di konsol Google Cloud , Anda memerlukan izin berikut:

  • Untuk mencantumkan kunci tag yang terkait dengan project atau organisasi induk, Anda memerlukan izin resourcemanager.tagKeys.list di level induk kunci tag dan izin resourcemanager.tagKeys.get untuk setiap kunci tag. Untuk melihat daftar kunci tag di konsol BigQuery, klik nama set data, lalu klik Edit detail, atau klik nama tabel atau tampilan, lalu klik Detail > Edit detail.

  • Untuk mencantumkan nilai tag dari kunci yang terkait dengan organisasi atau project induk, Anda memerlukan izin resourcemanager.tagValues.list di tingkat induk nilai tag dan izin resourcemanager.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 efektif untuk tabel atau tampilan, Anda memerlukan izin IAM bigquery.tables.listEffectiveTags.
  • Untuk mencantumkan tag yang dilampirkan ke set data dengan Cloud Resource Manager API atau gcloud CLI, Anda memerlukan izin IAM bigquery.datasets.listTagBindings.
  • Untuk mencantumkan tag efektif untuk set data, Anda memerlukan izin IAM bigquery.datasets.listEffectiveTags.

Membuat kunci dan nilai tag

Anda dapat membuat tag sebelum melampirkannya ke resource BigQuery, atau Anda dapat membuat tag secara manual saat membuat resource menggunakan konsolGoogle Cloud .

Untuk mengetahui informasi tentang cara membuat kunci tag dan nilai tag, lihat artikel Membuat tag dan Menambahkan nilai tag di dokumentasi Resource Manager.

Memberi tag pada set data

Bagian berikut menjelaskan cara melampirkan tag ke set data baru dan yang sudah ada, mencantumkan tag yang dilampirkan ke set data, dan melepaskan tag dari set data.

Melampirkan tag saat Anda membuat set data baru

Setelah membuat tag, Anda dapat memasangnya ke set data BigQuery baru. Anda hanya dapat memasang satu nilai tag ke set data untuk setiap kunci tag tertentu. Anda dapat memasang maksimum 50 tag ke set data.

Konsol

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di panel kiri, klik Explorer:

    Tombol yang ditandai untuk panel Explorer.

    Jika Anda tidak melihat panel kiri, klik Luaskan panel kiri untuk membuka panel.

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

  4. Klik View actions > Create dataset.

  5. Masukkan informasi untuk set data baru Anda. Untuk mengetahui detail selengkapnya, lihat Membuat set data.

  6. Luaskan bagian Tag.

    1. Untuk menerapkan tag yang ada, lakukan hal berikut:

      1. Klik panah drop-down di samping Pilih cakupan, lalu pilih Cakupan saat iniPilih organisasi saat ini atau Pilih project saat ini.

        Atau, klik Pilih cakupan untuk menelusuri resource atau melihat daftar resource saat ini.

      2. Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.

    2. Untuk memasukkan tag baru secara manual, lakukan hal berikut:

      1. Klik panah drop-down di samping Pilih cakupan, lalu pilih Masukkan ID secara manual > Organisasi, Project, atau Tag.

      2. Jika Anda membuat tag untuk project atau organisasi, masukkan PROJECT_ID atau ORGANIZATION_ID di dialog, lalu klik Simpan.

      3. Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.

    3. Opsional: Untuk menambahkan tag tambahan ke tabel, klik Tambahkan tag dan ikuti langkah-langkah sebelumnya.

  7. Klik Create dataset.

SQL

Gunakan pernyataan CREATE SCHEMA.

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

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

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.

bq

Gunakan perintah bq mk --dataset dengan flag --add_tags:

bq mk --dataset \
    --add_tags=TAG \
    PROJECT_ID:DATASET_ID

Ganti kode berikut:

  • TAG: tag yang Anda lampirkan ke set data baru. Beberapa tag dipisahkan dengan koma. Contoh, 556741164180/env:prod,myProject/department:sales. Setiap tag harus memiliki nama kunci dengan namespace dan nama pendek nilai.
  • PROJECT_ID: ID project tempat Anda membuat set data.
  • DATASET_ID: ID set data baru.

Terraform

Gunakan resource google_bigquery_dataset.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

Contoh berikut membuat set data bernama my_dataset, lalu melampirkan tag ke set data tersebut dengan mengisi kolom resource_tags:


# 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, selesaikan langkah-langkah di bagian berikut. Google Cloud

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 Google Cloud project Anda untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.

API

Panggil metode datasets.insert dan tambahkan tag Anda ke kolom resource_tags.

Memasang tag ke set data yang ada

Setelah membuat tag, Anda dapat melampirkannya ke set data yang ada. Anda hanya dapat memasang satu nilai tag ke set data untuk setiap kunci tag tertentu.

Konsol

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di panel kiri, klik Explorer:

    Tombol yang ditandai untuk panel Explorer.

  3. Di panel Explorer, luaskan project Anda, klik Set data, lalu pilih set data.

  4. Di bagian Dataset info, klik Edit details.

  5. Luaskan bagian Tag.

    1. Untuk menerapkan tag yang ada, lakukan hal berikut:

      1. Klik panah drop-down di samping Pilih cakupan, lalu pilih Cakupan saat iniPilih organisasi saat ini atau Pilih project saat ini.

        Atau, klik Pilih cakupan untuk menelusuri resource atau melihat daftar resource saat ini.

      2. Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.

    2. Untuk memasukkan tag baru secara manual, lakukan hal berikut:

      1. Klik panah drop-down di samping Pilih cakupan, lalu pilih Masukkan ID secara manual > Organisasi, Project, atau Tag.

      2. Jika Anda membuat tag untuk project atau organisasi, masukkan PROJECT_ID atau ORGANIZATION_ID di dialog, lalu klik Simpan.

      3. Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.

    3. Opsional: Untuk menambahkan tag tambahan ke tabel, klik Tambahkan tag dan ikuti langkah-langkah sebelumnya.

  6. Klik Simpan.

SQL

Gunakan pernyataan ALTER SCHEMA SET OPTIONS.

Contoh berikut mengganti semua tag untuk set data yang ada.

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    ALTER SCHEMA PROJECT_ID.DATASET_ID
    SET OPTIONS (
      tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Ganti kode berikut:

    • PROJECT_ID: project ID Anda.
    • DATASET_ID: ID set data yang berisi tabel.
    • TABLE_ID: nama tabel yang Anda beri tag.
    • TAG_KEY_1: nama kunci dengan namespace yang ingin Anda tetapkan sebagai tag pertama pada tabel, misalnya, 'my-project/env' atau '556741164180/department'.
    • TAG_VALUE_1: nama pendek untuk nilai tag, misalnya, 'prod' atau 'sales'.
    • TAG_KEY_2: nama kunci dengan namespace untuk tag kedua.
    • TAG_VALUE_2: nama pendek untuk nilai tag kedua.

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.

Contoh berikut menggunakan operator += untuk melampirkan tag ke set data tanpa mengganti tag yang ada. Jika tag yang ada memiliki kunci yang sama, tag tersebut akan ditimpa.

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    ALTER SCHEMA PROJECT_ID.DATASET_ID
    SET OPTIONS (
      tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Ganti kode berikut:

    • PROJECT_ID: project ID Anda.
    • DATASET_ID: ID set data yang berisi tabel.
    • TABLE_ID: nama tabel yang Anda beri tag.
    • TAG_KEY_1: nama kunci dengan namespace yang ingin Anda tetapkan sebagai tag pertama pada tabel, misalnya, 'my-project/env' atau '556741164180/department'.
    • TAG_VALUE_1: nama pendek untuk nilai tag, misalnya, 'prod' atau 'sales'.
    • TAG_KEY_2: nama kunci dengan namespace untuk tag kedua.
    • TAG_VALUE_2: nama pendek untuk nilai tag kedua.

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.

bq

Gunakan perintah bq update dengan flag --add_tags:

bq update \
    --add_tags=TAG \
    PROJECT_ID:DATASET_ID

Ganti kode berikut:

  • TAG: tag yang Anda lampirkan ke set data. Beberapa tag dipisahkan dengan koma. Contoh, 556741164180/env:prod,myProject/department:sales. Setiap tag harus memiliki nama kunci dengan namespace dan nama pendek nilai.
  • PROJECT_ID: ID project tempat set data yang ada berada.
  • DATASET_ID: ID set data yang ada.

gcloud

Untuk memasang tag ke set data menggunakan command line, buat resource binding tag menggunakan perintah gcloud resource-manager tags bindings create:

gcloud resource-manager tags bindings create \
    --tag-value=TAG_VALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Ganti kode berikut:

  • TAG_VALUE_NAME: ID permanen atau nama dengan namespace dari nilai tag yang akan dipasang, 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 ke kolom resource_tags dan teruskan kembali resource set data yang diperbarui menggunakan metode datasets.update.

Mencantumkan tag yang dipasang ke set data

Langkah-langkah berikut menyediakan daftar binding tag yang dipasang langsung ke set data. Metode ini tidak menampilkan tag yang diwarisi dari resource induk.

Konsol

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di panel kiri, klik Explorer:

    Tombol yang ditandai untuk panel Explorer.

  3. Di panel Explorer, luaskan project Anda, klik Set data, lalu pilih set data.

    Tag muncul di bagian Dataset info.

bq

Untuk mencantumkan tag yang dipasang ke set data, gunakan perintah bq show.

bq show PROJECT_ID:DATASET_ID

Ganti kode berikut:

  • PROJECT_ID: ID project yang berisi set data Anda.
  • DATASET_ID: ID set data yang ingin Anda cantumkan tag-nya.

gcloud

Untuk mendapatkan daftar binding tag yang dipasang ke resource, gunakan perintah gcloud resource-manager tags bindings list:

gcloud resource-manager tags bindings list \
    --parent=RESOURCE_ID \
    --location=LOCATION

Ganti kode berikut:

  • RESOURCE_ID: ID lengkap set data, termasuk nama domain API (//bigquery.googleapis.com/) untuk mengidentifikasi jenis resource. Contohnya, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset.

  • LOCATION: lokasi set data Anda.

Outputnya mirip dengan hal berikut ini:

name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123
parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
tagValue: tagValues/4567890123

Anda dapat mencantumkan tag yang diwarisi menurut set data BigQuery menggunakan gcloud resource-manager tags bindings list. Anda juga dapat menggunakan opsi --filter pada atribut namespacedTagValue untuk memfilter tag menurut ID project, nilai tag, atau kunci tag.

gcloud resource-manager tags bindings list \
    --parent=//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID \
    --effective \
    --filter=namespacedTagValue:TAG_FILTER

Ganti kode berikut :

  • PROJECT_ID: ID project yang berisi set data Anda.

  • DATASET_ID: ID set data.

  • TAG_FILTER: tentukan nilai untuk memfilter tag yang diwarisi berdasarkan salah satu hal berikut:

    • Memfilter tag menurut project ID. Misalnya, myproject.

    • Filter nilai tag dengan menentukan ID permanen atau nama dengan namespace dari nilai tag. Misalnya tagValues/4567890123 atau 1234567/my_tag_key/my_tag_value.

    • Memfilter kunci tag dengan menentukan nama tampilan untuk kunci tag. Misalnya, tagkey.

Terraform

Gunakan perintah terraform state show untuk mencantumkan atribut set data, termasuk kolom resource_tags. Jalankan perintah ini di direktori tempat file konfigurasi Terraform set data telah dijalankan.

terraform state show google_bigquery_dataset.default

API

Panggil metode datasets.get untuk mendapatkan resource set data. Resource set data mencakup tag yang dilampirkan ke set data di kolom resource_tags.

Tampilan

Gunakan tampilan INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

Misalnya, kueri berikut menampilkan semua tag yang dilampirkan ke semua set data dalam suatu region. Kueri ini menampilkan tabel dengan kolom yang mencakup schema_name (nama set data), option_name (selalu 'tags'), object_type (selalu ARRAY<STRUCT<STRING, STRING>>), dan option_value, yang berisi array objek STRUCT yang merepresentasikan tag yang terkait dengan setiap set data. Untuk set data tanpa tag yang ditetapkan, kolom option_value akan menampilkan array kosong.

SELECT * from region-REGION.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
WHERE option_name='tags'

Ganti kode berikut:

  • REGION: region tempat set data Anda berada.
.

Melepaskan tag dari set data

Anda dapat melepaskan tag dari resource dengan menghapus resource binding tag. Jika Anda menghapus tag, Anda harus melepaskannya dari set data sebelum menghapusnya. Untuk mengetahui informasi selengkapnya, lihat Menghapus tag.

Konsol

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di panel kiri, klik Explorer:

    Tombol yang ditandai untuk panel Explorer.

  3. Di panel Explorer, luaskan project Anda, klik Set data, lalu pilih set data.

  4. Di bagian Dataset info, klik Edit details.

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

  6. 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=[].

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    SET OPTIONS (
      tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Ganti kode berikut:

    • PROJECT_ID: project ID Anda.
    • DATASET_ID: ID set data yang berisi tabel.
    • TABLE_ID: nama tabel tempat Anda melepaskan tag.
    • TAG_KEY_1: nama kunci dengan namespace dari tag pertama yang ingin Anda lepas, misalnya, 'my-project/env' atau '556741164180/department'.
    • TAG_VALUE_1: nama pendek dari nilai untuk tag yang ingin Anda lepas, misalnya, 'prod' atau 'sales'.
    • TAG_KEY_2: nama kunci dengan namespace untuk tag kedua yang Anda lepaskan.
    • TAG_VALUE_2: nama pendek untuk nilai tag kedua yang Anda lepaskan.

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.

bq

Gunakan perintah bq update dengan flag --remove_tags:

bq update \
    --remove_tags=REMOVED_TAG \
    PROJECT_ID:DATASET_ID

Ganti kode berikut:

  • REMOVED_TAG: tag yang Anda hapus dari set data. Beberapa tag dipisahkan dengan koma. Hanya menerima pasangan nilai tanpa kunci. Contoh, 556741164180/env,myProject/department. Setiap tag harus memiliki nama kunci dengan namespace.
  • PROJECT_ID: ID project yang berisi set data Anda.
  • DATASET_ID: ID set data yang akan dilepaskan tagnya.

Atau, jika Anda ingin menghapus semua tag dari set data, gunakan perintah bq update dengan flag --clear_all_tags:

bq update \
    --clear_all_tags
    PROJECT_ID:DATASET_ID

gcloud

Untuk melepaskan tag dari set data menggunakan command line, hapus binding tag menggunakan perintah gcloud resource-manager tags bindings delete:

gcloud resource-manager tags bindings delete \
    --tag-value=TAG_VALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Ganti kode berikut:

  • TAG_VALUE_NAME: ID permanen atau nama dengan namespace untuk nilai tag yang akan dilepas, 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 Anda dari kolom resource_tags set data, lalu terapkan konfigurasi yang diperbarui menggunakan resource google_bigquery_dataset.

API

Panggil metode datasets.get untuk mendapatkan resource set data, termasuk kolom resource_tags. Hapus tag Anda dari kolom resource_tags dan teruskan kembali resource kumpulan data yang diperbarui menggunakan metode datasets.update.

Tabel tag

Bagian berikut menjelaskan cara melampirkan tag ke tabel baru dan yang sudah ada, mencantumkan tag yang dilampirkan ke tabel, dan melepaskan tag dari tabel.

Melampirkan tag saat Anda membuat tabel baru

Setelah membuat tag, Anda dapat memasangnya ke tabel baru. Anda hanya dapat melampirkan satu nilai tag ke tabel untuk setiap kunci tag tertentu. Anda dapat melampirkan maksimum 50 tag ke tabel.

Konsol

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di panel kiri, klik Explorer:

    Tombol yang ditandai untuk panel Explorer.

  3. Di panel Explorer, luaskan project Anda, klik Set data, lalu pilih set data.

  4. Di bagian Dataset info, klik Create table.

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

  6. Luaskan bagian Tag.

    1. Untuk menerapkan tag yang ada, lakukan hal berikut:

      1. Klik panah drop-down di samping Pilih cakupan, lalu pilih Cakupan saat iniPilih organisasi saat ini atau Pilih project saat ini.

        Atau, klik Pilih cakupan untuk menelusuri resource atau melihat daftar resource saat ini.

      2. Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.

    2. Untuk memasukkan tag baru secara manual, lakukan hal berikut:

      1. Klik panah drop-down di samping Pilih cakupan, lalu pilih Masukkan ID secara manual > Organisasi, Project, atau Tag.

      2. Jika Anda membuat tag untuk project atau organisasi, masukkan PROJECT_ID atau ORGANIZATION_ID di dialog, lalu klik Simpan.

      3. Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.

    3. Opsional: Untuk menambahkan tag tambahan ke tabel, klik Tambahkan tag dan ikuti langkah-langkah sebelumnya.

  7. Klik Create table.

SQL

Gunakan pernyataan CREATE TABLE.

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    CREATE TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    OPTIONS (
      tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Ganti kode berikut:

    • PROJECT_ID: project ID Anda.
    • DATASET_ID: ID set data tempat Anda membuat tabel.
    • TABLE_ID: nama tabel baru.
    • TAG_KEY_1: nama kunci dengan namespace yang ingin Anda tetapkan sebagai tag pertama pada tabel, misalnya, 'my-project/env' atau '556741164180/department'.
    • TAG_VALUE_1: nama pendek untuk nilai tag, misalnya, 'prod' atau 'sales'.
    • TAG_KEY_2: nama kunci dengan namespace untuk tag kedua.
    • TAG_VALUE_2: nama pendek untuk nilai tag kedua.

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.

bq

Gunakan perintah bq mk --table dengan flag --add_tags:

bq mk --table \
    --schema=SCHEMA \
    --add_tags=TAG \
    PROJECT_ID:DATASET_ID.TABLE_ID

Ganti kode berikut:

  • SCHEMA: definisi skema inline.
  • TAG: tag yang Anda lampirkan ke tabel baru. Beberapa tag dipisahkan dengan koma. Contoh, 556741164180/env:prod,myProject/department:sales. Setiap tag harus memiliki nama kunci dengan namespace dan nama pendek nilai.
  • PROJECT_ID: ID project tempat Anda membuat tabel.
  • DATASET_ID: ID set data tempat Anda membuat tabel.
  • TABLE_ID: ID tabel baru.

Terraform

Gunakan resource google_bigquery_table.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

Contoh berikut membuat tabel bernama mytable, lalu melampirkan tag ke tabel tersebut dengan mengisi kolom resource_tags:


# 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"

  # 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, selesaikan langkah-langkah di bagian berikut. Google Cloud

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 Google Cloud project Anda untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.

API

Panggil metode tables.insert dengan resource tabel yang ditentukan. Sertakan tag di kolom resource_tags.

Melampirkan tag ke tabel yang ada

Setelah membuat tag, Anda dapat melampirkannya ke tabel yang ada. Anda hanya dapat melampirkan satu nilai tag ke tabel untuk setiap kunci tag tertentu.

Konsol

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di panel kiri, klik Explorer:

    Tombol yang ditandai untuk panel Explorer.

  3. Di panel Explorer, luaskan project Anda, lalu klik Set Data.

  4. Klik Ringkasan > Tabel, lalu pilih tabel.

  5. Klik tab Detail, lalu klik Edit detail.

  6. Luaskan bagian Tag.

    1. Untuk menerapkan tag yang ada, lakukan hal berikut:

      1. Klik panah drop-down di samping Pilih cakupan, lalu pilih Cakupan saat iniPilih organisasi saat ini atau Pilih project saat ini.

        Atau, klik Pilih cakupan untuk menelusuri resource atau melihat daftar resource saat ini.

      2. Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.

    2. Untuk memasukkan tag baru secara manual, lakukan hal berikut:

      1. Klik panah drop-down di samping Pilih cakupan, lalu pilih Masukkan ID secara manual > Organisasi, Project, atau Tag.

      2. Jika Anda membuat tag untuk project atau organisasi, masukkan PROJECT_ID atau ORGANIZATION_ID di dialog, lalu klik Simpan.

      3. Untuk Kunci 1 dan Nilai 1, pilih nilai yang sesuai dari daftar.

    3. Opsional: Untuk menambahkan tag tambahan ke tabel, klik Tambahkan tag dan ikuti langkah-langkah sebelumnya.

  7. Klik Simpan.

SQL

Gunakan pernyataan ALTER TABLE SET OPTIONS.

Contoh berikut mengganti semua tag untuk tabel yang ada.

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    SET OPTIONS (
      tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Ganti kode berikut:

    • PROJECT_ID: project ID Anda.
    • DATASET_ID: ID set data yang berisi tabel.
    • TABLE_ID: nama tabel yang Anda beri tag.
    • TAG_KEY_1: nama kunci dengan namespace yang ingin Anda tetapkan sebagai tag pertama pada tabel, misalnya, 'my-project/env' atau '556741164180/department'.
    • TAG_VALUE_1: nama pendek untuk nilai tag, misalnya, 'prod' atau 'sales'.
    • TAG_KEY_2: nama kunci dengan namespace untuk tag kedua.
    • TAG_VALUE_2: nama pendek untuk nilai tag kedua.

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.

Contoh berikut menggunakan operator += untuk melampirkan tag ke tabel tanpa mengganti tag yang ada. Jika tag yang ada memiliki kunci yang sama, tag tersebut akan ditimpa.

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    SET OPTIONS (
      tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Ganti kode berikut:

    • PROJECT_ID: project ID Anda.
    • DATASET_ID: ID set data yang berisi tabel.
    • TABLE_ID: nama tabel yang Anda beri tag.
    • TAG_KEY_1: nama kunci dengan namespace yang ingin Anda tetapkan sebagai tag pertama pada tabel, misalnya, 'my-project/env' atau '556741164180/department'.
    • TAG_VALUE_1: nama pendek untuk nilai tag, misalnya, 'prod' atau 'sales'.
    • TAG_KEY_2: nama kunci dengan namespace untuk tag kedua.
    • TAG_VALUE_2: nama pendek untuk nilai tag kedua.

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.

bq

Gunakan perintah bq update dengan flag --add_tags:

bq update \
    --add_tags=TAG \
    PROJECT_ID:DATASET_ID.TABLE_ID

Ganti kode berikut:

  • TAG: tag yang Anda lampirkan ke tabel. Beberapa tag dipisahkan dengan koma. Contoh, 556741164180/env:prod,myProject/department:sales. Setiap tag harus memiliki nama kunci dengan namespace dan nama pendek nilai.
  • PROJECT_ID: ID project yang berisi tabel Anda.
  • DATASET_ID: ID set data yang berisi tabel Anda.
  • TABLE_ID: ID tabel yang Anda perbarui.

gcloud

Untuk melampirkan tag ke tabel menggunakan command line, buat resource binding tag menggunakan perintah gcloud resource-manager tags bindings create:

gcloud resource-manager tags bindings create \
    --tag-value=TAG_VALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Ganti kode berikut:

  • TAG_VALUE_NAME: ID permanen atau nama dengan namespace dari nilai tag yang akan dipasang, 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 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 kiri, klik Explorer:

    Tombol yang ditandai untuk panel Explorer.

  3. Di panel Explorer, luaskan project Anda, lalu klik Set Data.

  4. Klik Ringkasan > Tabel, lalu pilih tabel.

    Tag dapat dilihat di tab Detail.

bq

Gunakan perintah bq show dan cari kolom tags. Jika tidak ada tag pada tabel, kolom tags tidak ditampilkan.

bq show \
    PROJECT_ID:DATASET_ID.TABLE_ID

Ganti kode berikut:

  • PROJECT_ID: ID project yang berisi tabel Anda.
  • DATASET_ID: ID set data yang berisi tabel Anda.
  • TABLE_ID: ID tabel Anda.

gcloud

Untuk mendapatkan daftar binding tag yang dipasang ke resource, gunakan perintah gcloud resource-manager tags bindings list:

gcloud resource-manager tags bindings list \
    --parent=RESOURCE_ID \
    --location=LOCATION

Ganti kode berikut:

  • RESOURCE_ID: ID lengkap tabel, termasuk nama domain API (//bigquery.googleapis.com/) untuk mengidentifikasi jenis resource. Contohnya, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tables/my_table.

  • LOCATION: lokasi set data Anda.

Outputnya mirip dengan hal berikut ini:

name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123
parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
tagValue: tagValues/4567890123

Anda dapat mencantumkan tag yang diwarisi menurut tabel BigQuery menggunakan gcloud resource-manager tags bindings list. Anda juga dapat menggunakan opsi --filter pada atribut namespacedTagValue untuk memfilter tag menurut ID project, nilai tag, atau kunci tag.

gcloud resource-manager tags bindings list \
    --parent=//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID \
    --effective \
    --filter=namespacedTagValue:TAG_FILTER

Ganti kode berikut :

  • PROJECT_ID: ID project yang berisi set data Anda.

  • DATASET_ID: ID set data.

  • TAG_FILTER: tentukan nilai untuk memfilter tag yang diwarisi berdasarkan salah satu hal berikut:

    • Memfilter tag menurut project ID. Misalnya, myproject.

    • Filter nilai tag dengan menentukan ID permanen atau nama dengan namespace dari nilai tag. Misalnya tagValues/4567890123 atau 1234567/my_tag_key/my_tag_value.

    • Memfilter kunci tag dengan menentukan nama tampilan untuk kunci tag. Misalnya, tagkey.

Terraform

Gunakan perintah terraform state show untuk mencantumkan atribut tabel, termasuk kolom resource_tags. Jalankan perintah ini di direktori tempat file konfigurasi Terraform tabel telah dijalankan.

terraform state show google_bigquery_table.default

API

Panggil metode tables.get dengan resource tabel yang ditentukan, dan cari kolom resource_tags.

Tampilan

Gunakan tampilan INFORMATION_SCHEMA.TABLE_OPTIONS.

Misalnya, kueri berikut menampilkan semua tag yang dilampirkan ke semua tabel dalam set data. Kueri ini menampilkan tabel dengan kolom yang mencakup schema_name (nama set data), option_name (selalu 'tags'), object_type (selalu ARRAY<STRUCT<STRING, STRING>>), dan option_value, yang berisi array objek STRUCT yang merepresentasikan tag yang terkait dengan setiap set data. Untuk tabel tanpa tag yang ditetapkan, kolom option_value akan menampilkan array kosong.

SELECT * from DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS
WHERE option_name='tags'

Ganti DATASET_ID dengan ID set data yang berisi tabel Anda.

.

Melepaskan tag dari tabel

Anda dapat menghapus pengaitan tag dari tabel dengan menghapus binding tag. Jika menghapus tag, Anda harus melepaskannya dari tabel sebelum menghapusnya. Untuk mengetahui informasi selengkapnya, lihat Menghapus tag.

Konsol

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di panel kiri, klik Explorer:

    Tombol yang ditandai untuk panel Explorer.

  3. Di panel Explorer, luaskan project Anda, lalu klik Set Data.

  4. Klik Ringkasan > Tabel, lalu pilih tabel.

  5. Klik tab Detail, lalu klik Edit detail.

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

  7. Klik Simpan.

SQL

Gunakan pernyataan ALTER TABLE SET OPTIONS.

Contoh berikut melepaskan tag dari tabel menggunakan operator -=. Untuk melepaskan semua tag dari tabel, Anda dapat menentukan tags=NULL atau tags=[].

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    SET OPTIONS (
      tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

    Ganti kode berikut:

    • PROJECT_ID: project ID Anda.
    • DATASET_ID: ID set data yang berisi tabel.
    • TABLE_ID: nama tabel tempat Anda melepaskan tag.
    • TAG_KEY_1: nama kunci dengan namespace dari tag pertama yang ingin Anda lepas, misalnya, 'my-project/env' atau '556741164180/department'.
    • TAG_VALUE_1: nama pendek dari nilai untuk tag yang ingin Anda lepas, misalnya, 'prod' atau 'sales'.
    • TAG_KEY_2: nama kunci dengan namespace untuk tag kedua yang Anda lepaskan.
    • TAG_VALUE_2: nama pendek untuk nilai tag kedua yang Anda lepaskan.

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.

bq

Untuk menghapus beberapa tag dari tabel, gunakan perintah bq update dengan flag --remove_tags:

bq update \
    --remove_tags=TAG_KEYS \
    PROJECT_ID:DATASET_ID.TABLE_ID

Ganti kode berikut:

  • TAG_KEYS: kunci tag yang Anda lepaskan dari tabel, dipisahkan dengan koma. Contoh, 556741164180/env,myProject/department. Setiap kunci tag harus memiliki nama kunci dengan namespace.
  • PROJECT_ID: ID project yang berisi tabel Anda.
  • DATASET_ID: ID set data yang berisi tabel Anda.
  • TABLE_ID: ID tabel yang Anda perbarui.

Untuk menghapus semua tag dari tabel, gunakan perintah bq update dengan flag --clear_all_tags:

bq update \
    --clear_all_tags \
    PROJECT_ID:DATASET_ID.TABLE_ID

gcloud

Untuk menghapus asosiasi tag dari tabel menggunakan command line, hapus binding tag menggunakan perintah gcloud resource-manager tags bindings delete:

gcloud resource-manager tags bindings delete \
    --tag-value=TAG_VALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Ganti kode berikut:

  • TAG_VALUE_NAME: ID permanen atau nama dengan namespace untuk nilai tag yang akan dihapus, 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 resource seperti tabel lainnya

Anda dapat menandai tampilan BigQuery, tampilan terwujud, clone, dan snapshot dengan cara yang sama.

Kolom tag

Anda dapat memberi tag pada kolom tabel dengan tag tata kelola data untuk kontrol akses tingkat kolom dan penyamaran data.

Menghapus tag

Anda tidak dapat menghapus tag jika tag tersebut direferensikan oleh tabel, tampilan, atau set data. Anda harus melepaskan semua resource binding tag yang ada sebelum menghapus kunci atau nilai tag itu sendiri. Untuk menghapus kunci tag dan nilai tag, baca artikel Menghapus tag.

Contoh

Misalkan Anda adalah administrator dari suatu organisasi. Analis data Anda adalah semua anggota grup analis@contoh.com, yang memiliki peran IAM BigQuery Data Viewer pada project userData. Seorang analis data dipekerjakan, dan sesuai dengan kebijakan perusahaan, analis tersebut hanya akan memiliki izin untuk melihat set data anonymousData dalam project userData. Anda dapat mengontrol aksesnya menggunakan tag.

  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 Jenis kondisi, pilih Resource, lalu pilih Tag.

  9. Di menu Operator, pilih has value.

  10. Di kolom Value path, masukkan jalur nilai tag dalam formulir 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 izin, klik Simpan.

  13. Untuk memasang nilai tag intern ke set data anonymousData, gunakan command line untuk menjalankan perintah gcloud resource-manager tags bindings create. Contoh:

    gcloud resource-manager tags bindings create \
        --tag-value=tagValues/4567890123 \
        --parent=//bigquery.googleapis.com/projects/userData/datasets/anonymousData \
        --location=US
    

Mengontrol akses ke kolom dengan tag tata kelola data

Anda dapat menerapkan keamanan tingkat kolom dan data masking di BigQuery menggunakan tag tata kelola data. Tag tata kelola data adalah jenis tag Resource Manager yang dapat Anda lampirkan ke kolom sensitif dan gunakan dalam kebijakan data BigQuery untuk memberikan akses bersyarat kepada pengguna Anda.

Konfigurasi keamanan tingkat kolom dengan membuat tag tata kelola data dan melampirkannya ke kolom BigQuery. Kemudian, buat kebijakan data BigQuery Data Policy yang mereferensikan tag ini. Kebijakan ini menerapkan aturan penyamaran data atau memberikan akses data mentah kepada pengguna tertentu, sehingga memastikan hanya pokok yang berwenang yang dapat melihat data sensitif.

Untuk mengetahui informasi selengkapnya, lihat Pengantar kontrol akses tingkat kolom dan Pengantar penyamaran data.

Sebelum Anda mulai menggunakan tag tata kelola

  1. Instal Google Cloud CLI.

  2. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  3. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  4. Untuk membuat dan mengelola tag tata kelola data, Anda harus menggunakan BigQuery Enterprise edition.

Peran yang diperlukan untuk tag tata kelola data

Untuk mendapatkan izin yang Anda perlukan untuk mengontrol akses kolom dengan tag tata kelola data, minta administrator untuk memberi Anda peran IAM berikut:

  • Buat tag tata kelola data:
  • Melampirkan atau menghapus tag ke kolom:
  • Membuat dan mengelola kebijakan data: Admin BigQuery (roles/bigquerydatapolicy.admin) di project

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Membuat tag tata kelola data

Buat kunci tag tata kelola data dan nilainya.

Membuat kunci tag

Untuk membuat kunci untuk tag tata kelola data, tetapkan kolom purpose ke purpose saat Anda membuat kunci tag.DATA_GOVERNANCE Menetapkan tujuan ini mengategorikan tag untuk keamanan tingkat kolom atau data masking dan membedakannya dari tag resource umum di BigQuery.

gcloud

  1. Jalankan perintah gcloud resource-manager tags keys create:

    gcloud resource-manager tags keys create TAG_KEY \
        --parent=projects/PROJECT_ID \
        --purpose=DATA_GOVERNANCE
    

    Ganti kode berikut:

    • TAG_KEY: nama pendek untuk kunci tag.
    • PROJECT_ID: ID project Google Cloud Anda. Untuk memberikan organisasi, bukan project, gunakan organizations/ORGANIZATION_ID, bukan projects/PROJECT_ID.

API

  1. Kirim permintaan POST ke endpoint tagKeys:

    curl --request POST \
      "https://cloudresourcemanager.googleapis.com/v3/tagKeys" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header 'Accept: application/json' \
      --header 'Content-Type: application/json' \
      --data '{"shortName":"TAG_KEY","parent":"projects/PROJECT_ID","purpose":"DATA_GOVERNANCE"}' \
      --compressed
    

    Ganti kode berikut:

    • TAG_KEY: nama pendek untuk kunci tag.
    • PROJECT_ID: ID project Google Cloud Anda. Untuk memberikan organisasi, bukan project, gunakan organizations/ORGANIZATION_ID, bukan projects/PROJECT_ID.

Membuat nilai tag

Untuk menambahkan satu atau beberapa nilai ke kunci tag, ikuti langkah-langkah berikut.

gcloud

  1. Dapatkan nama dengan namespace untuk kunci tag dengan menjalankan perintah gcloud resource-manager tags keys list:

    gcloud resource-manager tags keys list --parent=projects/PROJECT_ID
    
  2. Buat nilai baru dengan menjalankan perintah gcloud resource-manager tags values create:

    gcloud resource-manager tags values create TAG_VALUE \
        --parent=PROJECT_ID/TAG_KEY
    

    Ganti kode berikut:

    • TAG_VALUE: nama pendek yang ditentukan pengguna untuk nilai tag.
    • PROJECT_ID: ID project Google Cloud Anda. Untuk memberikan organisasi, bukan project, gunakan ORGANIZATION_ID Anda.

API

  1. Dapatkan nama dengan namespace untuk kunci tag:

    curl --request GET \
        "https://cloudresourcemanager.googleapis.com/v3/tagKeys/namespaced?name=PROJECT_ID/TAG_KEY" \
        --header "Authorization: Bearer $(gcloud auth print-access-token)" \
        --header 'Accept: application/json'
    

    Respons berisi kolom name, misalnya tagKeys/4567890123.

  2. Kirim permintaan POST ke endpoint tagValues dengan nama kunci tag:

    curl --request POST \
      "https://cloudresourcemanager.googleapis.com/v3/tagValues" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header 'Accept: application/json' \
      --header 'Content-Type: application/json' \
      --data '{"shortName":"TAG_VALUE","parent":"tagKeys/TAG_KEY_ID"}' \
      --compressed
    

    Ganti kode berikut:

    • TAG_VALUE: nama pendek yang ditentukan pengguna untuk nilai tag.
    • PROJECT_ID: ID project Google Cloud Anda. Untuk memberikan organisasi, bukan project, gunakan ORGANIZATION_ID Anda.
    • TAG_KEY_ID: nama dengan namespace untuk kunci tag dari langkah 1—misalnya, jika nama kunci tag adalah tagKeys/4567890123, maka ID kunci tag adalah 4567890123.

Membuat nilai tag hierarkis

Secara opsional, Anda dapat membuat nilai tag turunan yang memiliki induk nilai tag dan membuat hierarki nilai tag tata kelola data. Hierarki dapat memiliki kedalaman 5 tingkat, seperti yang ditunjukkan dalam diagram berikut:

Diagram alur kerja untuk kontrol akses tingkat kolom menggunakan tag Tata Kelola Data.

gcloud

Untuk membuat nilai tag turunan, jalankan perintah gcloud resource-manager tags values create dan tentukan nilai tag induk dalam flag --parent:

gcloud resource-manager tags values create CHILD_TAG_VALUE \
--parent=PROJECT_ID/TAG_KEY/PARENT_TAG_VALUE

Ganti kode berikut:

  • CHILD_TAG_VALUE: nama pendek untuk nilai tag turunan yang Anda buat.
  • PROJECT_ID: ID Google Cloud project Anda. Untuk memberikan organisasi, bukan project, gunakan ORGANIZATION_ID sebagai gantinya.
  • TAG_KEY: nama pendek kunci tag yang merupakan induk dari nilai tag.
  • PARENT_TAG_VALUE: nama pendek nilai tag induk.

API

Untuk membuat nilai tag turunan, gunakan nama resource nilai tag induk (misalnya, tagValues/123456789012) di kolom parent:

curl --request POST \
  "https://cloudresourcemanager.googleapis.com/v3/tagValues" \
  --header "Authorization: Bearer $(gcloud auth print-access-token)" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"shortName":"CHILD_TAG_VALUE","parent":"tagValues/PARENT_TAG_VALUE_ID"}' \
  --compressed

Ganti kode berikut:

  • CHILD_TAG_VALUE: nama pendek untuk nilai tag turunan yang Anda buat.
  • PARENT_TAG_VALUE_ID: ID numerik nilai tag induk.

Melampirkan tag tata kelola data ke kolom BigQuery

Lampirkan tag tata kelola data yang Anda buat ke kolom BigQuery yang ingin Anda lindungi.

SQL

Membuat tabel baru dengan kolom yang diberi tag

Untuk melampirkan tag tata kelola data saat membuat tabel baru, gunakan pernyataan CREATE TABLE. Tentukan tag dengan menyetel opsi data_governance_tags di kolom.

CREATE TABLE PROJECT_ID.DATASET_ID.TABLE_ID (
  COLUMN_NAME INT64 OPTIONS (data_governance_tags=[("PROJECT_ID/TAG_KEY", "TAG_VALUE")])
);

Ganti kode berikut:

  • PROJECT_ID: ID Google Cloud project Anda. Untuk memberikan organisasi, bukan project, sebagai induk tag, gunakan ORGANIZATION_ID Anda sebagai gantinya untuk format kunci tag (ORGANIZATION_ID/TAG_KEY).
  • DATASET_ID: ID set data tempat tabel berada.
  • TABLE_ID: ID tabel yang Anda buat.
  • COLUMN_NAME: nama kolom yang ingin Anda beri tag.
  • TAG_KEY: kunci tag yang ingin Anda terapkan.
  • TAG_VALUE: nilai tag yang ingin Anda terapkan.

Menambahkan tag ke tabel yang ada

Untuk melampirkan tag tata kelola data ke kolom dalam tabel yang ada, gunakan pernyataan ALTER TABLE untuk menetapkan opsi data_governance_tags pada kolom.

ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
ALTER COLUMN COLUMN_NAME SET OPTIONS (data_governance_tags=[("PROJECT_ID/TAG_KEY", "TAG_VALUE")]);

bq CLI

Membuat tabel baru dengan kolom yang diberi tag

  1. Untuk membuat file skema JSON lokal yang menentukan tag, jalankan perintah bq mk berikut:

    bq mk \
        --table \
        --project_id=PROJECT_ID \
        --description="description of my table" \
        --schema=SCHEMA_FILE.json \
        DATASET_ID.TABLE_ID
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda. Untuk memberikan organisasi, bukan project, sebagai induk tag Anda, gunakan ORGANIZATION_ID Anda sebagai gantinya untuk format kunci tag (ORGANIZATION_ID/TAG_KEY).
    • DATASET_ID: ID set data tempat tabel berada.
    • TABLE_ID: ID tabel yang Anda buat.

Menambahkan tag ke tabel yang ada

  1. Untuk menambahkan tag ke tabel yang ada, ekspor terlebih dahulu skemanya ke file lokal:

    bq show \
        --project_id=PROJECT_ID \
        --schema \
        --format=prettyjson \
        DATASET_ID.TABLE_ID > SCHEMA_FILE.json
    
  2. Edit file skema untuk menambahkan objek dataGovernanceTagsInfo ke kolom. Contoh:

    [
      {
        "description": "my sensitive column",
        "mode": "NULLABLE",
        "name": "Column_X",
        "type": "INT64",
        "dataGovernanceTagsInfo": {
          "dataGovernanceTags": {
            "PROJECT_ID/TAG_KEY": "TAG_VALUE"
          }
        }
      },
      {
        "mode": "REQUIRED",
        "name": "column2",
        "type": "FLOAT"
      }
    ]
    
  3. Perbarui tabel untuk melampirkan tag ke kolom sensitif dengan perintah bq update:

    bq update \
        --project_id=PROJECT_ID \
        --schema=SCHEMA_FILE.json \
        DATASET_ID.TABLE_ID
    

    Anda juga dapat menggunakan perintah bq update untuk menghapus tag yang ada dan melampirkan tag baru.

API

Membuat tabel baru dengan kolom yang diberi tag

Gunakan metode tables.insert. Sertakan kolom dataGovernanceTagsInfo dalam isi permintaan.

```json
{
  "schema": {
    "fields": [
      {
        "name": "Column_X",
        "type": "INT64",
        "description": "sensitive column",
        "dataGovernanceTagsInfo": {
          "dataGovernanceTags": {
            "PROJECT_ID/TAG_KEY": "TAG_VALUE"
          }
        }
      }
    ]
  }
}
```

Menambahkan tag ke tabel yang ada

  1. Ambil resource tabel saat ini dengan metode tables.get.

  2. Ubah resource tabel untuk menyertakan kolom dataGovernanceTagsInfo untuk kolom target.

  3. Panggil metode tables.update atau tables.patch dengan resource tabel yang diperbarui.

Membuat dan mengelola kebijakan data

Buat dan kelola kebijakan data BigQuery yang mereferensikan tag tata kelola data untuk menerapkan aturan penyamaran atau kebijakan akses data mentah.

Setelah kebijakan data dibuat untuk kolom yang diberi tag, hanya pengguna yang ditentukan dalam kebijakan tersebut yang dapat mengakses kolom, asalkan mereka juga memiliki akses ke tabel. Semua pengguna lain ditolak aksesnya.

Membuat kebijakan data

API

Buat kebijakan data yang menggunakan aturan penyamaran SHA256 standar, atau buat kebijakan akses data mentah.

Membuat kebijakan data dengan aturan penyamaran SHA256 standar

Untuk membuat kebijakan data dengan aturan penyamaran SHA256 yang telah ditentukan sebelumnya, kirim permintaan POST ke endpoint dataPolicies:

curl --request POST \
    "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies" \
    --header "Authorization: Bearer $(gcloud auth print-access-token)" \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{"dataPolicy":{"dataPolicyType":"DATA_MASKING_POLICY","dataMaskingPolicy":{"predefinedExpression":"SHA256"},"grantees": ["principal://goog/subject/EMAIL_ADDRESS"],"dataGovernanceTag":{"key":"PROJECT_ID/TAG_KEY","value":"TAG_VALUE"}},"dataPolicyId":"POLICY_ID"}' \
    --compressed

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud Anda. Untuk memberikan organisasi, bukan project, sebagai induk tag Anda, gunakan ORGANIZATION_ID, bukan format dataGovernanceTag.key (ORGANIZATION_ID/TAG_KEY).
  • LOCATION: region tempat Anda membuat kebijakan data. Untuk mengetahui informasi selengkapnya, lihat lokasi kebijakan data.
  • EMAIL_ADDRESS: alamat email pengguna yang akan diberi akses.
  • TAG_KEY: nama pendek untuk kunci tag.
  • TAG_VALUE: nama pendek yang ditentukan pengguna untuk nilai tag.
  • POLICY_ID: ID untuk kebijakan data.
Membuat kebijakan akses data mentah

Untuk membuat kebijakan akses data mentah, tetapkan dataPolicyType ke RAW_DATA_ACCESS_POLICY:

curl --request POST \
    "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies" \
    --header "Authorization: Bearer $(gcloud auth print-access-token)" \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{"dataPolicy":{"dataPolicyType":"RAW_DATA_ACCESS_POLICY","grantees": ["principal://goog/subject/EMAIL_ADDRESS"],"dataGovernanceTag":{"key":"PROJECT_ID/TAG_KEY","value":"TAG_VALUE"}},"dataPolicyId":"POLICY_ID"}' \
    --compressed

Memperbarui kebijakan data

Memperbarui kebijakan data yang ada untuk memberikan akses kepada pengguna tambahan.

API

  1. Untuk menambahkan pengguna dengan memperbarui kebijakan secara langsung, dapatkan kebijakan saat ini dan etag-nya terlebih dahulu:

    curl --request GET \
        "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID" \
        --header "Authorization: Bearer $(gcloud auth print-access-token)" \
        --header 'Accept: application/json' \
        --header 'Content-Type: application/json' \
        --compressed
    
  2. Kirim permintaan PATCH dengan daftar penerima hibah yang telah diperbarui dan etag dari langkah sebelumnya:

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"],
        "etag": "ETAG"
      }'  \
    "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID?updateMask=grantees"
    

    Ganti ETAG dengan nilai etag yang ditampilkan oleh permintaan GET pada langkah sebelumnya.

    Atau, gunakan metode addGrantees untuk menambahkan pengguna ke kebijakan:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"]
      }'  \
    "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID:addGrantees"
    
  3. Untuk menghapus pengguna dari kebijakan, gunakan metode removeGrantees:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"]
      }'  \
    "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID:removeGrantees"
    

Menghapus kebijakan data

API

Untuk menghapus kebijakan data, kirim permintaan DELETE ke endpoint dataPolicies:

curl --request DELETE \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--compressed

Mencantumkan kebijakan data

API

Untuk mencantumkan kebijakan data yang mereferensikan kunci tag, kirim permintaan GET ke endpoint dataPolicies dengan parameter filter:

curl --request GET \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies?filter=dataGovernanceTag:PROJECT_ID/TAG_KEY" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--compressed

Interaksi dengan fitur lain

Bagian ini menjelaskan cara tag tata kelola data berinteraksi dengan fitur BigQuery lainnya.

Fitur Interaksi
Skema Informasi Tag tata kelola data yang dilampirkan ke kolom disertakan dalam tampilan INFORMATION_SCHEMA.COLUMNS dan INFORMATION_SCHEMA.COLUMN_FIELD_PATHS.
Salinan tabel Penyalinan tabel lintas region dinonaktifkan untuk tabel yang memiliki fitur keamanan tingkat kolom, termasuk tabel dengan tag tata kelola data.
Perjalanan waktu Akses ke data tabel historis diatur oleh kebijakan akses dan tag yang dilampirkan ke tabel.

Mengonfigurasi project kebijakan data default

Saat Anda mengakses kolom yang dilindungi oleh tag tata kelola data, BigQuery secara default hanya mengevaluasi kebijakan data di project tempat tabel berada. Kebijakan data yang ditentukan di project lain tidak berlaku, kecuali jika administrator mengonfigurasi project kebijakan data default di tingkat organisasi.

Jika project kebijakan data default dikonfigurasi untuk organisasi Anda, BigQuery akan mengevaluasi kebijakan data project tabel dan project kebijakan data default saat menentukan akses kolom.

Jika pengguna tunduk pada kebijakan data yang bertentangan di project tabel dan project kebijakan data default, kebijakan data di project tabel akan diprioritaskan.

Untuk menyetel atau melihat opsi default_data_policy_projects di tingkat organisasi menggunakan DDL atau tampilan INFORMATION_SCHEMA, lihat Setelan pengelolaan data dalam dokumentasi konfigurasi default.

Batasan tag tata kelola data

  • Tabel BigQuery Omni tidak mendukung tag tata kelola data pada kolom.
  • Anda dapat menggunakan konsol Google Cloud untuk melihat tag tata kelola data pada kolom, tetapi tidak untuk mengikat atau melepaskan ikatannya.
  • Anda dapat mengikat satu tag per kolom dan hingga 1.000 tag unik per tabel.
  • Jika Anda membuat kueri kolom yang diberi tag menggunakan BigQuery Storage Read API, panggilan tabledata.list, atau tabel wildcard, Anda akan menerima error akses ditolak kecuali jika kebijakan data memberi Anda akses.
  • Untuk kolom STRUCT, Anda hanya dapat menerapkan tag tata kelola data ke kolom leaf.
  • Anda dapat menghapus nilai tag yang terlampir pada kolom. Jika Anda menghapus nilai tag, pengikatan tag akan tetap ada di kolom, tetapi karena nilai tag tidak ada lagi, akses ke kolom mungkin hilang.

Memecahkan masalah tag tata kelola data

Bagian ini menjelaskan cara memecahkan masalah umum saat mengontrol akses ke kolom dengan tag tata kelola data.

Nama tag yang diformat salah

Saat membuat tag, Anda menentukan nama pendek (misalnya, ssn). Namun, saat melampirkan tag ke kolom dalam skema atau menggunakannya dalam kondisi, kunci tag harus menggunakan format dengan namespace (PROJECT_ID/TAG_KEY atau ORGANIZATION_ID/TAG_KEY), sementara nilai tag tetap menggunakan nama pendek. Hanya memberikan nama pendek untuk kunci tag akan menghasilkan error Invalid tagKey atau Invalid tagValue.

Penerapan kebijakan lintas project

Secara default, hanya kebijakan data project tabel yang dievaluasi. Kebijakan dari project lain tidak berlaku kecuali jika project kebijakan data default dikonfigurasi di tingkat organisasi. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi dan mengevaluasi kebijakan lintas project, lihat Mengonfigurasi project kebijakan data default.

Langkah berikutnya