Mengelola resource GKE menggunakan Tag


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)
  • Terapkan ke resource cluster dengan menggunakan Tags API
  • Atur resource untuk melacak penggunaan dan penagihan
  • Menerapkan kebijakan IAM secara bersyarat
  • Mengontrol akses ke Tag tertentu dengan IAM

Untuk mempelajari lebih lanjut, lihat Ringkasan tag.

Memberikan peran IAM secara bersyarat untuk mengontrol akses ke resource yang memiliki Tag tertentu
Tag (firewall)
  • Menerapkan ke cluster atau node pool menggunakan GKE API
  • Terapkan kebijakan firewall jaringan Cloud Next Generation Firewall secara bersyarat.
  • Mengontrol akses ke Tag tertentu dengan IAM
  • GKE memasangkan key-value pair ke VM Compute Engine yang mendasarinya.

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
  • Menerapkan ke cluster atau node pool menggunakan GKE API
  • String sederhana tanpa kontrol akses IAM
  • Menggunakan aturan firewall VPC secara bersyarat
  • GKE melampirkan key-value pair ke VM Compute Engine yang mendasarinya

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
  • Menerapkan ke cluster atau node pool menggunakan GKE API
  • Atur resource untuk melacak penggunaan dan penagihan

Untuk mempelajari lebih lanjut, lihat Label cluster.

Membedakan cluster yang dimiliki oleh pusat biaya atau tim tertentu di organisasi Anda.
Label Kubernetes
  • Menerapkan ke objek API Kubernetes
  • Mengaitkan komponen dan resource cluster satu sama lain dan mengelola siklus proses resource.

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.

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, seperti us-central1. Untuk cluster zona, tentukan zona komputasi, seperti us-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

  1. Buka halaman Google Kubernetes Engine di Konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Di daftar cluster, klik nama cluster yang ingin diubah.

  3. Di bagian Metadata, di samping Tag, klik Edit tag.

  4. Jika organisasi Anda tidak muncul di panel Tag, klik Pilih cakupan. Pilih organisasi Anda dan klik Buka.

  5. Di panel Tag, pilih Tambahkan tag.

  6. Pilih kunci untuk tag yang ingin Anda lampirkan dari daftar. Anda dapat memfilter daftar dengan mengetik kata kunci.

  7. Pilih nilai untuk tag yang ingin dilampirkan dari daftar. Anda dapat memfilter daftar dengan mengetik kata kunci.

  8. Klik Save.

  9. 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, seperti us-central1. Untuk cluster zona, tentukan zona komputasi, seperti us-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

  1. Buka halaman Google Kubernetes Engine di Konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Di daftar cluster, klik nama cluster yang ingin Anda lihat.

  3. 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, seperti us-central1. Untuk cluster zona, tentukan zona komputasi, seperti us-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

  1. Buka halaman Google Kubernetes Engine di Konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Di daftar cluster, klik nama cluster yang ingin diubah.

  3. Di bagian Metadata, di samping Tag, klik Edit tag.

  4. Di panel Tag, di samping tag yang ingin dilepas, klik Hapus item.

  5. Klik Save.

  6. 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