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 Node GKE yang Terlindungi diaktifkan secara default dan tidak dapat diabaikan. Untuk cluster GKE Standard, fitur Node GKE yang Terlindungi diaktifkan secara default, tetapi dapat diabaikan.

Tentang Node GKE yang Terlindungi

Node GKE yang Terlindungi dibangun di atas Shielded VM Compute Engine. Tanpa Node GKE yang Terlindungi, 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 Managed Instance Group (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 Certificate Signing Requests. Sertifikat tersebut tidak akan otomatis disetujui oleh panel kontrol dan menjadi sertifikat node yang berfungsi kecuali jika kondisi yang tercantum sebelumnya terpenuhi dan CSR berisi pengesahan dari vTPM node.

Node panel kontrol cluster GKE selalu menggunakan Node GKE yang Terlindungi, meskipun Anda menonaktifkan fitur tersebut di cluster. Mengaktifkan atau menonaktifkan Node GKE yang Terlindungi hanya memengaruhi apakah node pekerja yang menjalankan workload Anda menggunakan fitur tersebut.

Harga

Tidak ada biaya tambahan untuk menjalankan Node GKE yang Terlindungi. Namun, Node GKE yang Terlindungi 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
  • 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 perintah gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung perintah yang dijalankan dalam dokumen ini.

Mengaktifkan Node GKE yang Terlindungi di cluster baru

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

gcloud

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

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

Konsol

  1. Dikonsol, buka halaman Create a Kubernetes cluster. Google Cloud

    Buka Create a Kubernetes cluster

  2. Dari panel navigasi, pada Cluster, klik Security.

  3. Pilih kotak centang Enable Shielded GKE Nodes.

  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 Node GKE yang Terlindungi di cluster yang ada menggunakan Google Cloud CLI atau Google Cloud konsol.

Cara GKE mengaktifkan Node GKE yang Terlindungi

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

Setelah Anda mengaktifkan 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 perubahan manual yang membuat ulang node menggunakan strategi upgrade node dan kebijakan pemeliharaan yang sesuai tabel. Untuk mempelajari lebih lanjut update node, lihat Merencanakan gangguan update node.

Mengaktifkan Node GKE yang Terlindungi

gcloud

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

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

Konsol

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

    Buka Google Kubernetes Engine

  2. Klik nama cluster yang ingin diubah.

  3. Di bagian Keamanan, di kolom Node GKE yang Terlindungi, klik Edit Node GKE yang Terlindungi.

  4. Pilih kotak centang Enable Shielded GKE Nodes.

  5. Klik Simpan Perubahan.

Memverifikasi bahwa Node GKE yang Terlindungi diaktifkan

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

gcloud

Jelaskan cluster:

gcloud container clusters describe CLUSTER_NAME

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

shieldedNodes:
  enabled: true

Konsol

Untuk memastikan bahwa sebuah cluster menggunakan Node GKE yang Terlindungi:

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

    Buka Google Kubernetes Engine

  2. Klik nama cluster yang ingin diperiksa.

  3. Di bagian Keamanan, di kolom Node GKE yang Terlindungi, pastikan Node GKE yang Terlindungi 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 Node GKE yang Terlindungi dengan Google Cloud CLI atau Google Cloud konsol.

Cara GKE menonaktifkan Node GKE yang Terlindungi

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 perubahan manual yang membuat ulang node menggunakan strategi upgrade node dan kebijakan pemeliharaan yang sesuai tabel. Untuk mempelajari lebih lanjut update node, lihat Merencanakan gangguan update node.

Menonaktifkan Node GKE yang Terlindungi

gcloud

Saat mengupdate 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 Google Cloud konsol.

    Buka Google Kubernetes Engine

  2. Klik nama cluster yang ingin diubah.

  3. Di bagian Keamanan, di kolom Node GKE yang Terlindungi, klik Edit Node GKE yang Terlindungi.

  4. Hapus centang pada kotak Aktifkan Node GKE yang Terlindungi.

  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. Node GKE yang Terlindungi, Booting Aman, dan Pemantauan Integritas adalah fitur independen yang dapat diaktifkan atau dinonaktifkan satu per satu.

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 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 akan memengaruhi 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, Konfigurasi pemuatan modul kernel yang aman.

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

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 Google Cloud konsol.

    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 booting 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 Google Cloud konsol.

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 Google Cloud konsol.

    Buka Google Kubernetes Engine

  2. Klik nama cluster yang ingin diubah.

  3. Klik Tambahkan Node Pool.

  4. Dari panel navigasi, klik Keamanan.

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

Langkah berikutnya