Halaman ini menjelaskan Google Cloud tag dan cara menggunakannya dengan Pub/Sub. Tag dapat diterapkan ke topik, langganan, dan snapshot Pub/Sub. Dukungan untuk menerapkan tag ke skema Pub/Sub sedang direncanakan.
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 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.
Untuk melampirkan tag ke topik, langganan, atau snapshot Pub/Sub, Anda memerlukan peran
Pub/Sub
Editor (roles/pubsub.editor).
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 pada saat membuat topik, langganan, atau snapshot. Menambahkan tag selama pembuatan resource memungkinkan Anda langsung memberikan metadata penting untuk resource dan juga membantu organisasi yang lebih baik, pelacakan biaya, dan penerapan kebijakan otomatis.
Konsol
- Buka halaman Pub/Sub di Google Cloud konsol.
- Pilih opsi untuk membuat topik, langganan, atau snapshot baru.
- Klik Manage tags.
- Jika organisasi Anda tidak muncul di panel Manage tags, klik Select scope for tags. Pilih untuk menambahkan tag yang ditentukan di tingkat organisasi atau project Anda, lalu masukkan ID untuk tag tersebut.
- Klik Add tag.
- Pilih kunci untuk tag yang ingin Anda lampirkan dari daftar. Anda dapat filter daftar dengan mengetikkan kata kunci.
- Pilih nilai untuk tag yang ingin Anda lampirkan dari daftar. Anda dapat memfilter daftar dengan mengetikkan kata kunci.
- Klik Save. Bagian Tags akan diperbarui dengan informasi tag information.
- Buat topik, langganan, atau snapshot. Topik, langganan, atau snapshot baru dibuat dengan tag yang diberikan.
gcloud
Untuk menambahkan tag selama pembuatan topik, langganan, atau snapshot, jalankan perintah berikut:
gcloud pubsub topics create TOPIC_ID --tags=TAG_KEY=TAG_VALUE
Ganti kode berikut:
- TOPIC_ID: ID topik
- TAG_KEY: ID permanen atau nama dengan namespace dari kunci tag yang dilampirkan—misalnya, tagKeys/567890123456
- TAG_VALUE: ID permanen atau nama dengan namespace dari nilai tag yang dilampirkan—misalnya, tagValues/567890123456
Tentukan beberapa tag dengan memisahkan tag dengan koma, misalnya, TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2
API
Kirim permintaan POST ke URL berikut:
https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_IDBerikan JSON berikut dalam isi permintaan:
{
"name": "projects/PROJECT_ID/topics/TOPIC_ID"
"tags": {
"TAGKEY_NAME": "TAGVALUE_NAME"
}
}
Ganti kode berikut:
- PROJECT_ID: ID project
- TOPIC_ID: ID topik
- TAGKEY_NAME: ID permanen atau nama dengan namespace dari kunci tag yang dilampirkan—misalnya, tagKeys/567890123456
- TAGVALUE_NAME: ID permanen atau nama dengan namespace dari nilai tag yang dilampirkan—misalnya, tagValues/567890123456
Menerapkan tag wajib
Anda dapat menerapkan tag wajib pada resource untuk memastikan tag tertentu ada saat resource dibuat, seperti tag Cost Center, untuk mempertahankan kepatuhan terhadap kebijakan organisasi. Anda dapat melakukannya menggunakan kebijakan organisasi dan batasan khusus. Penerapan terjadi saat pembuatan resource, sehingga mencegah penyediaan resource tanpa tag yang diperlukan. Untuk mengetahui informasi selengkapnya, lihat Penerapan tag wajib menggunakan kebijakan organisasi.
Menyiapkan batasan khusus untuk menerapkan tag
Konsol
Di Google Cloud konsol, buka halaman Organization policies.
Pilih pemilih project di bagian atas halaman.
Dari pemilih project, pilih organisasi tempat Anda ingin menerapkan batasan khusus.
Siapkan batasan khusus dengan parameter berikut:
- Enforcement method:
Govern tags - Jenis resource: nama resource REST yang sepenuhnya memenuhi syarat yang ingin Anda terapkan tag wajibnya, misalnya,
file.googleapis.com/InstanceGoogle Cloud - Kondisi: kondisi Common Expression Language (CEL) yang menentukan
kunci tag yang ingin Anda terapkan pada resource, misalnya
resource.hasDirectTagKey("1234567890/owner")untuk menerapkan binding tag untuk kunci tag1234567890/owner. Fungsi CELresource.hasDirectTagKeyhanya cocok dengan tag yang diterapkan langsung ke resource dan tidak mempertimbangkan tag yang diwarisi dari ancestor dalam hierarki resource. - Action:
AllowatauDeny.- Allow: Jika kondisi yang ditentukan terpenuhi, tindakan untuk membuat atau memperbarui resource akan diizinkan.
- Deny: Jika kondisi yang ditentukan terpenuhi, tindakan untuk membuat atau memperbarui resource akan diblokir.
- Enforcement method:
Klik Create constraint.
gcloud
Buat file YAML untuk batasan khusus:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- RESOURCE_NAME
methodTypes:
- GOVERN_TAGS
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION
Ganti kode berikut:
ORGANIZATION_ID: ID organisasi Anda, seperti1234567890.CONSTRAINT_NAME: nama yang diinginkan untuk batasan khusus baru Anda. Batasan khusus harus dimulai dengancustom., dan hanya boleh meliputi huruf besar, huruf kecil, atau angka, misalnya,custom.enforceMandatoryTags.RESOURCE_NAME: nama resource REST yang sepenuhnya memenuhi syarat yang ingin Anda terapkan tag wajibnya, misalnya,file.googleapis.com/Instance.Google CloudCONDITION: kondisi Common Expression Language (CEL) yang menentukan kunci tag yang ingin Anda terapkan pada resource, misalnyaresource.hasDirectTagKey("1234567890/owner")untuk menerapkan binding tag untuk kunci tag1234567890/owner.ACTION: tindakan yang akan diambil jikaconditionterpenuhi. Ini dapat berupaALLOWatauDENY.Tindakan penolakan berarti bahwa jika kondisi yang ditentukan terpenuhi, operasi untuk membuat atau memperbarui resource akan diblokir.
Tindakan izinkan berarti jika kondisi yang ditentukan terpenuhi, operasi untuk membuat atau memperbarui resource akan diizinkan. Artinya juga bahwa setiap kasus lain kecuali yang tercantum secara eksplisit dalam kondisi diblokir.
DISPLAY_NAME: nama yang mudah dibaca manusia untuk batasan. Kolom ini memiliki panjang maksimum 200 karakter.DESCRIPTION: deskripsi batasan yang mudah dipahami untuk ditampilkan sebagai pesan error saat kebijakan dilanggar. Kolom ini memiliki panjang maksimum 2.000 karakter.
Siapkan batasan khusus agar tersedia untuk kebijakan organisasi di organisasi Anda.
Setelah menentukan batasan khusus, Anda dapat menguji dan menganalisis perubahan kebijakan organisasi serta menerapkan batasan.
Menambahkan tag ke resource yang ada
Untuk menambahkan tag ke topik, langganan, atau snapshot yang ada, ikuti langkah-langkah berikut:
Konsol
- Buka halaman Pub/Sub di Google Cloud konsol.
- Pilih halaman untuk resource yang ingin Anda lampirkan tag. Misalnya, untuk melampirkan tag ke topik, buka halaman Topics.
- Klik Tags.
- Jika organisasi Anda tidak muncul di panel Tags, klik Select scope. Pilih organisasi Anda dan klik Open.
- Klik Add tag.
- Pilih kunci untuk tag yang ingin Anda lampirkan dari daftar. Anda dapat filter daftar dengan mengetikkan kata kunci.
- Pilih nilai untuk tag yang ingin Anda lampirkan dari daftar. Anda dapat memfilter daftar dengan mengetikkan kata kunci.
- Klik Save.
- Dalam dialog Confirm, klik Confirm untuk melampirkan tag.
Notifikasi mengonfirmasi bahwa tag Anda telah diperbarui.
gcloud
Untuk melampirkan tag ke topik, langganan, atau snapshot, 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
Ganti kode berikut:
TAGVALUE_NAME: ID permanen atau nama dengan namespace dari nilai tag yang dilampirkan—misalnya,tagValues/567890123456.-
RESOURCE_IDadalah ID lengkap resource, termasuk nama domain API untuk mengidentifikasi jenis resource (//pubsub.googleapis.com/). Misalnya, untuk melampirkan tag ke/projects/PROJECT_ID/topics/TOPIC_ID, ID lengkapnya adalah//pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID.
Mencantumkan tag yang dilampirkan ke resource
Anda dapat melihat daftar binding tag yang dilampirkan langsung atau diwarisi oleh topik, langganan, atau snapshot.
Konsol
- Buka halaman Pub/Sub di Google Cloud konsol.
Pilih halaman untuk resource yang ingin Anda lihat tag-nya. Misalnya, untuk melihat tag untuk topik, buka halaman Topics.
Tag ditampilkan di bagian Tags pada halaman topik di konsol.
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
Ganti kode berikut:
-
RESOURCE_IDadalah ID lengkap resource, termasuk nama domain API untuk mengidentifikasi jenis resource (//pubsub.googleapis.com/). Misalnya, untuk melampirkan tag ke/projects/PROJECT_ID/topics/TOPIC_ID, ID lengkapnya adalah//pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID.
Anda akan mendapatkan respons seperti berikut:
name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
tagValue: tagValues/567890123456
resource: //pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Melepas tag dari resource
Anda dapat melepaskan tag yang telah dilampirkan secara langsung ke topik, langganan, atau snapshot. Tag yang diwariskan dapat diganti dengan melampirkan tag dengan kunci yang sama dan nilai yang berbeda, tetapi tag tersebut tidak dapat dilepaskan.
Konsol
- Buka halaman Pub/Sub di Google Cloud konsol.
- Pilih halaman untuk resource yang ingin Anda hapus tag-nya. Misalnya, untuk menghapus tag dari topik, buka halaman Topics.
- Klik Tags.
- Di panel Tags, di samping tag yang ingin dilepas, klik Delete item.
- Klik Save.
- Dalam dialog Confirm, klik Confirm untuk melepas tag.
Notifikasi mengonfirmasi bahwa tag Anda telah diperbarui.
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
Ganti kode berikut:
TAGVALUE_NAME: ID permanen atau nama dengan namespace dari nilai tag yang dilampirkan—misalnya,tagValues/567890123456.-
RESOURCE_IDadalah ID lengkap resource, termasuk nama domain API untuk mengidentifikasi jenis resource (//pubsub.googleapis.com/). Misalnya, untuk melampirkan tag ke/projects/PROJECT_ID/topics/TOPIC_ID, ID lengkapnya adalah//pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID.
Menghapus kunci dan nilai tag
Saat menghapus definisi kunci atau nilai tag, pastikan tag dilepas dari topik, langganan, atau snapshot. 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
- Lihat layanan lain yang mendukung tag.
- Lihat Tag dan kontrol akses untuk mempelajari cara menggunakan tag dengan IAM.