Membuat dan mengelola tag

Panduan ini menjelaskan cara membuat dan mengelola tag pada database mode Datastore.

Tentang tag

Tag adalah pasangan nilai kunci yang dapat dilampirkan ke resource dalam Google Cloud. Anda dapat menggunakan tag untuk mengizinkan atau menolak kebijakan secara bersyarat berdasarkan apakah resource memiliki tag tertentu. Misalnya, Anda dapat memberikan peran Identity and Access Management (IAM) secara bersyarat berdasarkan apakah resource memiliki tag tertentu atau tidak. Untuk informasi selengkapnya mengenai tag, lihat Ringkasan tag.

Tag dilampirkan ke resource dengan membuat resource binding tag yang menautkan nilai ke resource Google Cloud .

Izin yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk mengelola tag, minta administrator untuk memberi Anda peran IAM berikut :

  • Tag Viewer (roles/resourcemanager.tagViewer) pada resource tempat tag tersebut dilampirkan
  • Melihat dan mengelola tag di tingkat organisasi: Organization Viewer (roles/resourcemanager.organizationViewer) di organisasi
  • Membuat, memperbarui, dan menghapus definisi tag: Tag Administrator (roles/resourcemanager.tagAdmin) pada resource yang tag-nya Anda buat, perbarui, atau hapus
  • Melampirkan dan menghapus tag dari resource: Tag User (roles/resourcemanager.tagUser) pada nilai tag dan resource tempat Anda melampirkan atau menghapus nilai tag-nya

Untuk informasi selengkapnya mengenai 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.

Untuk melampirkan tag ke database Datastore, Anda memerlukan peran Datastore Owner (roles/datastore.owner).

Membuat kunci dan nilai tag

Sebelum dapat melampirkan tag, Anda harus membuat tag dan mengonfigurasi nilainya. Untuk membuat kunci dan nilai tag, lihat Membuat tag dan Menambahkan nilai tag.

Menambahkan tag selama pembuatan resource

Anda dapat menambahkan tag saat membuat database. Menambahkan tag selama pembuatan resource memungkinkan Anda langsung memberikan metadata penting untuk resource dan juga membantu pengorganisasian yang lebih baik, pelacakan biaya, dan penerapan kebijakan otomatis.

gcloud

  gcloud firestore databases create \
      --location=LOCATION \
      --database=DATABASE \
      --tags=[KEY=VALUE,...]

Ganti kode berikut:

  • LOCATION: lokasi yang akan dioperasikan.
  • DATABASE: ID yang akan digunakan untuk database.
  • KEY=VALUE: daftar pasangan KEY=VALUE tag yang akan diikat. Setiap item harus dinyatakan sebagai <tag-key-namespaced-name>=<tag-value-short-name> atau <tag-key-name>=<tag-value-name>.

Tentukan beberapa tag dengan memisahkan tag menggunakan koma, misalnya, TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2

API

Kirim permintaan POST ke URL berikut:

      
https://firestore.googleapis.com/v1/projects/PROJECT/databases?databaseId=DATABASE

Berikan JSON berikut di isi permintaan:

      
"type": "FIRESTORE_NATIVE",
"locationId": LOCATION,
"tags": {KEY:VALUE}

Ganti kode berikut:

  • PROJECT: project yang akan dioperasikan.
  • DATABASE: ID yang akan digunakan untuk database.
  • LOCATION: lokasi yang akan dioperasikan.
  • KEY:VALUE: daftar pasangan KEY=VALUE tag yang akan diikat. Setiap item harus dinyatakan sebagai <tag-key-namespaced-name>:<tag-value-short-name> atau <tag-key-name>:<tag-value-name>.

Menambahkan tag ke resource yang ada

Untuk menambahkan tag ke database yang ada, ikuti langkah-langkah berikut:

gcloud

Untuk melampirkan tag ke database, Anda harus membuat 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 namespace dari nilai tag yang dilampirkan—misalnya, tagValues/567890123456.
  • RESOURCE_ID adalah ID lengkap resource, termasuk nama domain API untuk mengidentifikasi jenis resource (//firestore.googleapis.com/). Misalnya, untuk melampirkan tag ke database di projects/firestore-test-project, ID lengkapnya adalah: //firestore.googleapis.com/projects/firestore-test-project/databases/\(default\).
  • LOCATION: lokasi resource Anda. Jika Anda melampirkan tag ke resource global, seperti folder atau project, hilangkan flag ini. Jika melampirkan tag ke resource regional atau zona, Anda harus menentukan lokasinya—misalnya: us-central1 (region) atau us-central1-a (zona).

Mencantumkan tag yang dilampirkan ke resource

Anda dapat melihat daftar binding tag yang langsung dilampirkan ke atau diwarisi oleh database.

gcloud

Untuk mendapatkan daftar binding tag yang dilampirkan 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 adalah ID lengkap resource, termasuk nama domain API untuk mengidentifikasi jenis resource (//firestore.googleapis.com/). Misalnya, untuk melampirkan tag ke database di projects/firestore-test-project, ID lengkapnya adalah: //firestore.googleapis.com/projects/firestore-test-project/databases/\(default\).
  • LOCATION: lokasi resource Anda. Jika Anda melihat tag yang dilampirkan ke resource global, seperti folder atau project, hilangkan flag ini. Jika melihat tag yang dilampirkan ke resource regional atau zona, Anda harus menentukan lokasinya—misalnya: us-central1 (region) atau us-central1-a (zona).

Anda akan mendapatkan respons seperti berikut:

name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
          tagValue: tagValues/567890123456
          resource: //firestore.googleapis.com/projects/firestore-test-project/databases/(default)
      

Melepas tag dari resource

Anda dapat melepaskan tag yang telah dikaitkan secara langsung ke database. Tag yang diwariskan dapat diganti dengan melampirkan tag dengan kunci yang sama dan nilai yang berbeda, tetapi tag tersebut tidak dapat dilepaskan.

gcloud

Untuk menghapus binding tag, gunakan 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 namespace dari nilai tag yang dilampirkan—misalnya, tagValues/567890123456.
  • RESOURCE_ID adalah ID lengkap resource, termasuk nama domain API untuk mengidentifikasi jenis resource (//firestore.googleapis.com/). Misalnya, untuk melampirkan tag ke database di projects/firestore-test-project, ID lengkapnya adalah: //firestore.googleapis.com/projects/firestore-test-project/databases/\(default\).
  • LOCATION: lokasi resource Anda. Jika Anda melampirkan tag ke resource global, seperti folder atau project, hilangkan flag ini. Jika melampirkan tag ke resource regional atau zona, Anda harus menentukan lokasinya—misalnya: us-central1 (region) atau us-central1-a (zona).

Menghapus kunci dan nilai tag

Saat menghapus kunci tag atau definisi nilai, pastikan tag tersebut dilepaskan dari database. Anda harus menghapus lampiran tag yang ada, yang disebut binding tag, sebelum menghapus definisi tag itu sendiri. Untuk menghapus kunci tag dan nilai tag, lihat Menghapus tag.

Kondisi dan tag Identity and Access Management

Anda dapat menggunakan tag dan kondisi IAM untuk memberikan binding peran secara bersyarat kepada pengguna dalam hierarki Anda. Mengubah atau menghapus tag yang dilampirkan ke resource dapat menghapus akses pengguna ke resource tersebut jika kebijakan IAM dengan binding peran bersyarat telah diterapkan. Untuk informasi selengkapnya, lihat kondisi dan tag Identity and Access Management.

Langkah berikutnya