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 key-value pair yang dapat Anda gunakan untuk menganotasi dan mengelola resource Google Cloud di level organisasi atau project. Anda dapat menggunakan Tag untuk mengatur resource dan menerapkan kebijakan secara kondisional, seperti kebijakan firewall atau 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 mungkin menggunakan Tag di GKE untuk situasi seperti berikut:
- Terapkan kebijakan firewall jaringan secara bersyarat ke node tertentu. Misalnya, menolak traffic masuk dari internet publik ke semua node cluster dalam lingkungan staging atau pengujian. Untuk mengetahui petunjuknya, lihat Menerapkan kebijakan firewall jaringan secara selektif di GKE.
- Memberikan peran IAM secara bersyarat berdasarkan Tag. Misalnya, memberi kontraktor akses ke lingkungan tertentu secara otomatis yang biasanya hanya tersedia untuk karyawan purnawaktu. Untuk mendapatkan petunjuk, lihat bagian lain dalam dokumen ini.
- Mengaudit dan menganalisis informasi penagihan berdasarkan Tag yang diterapkan di tingkat project atau organisasi.
Cara kerjanya
Khusus untuk penerapan kebijakan firewall jaringan, Anda dapat membuat tag dan secara eksplisit menetapkan tag tersebut untuk penggunaan firewall. Untuk tujuan lainnya, Anda dapat membuat tag tanpa menyetel penetapan firewall.
Setelah membuat tag, lampirkan tag tersebut ke resource GKE sebagai pasangan nilai kunci. Untuk kebijakan firewall jaringan, Anda menggunakan GKE API, sedangkan untuk semua tujuan lainnya, Anda menggunakanTags API.
Untuk setiap kunci, Anda dapat melampirkan satu nilai ke
resource. Misalnya, jika Anda melampirkan env:dev
ke cluster GKE, Anda juga tidak dapat menambahkan env:prod
atau env:test
. 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. |
Menolak traffic masuk secara otomatis dari internet publik ke semua lingkungan staging atau pengujian |
Network tags |
Untuk mempelajari lebih lanjut, lihat Menggunakan tag jaringan untuk menerapkan aturan firewall ke node. |
Menolak traffic masuk secara otomatis 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
initialize
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.
Membuat kunci dan nilai tag
Agar dapat melampirkan tag ke resource GKE, Anda perlu membuat tag dan mengonfigurasi nilainya. Untuk membuat kunci dan nilai tag, lihat Membuat tag dan Menambahkan nilai tag.
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, atau Tags API.
gcloud
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
: Untuk cluster regional, tentukan region komputasi, sepertius-central1
. Untuk cluster zona, tentukan zona komputasi, sepertius-central1-a
.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
: ID project Google Cloud 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.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 Save.
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, seperti us-central1
.
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
: ID project Google Cloud 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 yang 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"
}
}
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, sepertius-central1
. Untuk cluster zona, tentukan zona komputasi, sepertius-central1-a
.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
: ID project Google Cloud 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
: ID project Google Cloud Anda.CLUSTER_NAME
: Nama cluster Anda.
Outputnya mirip dengan hal berikut ini:
"tagBindings": [
{
"name": "tagBindings/%2F%2Fcontainer.googleapis.com%2Fprojects%2Ftags-bugbash-project%2Flocations%2Fus-central1%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, sepertius-central1
. Untuk cluster zona, tentukan zona komputasi, sepertius-central1-a
.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
: ID project Google Cloud 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 Save.
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 secara bersyarat kepada pengguna dalam hierarki project Anda. Saat Anda mengubah atau menghapus tag yang terlampir ke sebuah cluster, GKE dapat menghapus akses pengguna ke cluster tersebut jika kebijakan 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 tingkat cluster untuk membatasi akses ke cluster tertentu, pengguna tersebut mungkin akan 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 Tag dan kondisi Pengelolaan Akses dan Identitas.
Langkah selanjutnya
- 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.