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
Di konsol Google Cloud , buka halaman Create a Kubernetes cluster.
Di panel navigasi, klik Advanced settings.
Di baris Shielded nodes, centang kotak Quick enable.
Konfigurasikan cluster Anda sesuai keinginan.
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:
- GKE akan segera membuat ulang bidang kontrol, dengan mengabaikan ketersediaan pemeliharaan.
- GKE membuat ulang worker node sebagai Shielded VM, dengan mempertimbangkan ketersediaan pemeliharaan. GKE menggunakan upgrade lonjakan untuk mengupdate setiap node pool. Hal ini bergantung pada ketersediaan resource. Menonaktifkan upgrade otomatis node tidak akan mencegah perubahan ini.
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
Buka halaman Google Kubernetes Engine di konsol Google Cloud .
Klik nama cluster yang ingin diubah.
Di bagian Security, di kolom Shielded GKE Nodes, klik edit Edit Shielded GKE Nodes.
Centang kotak Enable Shielded GKE Nodes.
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:
Buka halaman Google Kubernetes Engine di konsol Google Cloud .
Klik nama cluster yang ingin diperiksa.
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:
- GKE akan segera membuat ulang bidang kontrol, dengan mengabaikan ketersediaan pemeliharaan.
- GKE membuat ulang node pekerja sebagai VM yang tidak terlindungi, dengan mempertimbangkan ketersediaan pemeliharaan. GKE menggunakan upgrade lonjakan untuk mengupdate setiap node pool. Hal ini bergantung pada ketersediaan resource. Menonaktifkan upgrade otomatis node tidak akan mencegah perubahan ini.
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
Buka halaman Google Kubernetes Engine di konsol Google Cloud .
Klik nama cluster yang ingin diubah.
Di bagian Security, di kolom Shielded GKE Nodes, klik edit Edit Shielded GKE Nodes.
Hapus centang pada kotak Enable Shielded GKE Nodes.
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:
Buka halaman Google Kubernetes Engine di konsol Google Cloud .
Klik nama cluster yang ingin diubah.
Klik add_box Tambahkan Node Pool.
Dari menu navigasi, klik Keamanan.
Di bagian Opsi perlindungan, centang kotak Aktifkan boot aman.
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:
Buka halaman Google Kubernetes Engine di konsol Google Cloud .
Klik nama cluster yang ingin diubah.
Klik add_box Tambahkan Node Pool.
Dari panel navigasi, klik Security.
Di bagian Opsi perlindungan, hapus centang pada kotak Aktifkan pemantauan integritas.