Halaman ini menunjukkan cara menggunakan Tag untuk mengelola cluster Google Kubernetes Engine (GKE) dan menerapkan kebijakan Identity and Access Management secara bersyarat ke node.
Ringkasan
Tag adalah pasangan nilai kunci yang memungkinkan Anda menganotasi dan mengelola resourceGoogle Cloud di tingkat organisasi atau project. Anda dapat menggunakan Tag untuk mengatur resource dan menerapkan kebijakan secara bersyarat seperti firewall atau kebijakan IAM. Tag mendukung kontrol akses IAM, yang memungkinkan Anda menentukan siapa yang dapat melampirkan, membuat, memperbarui, atau menghapus Tag.
Kasus penggunaan untuk Tag di GKE
Anda dapat menggunakan Tag di GKE untuk situasi seperti berikut:
- Menerapkan kebijakan firewall jaringan secara bersyarat ke node tertentu. Misalnya, tolak traffic masuk dari internet publik ke semua node cluster di lingkungan staging atau pengujian. Untuk mengetahui petunjuknya, lihat Menerapkan kebijakan firewall jaringan secara selektif di GKE.
- Memberikan peran IAM secara bersyarat berdasarkan Tag. Misalnya, secara otomatis memberikan akses kepada kontraktor ke lingkungan tertentu yang biasanya hanya tersedia untuk karyawan purnawaktu. Untuk mengetahui petunjuknya, lihat bagian lain dalam dokumen ini.
- Audit dan analisis informasi penagihan berdasarkan Tag yang diterapkan di tingkat project atau organisasi.
Cara kerjanya
Khusus untuk penerapan kebijakan firewall jaringan, Anda membuat tag dan menetapkan tag secara eksplisit untuk penggunaan firewall. Untuk tujuan lainnya, Anda membuat tag tanpa menetapkan penetapan firewall.
Setelah membuat tag, Anda akan melampirkan tag tersebut ke resource GKE sebagai pasangan nilai kunci. Untuk kebijakan firewall jaringan, Anda menggunakan GKE API, sedangkan untuk semua tujuan lainnya, Anda menggunakan Tags API.
Untuk setiap kunci, Anda dapat melampirkan satu nilai ke
resource. Misalnya, jika Anda melampirkan env:dev
ke cluster
GKE, Anda tidak dapat menambahkan env:prod
atau env:test
juga. Anda dapat melampirkan hingga
50 Tag non-firewall dan hingga lima Tag
firewall ke setiap resource.
Metode anotasi resource di GKE
Di GKE, ada beberapa metode untuk menganotasi resource Anda, seperti yang diuraikan dalam tabel berikut:
Jenis anotasi | Deskripsi | Contoh |
---|---|---|
Tag (non-firewall) |
Untuk mempelajari lebih lanjut, lihat Ringkasan tag. |
Memberikan peran IAM secara bersyarat untuk mengontrol akses ke resource yang memiliki Tag tertentu |
Tag (firewall) |
Untuk mempelajari lebih lanjut, lihat Menerapkan kebijakan firewall jaringan secara selektif di GKE. |
Otomatis menolak traffic masuk dari internet publik ke semua lingkungan staging atau pengujian |
Tag jaringan |
Untuk mempelajari lebih lanjut, lihat Menggunakan tag jaringan untuk menerapkan aturan firewall ke node. |
Otomatis menolak traffic masuk dari internet publik ke semua lingkungan staging atau pengujian |
Label cluster GKE |
Untuk mempelajari lebih lanjut, lihat Label cluster. |
Membedakan cluster yang dimiliki oleh pusat biaya atau tim tertentu di organisasi Anda. |
Label Kubernetes |
Untuk mempelajari lebih lanjut, lihat Label dan pemilih Kubernetes. |
Mewajibkan workload dijadwalkan di node dengan label tertentu. |
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.
Pastikan Anda memiliki peran IAM berikut:
roles/resourcemanager.tagAdmin
roles/resourcemanager.tagUser
Untuk mengetahui informasi tentang izin yang diberikan oleh peran ini, lihat Izin yang diperlukan.
Pastikan Anda memiliki cluster GKE yang berjalan.
Melampirkan Tag ke cluster
Anda dapat melampirkan Tag ke cluster yang sudah ada jika memiliki izin yang tepat menggunakan Google Cloud CLI, konsol Google Cloud, Tags API, atau Terraform.
gcloud
Sebelum dapat melampirkan tag ke resource GKE menggunakan gcloud CLI, Anda harus membuat tag dan mengonfigurasi nilainya. Untuk membuat kunci dan nilai tag, lihat artikel Membuat tag dan Menambahkan nilai tag.
Untuk membuat binding tag guna melampirkan tag ke cluster, jalankan perintah berikut:
gcloud alpha resource-manager tags bindings create \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Ganti kode berikut:
TAG_VALUE_ID
: ID permanen atau nama dengan namespace dari nilai tag yang akan dilampirkan. Contoh,tagValues/4567890123
. Untuk mengetahui detail tentang ID tag, lihat Definisi dan ID tag.CLUSTER_LOCATION
: lokasi Compute Engine. Untuk cluster zona, tentukan zona komputasi.RESOURCE_ID
: Nama resource lengkap cluster Anda, seperti//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.Di ID resource:
PROJECT_ID
: Google Cloud Project ID Anda.CLUSTER_NAME
: Nama cluster Anda.
Konsol
Sebelum dapat melampirkan tag ke resource GKE menggunakan konsol Google Cloud, Anda harus membuat tag dan mengonfigurasi nilainya. Untuk membuat kunci dan nilai tag, lihat artikel Membuat tag dan Menambahkan nilai tag.
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di daftar cluster, klik nama cluster yang ingin diubah.
Di bagian Metadata, di samping Tag, klik
Edit tag.Jika organisasi Anda tidak muncul di panel Tag, klik Pilih cakupan. Pilih organisasi Anda dan klik Buka.
Di panel Tag, pilih Tambahkan tag.
Pilih kunci untuk tag yang ingin Anda lampirkan dari daftar. Anda dapat memfilter daftar dengan mengetik kata kunci.
Pilih nilai untuk tag yang ingin dilampirkan dari daftar. Anda dapat memfilter daftar dengan mengetik kata kunci.
Klik Simpan.
Dalam dialog Konfirmasi, klik Konfirmasi untuk melampirkan tag.
Notifikasi mengonfirmasi bahwa tag Anda telah diperbarui.
API
Untuk melampirkan tag ke resource, Anda harus terlebih dahulu membuat representasi JSON dari binding tag yang menyertakan ID permanen nilai tag dan resource. Untuk mengetahui informasi selengkapnya tentang format binding tag, lihat Referensi TagBinding.
Gunakan metode tagBindings.create
dengan endpoint regional atau zona
tempat cluster Anda berada.
POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
Ganti LOCATION
dengan region atau zona tempat
cluster Anda berada.
Isi permintaan JSON:
{
"parent": "RESOURCE_ID",
"tagValue": "TAG_VALUE_ID"
}
Ganti kode berikut:
RESOURCE_ID
: Nama resource lengkap cluster Anda, seperti//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.Di ID resource:
PROJECT_ID
: Google Cloud Project ID Anda.CLUSTER_NAME
: Nama cluster Anda.
TAG_VALUE_ID
: ID permanen atau nama dengan namespace dari nilai tag yang akan dilampirkan. Contoh,tagValues/4567890123
. Untuk mengetahui detail tentang ID tag, lihat Definisi dan ID tag.
Outputnya mirip dengan hal berikut ini:
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.TagBinding",
"name": "tagBindings///container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME/tagValues/TAG_VALUE_ID",
"parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME",
"tagValue": "TAG_VALUE_ID"
}
}
Terraform
Untuk membuat tag, mengonfigurasi nilainya, dan melampirkan tag ke resource menggunakan Terraform, lihat contoh berikut:
Untuk mempelajari lebih lanjut cara menggunakan Terraform, lihat Dukungan Terraform untuk GKE.
Mencantumkan Tag yang dilampirkan ke cluster
Anda dapat membuat daftar Tag yang dilampirkan ke cluster menggunakan gcloud CLI, konsol Google Cloud, atau Tags API.
gcloud
Untuk mendapatkan daftar binding tag yang dilampirkan ke cluster, jalankan perintah berikut:
gcloud alpha resource-manager tags bindings list \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Ganti kode berikut:
CLUSTER_LOCATION
: Untuk cluster regional, tentukan region komputasi. Untuk cluster zona, tentukan zona komputasi.RESOURCE_ID
: Nama resource lengkap cluster Anda, seperti//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.Di ID resource:
PROJECT_ID
: Google Cloud Project ID Anda.CLUSTER_NAME
: Nama cluster Anda.
Konsol
Buka halaman Google Kubernetes Engine di Konsol Google Cloud.
Di daftar cluster, klik nama cluster yang ingin Anda lihat.
Di bagian Metadata, di samping Tag, cari nilai tag yang saat ini ditambahkan.
API
Untuk mendapatkan daftar binding tag cluster, gunakan metode tagBindings.list
dengan endpoint regional atau zona tempat cluster Anda berada.
GET https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
Isi permintaan JSON:
{
"parent": RESOURCE_ID,
}
Ganti kode berikut:
RESOURCE_ID
: Nama resource lengkap cluster Anda, seperti//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.Di ID resource:
PROJECT_ID
: Google Cloud Project ID Anda.CLUSTER_NAME
: Nama cluster Anda.
Outputnya mirip dengan yang berikut ini:
"tagBindings": [
{
"name": "tagBindings/%2F%2Fcontainer.googleapis.com%2Fprojects%2Ftags-bugbash-project%2Flocations%2LOCATION%2Fclusters%2Ftestcluster/tagValues/758072120217",
"parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME",
"tagValue": "TAG_VALUE_ID"
}
]
Melepaskan tag dari cluster
Anda dapat melepaskan tag dari cluster dengan menghapus resource binding tag yang dilampirkan ke cluster menggunakan gcloud CLI, konsol Google Cloud, atau Tags API. Jika perlu menghapus tag, Anda harus melepaskannya dari semua resource yang terlampir terlebih dahulu.
gcloud
Untuk melepaskan binding tag yang terlampir ke cluster, jalankan perintah berikut:
gcloud alpha resource-manager tags bindings delete \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Ganti kode berikut:
TAG_VALUE_ID
: ID permanen atau nama dengan namespace dari nilai tag yang akan dilepas. Contoh,tagValues/4567890123
. Untuk mengetahui detail tentang ID tag, lihat Definisi dan ID tag.CLUSTER_LOCATION
: Untuk cluster regional, tentukan region komputasi. Untuk cluster zona, tentukan zona komputasi.RESOURCE_ID
: Nama resource lengkap cluster Anda, seperti//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.Di ID resource:
PROJECT_ID
: Google Cloud Project ID Anda.CLUSTER_NAME
: Nama cluster Anda.
Konsol
Buka halaman Google Kubernetes Engine di Konsol Google Cloud.
Di daftar cluster, klik nama cluster yang ingin diubah.
Di bagian Metadata, di samping Tag, klik
Edit tag.Di panel Tag, di samping tag yang ingin dilepas, klik
Hapus item.Klik Simpan.
Dalam dialog Konfirmasi, klik Konfirmasi untuk melepas tag.
Notifikasi mengonfirmasi bahwa tag Anda telah diperbarui.
API
Untuk menghapus binding tag cluster, gunakan metode tagBindings.delete
dengan endpoint regional atau zona tempat cluster Anda berada.
DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/TAG_BINDING_NAME
Ganti TAG_BINDING_NAME
dengan nama resource
lengkap objek tagBinding
yang ingin dilepaskan. Contoh,
tagBindings/container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/tagValues/TAG_VALUE_ID
Menghapus kunci tag dan nilai tag
Sebelum Anda menghapus kunci dan nilai tag, pastikan tag tersebut telah dilepas dari semua resource. Selanjutnya, lihat Menghapus tag untuk menghapus kunci dan nilai.
Kondisi dan Tag Identity and Access Management
Anda dapat menggunakan Tag dan kondisi IAM untuk memberikan binding peran bersyarat kepada pengguna dalam hierarki project. Saat Anda mengubah atau menghapus tag yang terlampir ke sebuah cluster, GKE dapat menghapus akses pengguna ke cluster tersebut jika kebijakan izin IAM dengan binding peran bersyarat telah diterapkan.
Izin untuk mencantumkan dan membuat cluster GKE diperiksa di level project, bukan di level cluster individual. Jika Anda menggunakan binding peran IAM bersyarat dengan Tag level cluster untuk membatasi akses ke cluster tertentu, pengguna tersebut mungkin mengalami error saat mencoba mencantumkan atau membuat cluster dalam project. Untuk menghindari error ini, lampirkan tag ke project induk dan gunakan binding peran bersyarat untuk memberikan daftar atau membuat akses. Untuk mengetahui informasi tentang peran dan izin, lihat referensi peran IAM.
Untuk mengetahui informasi selengkapnya tentang pemberian akses bersyarat di IAM, lihat Kondisi dan Tag Identity and Access Management.
Langkah berikutnya
- Pelajari cara menetapkan kebijakan organisasi dengan Tag.
- Pelajari lebih lanjut cara mengelola tag dan melampirkan tag ke resource.
- Lihat layanan lain yang mendukung tag.
- Pelajari cara menggunakan tag dengan IAM.