Menggunakan Node GKE yang Terlindungi

Halaman ini menunjukkan cara menggunakan fitur Node GKE yang Terlindungi. Node GKE yang Terlindungi memberikan identitas dan integritas node yang kuat serta dapat diverifikasi untuk meningkatkan keamanan node Google Kubernetes Engine (GKE).

Untuk cluster GKE Autopilot, fitur Shielded GKE Node diaktifkan secara default dan tidak dapat diganti. Untuk cluster GKE Standard, fitur Shielded GKE Node diaktifkan secara default, tetapi dapat diganti.

Tentang Node GKE yang Terlindungi

Shielded GKE Node dibangun di atas Shielded VM Compute Engine. Tanpa Shielded GKE Node, penyerang dapat mengeksploitasi kerentanan dalam Pod untuk mengekstrak kredensial bootstrap dan meniru identitas node di cluster Anda, sehingga penyerang dapat mengakses secret cluster. Saat Node GKE yang Terlindungi diaktifkan, panel kontrol GKE secara kriptografis akan memverifikasi bahwa:

  • Setiap node di cluster Anda adalah virtual machine yang berjalan di pusat data Google.
  • Setiap node adalah bagian dari grup instance terkelola (MIG) yang disediakan untuk cluster.
  • Kubelet diberi sertifikat untuk node tempat kubelet dijalankan.

Hal ini membatasi kemampuan penyerang untuk meniru identitas node dalam cluster Anda meskipun penyerang dapat mengekstrak kredensial bootstrap node tersebut. Kredensial bootstrap, yang terdapat dalam metadata node (TPM_BOOTSTRAP_KEY), hanya memiliki kemampuan untuk membuat Permintaan Penandatanganan Sertifikat. Sertifikat tersebut tidak akan otomatis disetujui oleh bidang kontrol dan menjadi sertifikat worker node, kecuali jika kondisi yang tercantum sebelumnya terpenuhi dan CSR berisi pengesahan dari vTPM node. Anda juga dapat mencegah kubelet di node Anda membuat objek Node di cluster dengan mengaktifkan pembuatan node bidang kontrol (Pratinjau), yang membatasi dampak meskipun node disusupi setelah CSR disetujui.

Node bidang kontrol cluster GKE selalu menggunakan Shielded GKE Node, meskipun Anda menonaktifkan fitur ini di cluster. Mengaktifkan atau menonaktifkan Shielded GKE Node hanya memengaruhi apakah worker node yang menjalankan beban kerja Anda menggunakan fitur tersebut.

Harga

Tidak ada biaya tambahan untuk menjalankan Node GKE yang Terlindungi. Namun, Shielded GKE Node menghasilkan log sekitar 0,5 KB lebih banyak saat startup dibandingkan node standar. Silakan melihat halaman harga Cloud Logging untuk mengetahui detailnya.

Sebelum memulai

Sebelum memulai, pastikan Anda telah melakukan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Untuk 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 perintah gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung menjalankan perintah dalam dokumen ini.

Mengaktifkan Node GKE yang Terlindungi di cluster baru

Anda dapat membuat cluster baru dengan Shielded GKE Node yang diaktifkan menggunakan gcloud CLI atau konsol Google Cloud .

gcloud

Saat membuat cluster baru, tentukan opsi --enable-shielded-nodes:

gcloud container clusters create CLUSTER_NAME \
    --enable-shielded-nodes

Konsol

  1. Di konsol Google Cloud , buka halaman Create a Kubernetes cluster.

    Buka Create a Kubernetes cluster

  2. Di panel navigasi, klik Advanced settings.

  3. Di baris Shielded nodes, centang kotak Quick enable.

  4. Konfigurasikan cluster Anda sesuai keinginan.

  5. Klik Buat.

Silakan membaca artikel Membuat cluster untuk mengetahui detail selengkapnya tentang cara membuat cluster.

Mengaktifkan Node GKE yang Terlindungi di cluster yang sudah ada

Anda dapat mengaktifkan Shielded GKE Node di cluster yang ada menggunakan Google Cloud CLI atau konsol Google Cloud .

Cara GKE mengaktifkan Node GKE yang Terlindungi

Setelah Anda mengaktifkan Shielded GKE Node, worker node akan dibuat ulang sebagai Shielded VM. Node cluster akan dibuat ulang secara bertahap untuk meminimalkan periode nonaktif.

Setelah Anda mengaktifkan Shielded GKE Nodes, GKE akan mengupdate cluster Anda dengan langkah-langkah berikut:

Untuk mengetahui detail tentang perubahan khusus ini, temukan baris yang sesuai dalam tabel perubahan manual yang membuat ulang node menggunakan strategi upgrade node dan mematuhi kebijakan pemeliharaan. Untuk mempelajari lebih lanjut update node, lihat Merencanakan gangguan update node.

Mengaktifkan Node GKE yang Terlindungi

gcloud

Saat memperbarui cluster, tentukan opsi --enable-shielded-nodes:

gcloud container clusters update CLUSTER_NAME \
    --enable-shielded-nodes

Konsol

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

    Buka Google Kubernetes Engine

  2. Klik nama cluster yang ingin diubah.

  3. Di bagian Security, di kolom Shielded GKE Nodes, klik Edit Shielded GKE Nodes.

  4. Centang kotak Enable Shielded GKE Nodes.

  5. Klik Simpan Perubahan.

Memverifikasi bahwa Node GKE yang Terlindungi diaktifkan

Anda dapat memverifikasi bahwa cluster Anda menggunakan Shielded GKE Node dengan Google Cloud CLI atau konsol Google Cloud .

gcloud

Jelaskan cluster:

gcloud container clusters describe CLUSTER_NAME

Jika Shielded GKE Node diaktifkan, output perintah akan menyertakan baris berikut:

shieldedNodes:
  enabled: true

Konsol

Untuk memverifikasi bahwa sebuah cluster menggunakan Shielded GKE Node:

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

    Buka Google Kubernetes Engine

  2. Klik nama cluster yang ingin diperiksa.

  3. Di bagian Keamanan, di kolom Node GKE yang Terlindungi, verifikasi bahwa Node GKE yang Terlindungi sudah Diaktifkan.

Anda juga dapat memantau integritas Shielded VM yang mendasari node Anda. Silakan melihat Memantau Integritas di Instance Shielded VM untuk mengetahui prosedurnya.

Menonaktifkan Node GKE yang Terlindungi

Anda dapat menonaktifkan Shielded GKE Node dengan Google Cloud CLI atau konsol Google Cloud .

Cara GKE menonaktifkan Shielded GKE Node

Setelah Anda menonaktifkan Node GKE yang Terlindungi, GKE akan mengupdate cluster Anda dengan langkah-langkah berikut:

Untuk mengetahui detail tentang perubahan khusus ini, temukan baris yang sesuai dalam tabel perubahan manual yang membuat ulang node menggunakan strategi upgrade node dan mematuhi kebijakan pemeliharaan. Untuk mempelajari lebih lanjut update node, lihat Merencanakan gangguan update node.

Menonaktifkan Node GKE yang Terlindungi

gcloud

Saat memperbarui cluster, tentukan opsi --no-enable-shielded-nodes:

gcloud container clusters update CLUSTER_NAME \
    --no-enable-shielded-nodes

Konsol

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

    Buka Google Kubernetes Engine

  2. Klik nama cluster yang ingin diubah.

  3. Di bagian Security, di kolom Shielded GKE Nodes, klik Edit Shielded GKE Nodes.

  4. Hapus centang pada kotak Enable Shielded GKE Nodes.

  5. Klik Simpan Perubahan.

Integritas node

Secara opsional, Anda dapat mengonfigurasi pemeriksaan integritas node pada node pool untuk memberikan perlindungan rootkit dan bootkit yang ditingkatkan bagi node Anda. Shielded GKE Node, Booting Aman, dan Pemantauan Integritas adalah fitur independen yang masing-masing dapat diaktifkan atau dinonaktifkan secara terpisah.

Booting aman

Booting aman adalah setelan node pool yang mengautentikasi komponen booting VM node Anda, seperti kernel dan bootloader, selama proses booting. Booting aman dinonaktifkan secara default di node pool.

Sebelum Anda mengaktifkan booting aman di node pool, pertimbangkan hal berikut:

  • Mengaktifkan booting aman di node Ubuntu akan memblokir modul kernel pihak ketiga yang tidak ditandatangani agar tidak dimuat di node tersebut.
  • Mengaktifkan booting aman di node Container-Optimized OS tidak berpengaruh pada pemuatan modul kernel karena image node Container-Optimized OS mengontrol kemampuan untuk memuat modul kernel pihak ketiga secara terpisah dari booting aman. Jika Anda ingin mengubah setelan tersebut untuk node Container-Optimized OS, Konfigurasikan pemuatan modul kernel yang aman.

Untuk mengaktifkan booting aman, gunakan Google Cloud CLI atau konsol Google Cloud .

gcloud

Untuk mengaktifkan booting aman saat membuat cluster:

gcloud container clusters create CLUSTER_NAME \
    --shielded-secure-boot

Untuk mengaktifkan booting aman saat membuat node pool:

gcloud container node-pools create POOL_NAME \
    --shielded-secure-boot

Booting aman dinonaktifkan secara default. Anda dapat menonaktifkannya secara eksplisit saat membuat cluster atau node pool dengan opsi --no-shielded-secure-boot.

Konsol

Untuk mengaktifkan booting aman saat membuat node pool:

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

    Buka Google Kubernetes Engine

  2. Klik nama cluster yang ingin diubah.

  3. Klik Tambahkan Node Pool.

  4. Dari menu navigasi, klik Keamanan.

  5. Di bagian Opsi perlindungan, centang kotak Aktifkan boot aman.

  6. Klik Buat.

Pemantauan integritas

Pemantauan integritas adalah setelan node pool yang diaktifkan secara default di GKE. Anda dapat menonaktifkan pemantauan integritas dengan Google Cloud CLI atau konsol Google Cloud .

gcloud

Untuk menonaktifkan pemantauan integritas bagi komponen sistem saat membuat node pool:

gcloud container node-pools create POOL_NAME \
    --no-shielded-integrity-monitoring

Pemantauan integritas diaktifkan secara default. Anda dapat mengaktifkannya secara eksplisit saat membuat node pool dengan opsi --shielded-integrity-monitoring.

Konsol

Untuk menonaktifkan pemantauan integritas saat membuat node pool:

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

    Buka Google Kubernetes Engine

  2. Klik nama cluster yang ingin diubah.

  3. Klik Tambahkan Node Pool.

  4. Dari panel navigasi, klik Security.

  5. Di bagian Opsi perlindungan, hapus centang pada kotak Aktifkan pemantauan integritas.

Langkah berikutnya