Halaman ini menjelaskan cara menggunakan tag dengan Identity and Access Management (IAM) untuk membantu Anda mengontrol akses ke resource Google Cloud.
Untuk mempelajari tag lebih lanjut, lihat Ringkasan tag.
Ringkasan tag
Tag adalah pasangan nilai kunci yang dilampirkan ke resource Google Cloud. Anda dapat memberikan peran IAM secara bersyarat atau menolak izin IAM secara bersyarat berdasarkan apakah resource memiliki tag tertentu atau tidak.
Resource mewarisi nilai tag dari organisasi, folder, dan project induknya. Oleh karena itu, Anda dapat menggunakan tag untuk mengelola akses ke resource Google Cloud mana pun.
Berikut adalah beberapa kasus penggunaan umum untuk mengelola akses dengan tag:
- Lingkungan pengembangan, staging, dan produksi. Misalnya, Anda dapat
menambahkan tag
environment: dev
ke lingkungan pengembangan danenvironment: prod
ke lingkungan produksi. - Tipe komponen. Misalnya, Anda dapat menambahkan tag
component: frontend
ke resource front-end dancomponent: batch
ke resource untuk pemrosesan batch. - Nama project. Misalnya, jika tim Anda sedang mengerjakan project dengan
namakode Atlas, Anda dapat menambahkan tag
project: atlas
ke resource pengembangan tim.
Definisi dan ID tag
Sebelum melampirkan tag ke resource, Anda harus menentukan kunci untuk tag tersebut, serta nilai yang diizinkan oleh tag. Anda dapat membuat definisi ini di tingkat organisasi atau proyek. Anda dapat menggunakan Resource Manager untuk mengelola definisi tag. Untuk mempelajari lebih lanjut, lihat Membuat dan menentukan tag baru.
Setiap kunci dan nilai tag memiliki beberapa pengenal yang berbeda:
-
ID permanen, yang bersifat unik secara global dan tidak dapat digunakan kembali. Misalnya, kunci tag
dapat memiliki ID permanen
tagKeys/123456789012
, dan nilai tag dapat memiliki ID permanentagValues/567890123456
. -
Nama pendek. Nama pendek untuk setiap kunci harus unik dalam organisasi Anda, dan
nama pendek untuk setiap nilai harus unik untuk kunci yang terkait. Misalnya, kunci tag
dapat memiliki nama pendek
env
, dan nilai tag dapat memiliki nama pendekprod
. -
Nama dengan namespace, yang menambahkan ID numerik organisasi Anda ke nama pendek kunci
tag. Misalnya, kunci tag dapat memiliki nama dengan namespace
123456789012/env
. Pelajari cara mendapatkan ID organisasi Anda.
Seperti yang dijelaskan di halaman ini, setelah melampirkan tag ke resource, Anda dapat menulis kondisi untuk memberikan akses berdasarkan tag. Untuk menulis Anda harus memilih jenis ID yang akan digunakan dalam kondisi tersebut. Ikuti panduan berikut untuk memilih di antaranya:
- Untuk bereksperimen dengan tag, sebaiknya gunakan nama dengan namespace (untuk kunci) dan nama pendeknya (untuk nilai). ID ini lebih mudah dipahami dan diingat, terutama saat Anda memulai.
Jika Anda mengelola konfigurasi secara deklaratif,menggunakan alat seperti Terraform, pertimbangkan untuk menggunakan nama dengan namespace (untuk kunci) dan nama pendek (untuk nilai). Anda dapat menggunakan kembali ID ini dari waktu ke waktu, yang berarti bahwa alat deklaratif dapat menghapus dan membuatnya kembali, dan kondisi Anda akan terus berfungsi.
Pendekatan ini memiliki konsekuensi: Misalkan Anda menghapus kunci atau nilai tag, lalu membuat kunci atau nilai baru dengan nama yang sama tetapi maknanya berbeda. Jika kondisi Anda mengacu pada nama dengan namespace atau nama pendek, kondisi akan terus berlaku untuk kunci atau nilai baru.
Dalam beberapa kasus, perilaku ini dapat menyebabkan entity utama mendapatkan akses yang tidak Anda inginkan.
Untuk membantu meminimalkan risiko, pertimbangkan untuk menggunakan ID permanen, yang tidak akan pernah dapat digunakan kembali.
Berikut alasan ID permanen membantu meminimalkan risiko: Misalkan Anda menghapus kunci atau nilai tag, lalu membuat kunci atau nilai baru dengan nama yang sama tetapi maknanya berbeda. Jika kondisi Anda mengacu pada ID permanen, maka kondisi tersebut tidak berlaku untuk kunci atau nilai yang baru. Akibatnya, akun utama cenderung tidak mendapatkan akses yang tidak Anda inginkan.
Salah satu kekurangannya adalah jika Anda menghapus dan membuat ulang kunci dan nilai, dan ingin mempertahankan akses akun utama, Anda juga harus memperbarui kebijakan izin untuk merujuk ke ID permanen baru.
Akses ke resource yang diberi tag
Anda dapat menggunakan tag dengan IAM Conditions untuk memberikan peran
secara kondisional, bergantung pada tag yang dikaitkan atau diwarisi oleh
resource. Jika kondisi bernilai true
, akses akan diberikan; jika tidak, akses
tidak akan diberikan. Untuk mempelajari lebih lanjut, baca ringkasan IAM Conditions.
Bagian berikut menunjukkan contoh ekspresi kondisi yang memeriksa tag pada resource. Kondisi ini memanggil fungsi yang berbeda bergantung pada apakah kondisi ini memeriksa ID permanen atau nama pendek. Untuk mempelajari fungsi ini lebih lanjut, lihat Tag resource.
Ketentuan yang menggunakan ID permanen
Kondisi ini memberikan peran pada resource dengan tag
tagKeys/123456789012: tagValues/567890123456
:
resource.matchTagId('tagKeys/123456789012', 'tagValues/567890123456')
Kondisi ini memberikan peran pada resource yang memiliki tag apa pun dengan kunci
tagKeys/123456789012
, terlepas dari nilainya:
resource.hasTagKeyId('tagKeys/123456789012')
Kondisi ini memberikan peran pada resource yang memiliki tag
tagKeys/123456789012: tagValues/567890123456
, dan tag apa pun yang menggunakan
kunci tagKeys/987654321098
:
resource.matchTagId('tagKeys/123456789012', 'tagValues/567890123456') &&
resource.hasTagKeyId('tagKeys/987654321098')
Kondisi yang menggunakan nama dengan namespace dan nama pendek
Kondisi ini memberikan peran pada resource dengan tag env: prod
, yang menunjukkan
bahwa resource berada dalam lingkungan produksi:
resource.matchTag('123456789012/env', 'prod')
Kondisi ini memberikan peran pada resource yang memiliki tag apa pun dengan kunci env
,
terlepas dari nilainya:
resource.hasTagKey('123456789012/env')
Kondisi ini memberikan peran pada resource yang memiliki tag env: prod
dan
tag apa pun yang menggunakan kunci project
:
resource.matchTag('123456789012/env', 'prod') &&
resource.hasTagKey('123456789012/project')
Langkah selanjutnya
- Pelajari cara mengelola tag dan melampirkan tag ke resource.
- Dapatkan detail tentang cara memeriksa tag dalam kondisi.