Halaman ini menunjukkan cara menerapkan enkripsi data aktif di node dan workload menggunakan Confidential Google Kubernetes Engine Nodes.
Ringkasan
Anda dapat mengenkripsi workload dengan Confidential GKE Node atau mode Rahasia untuk Hyperdisk Balanced.
Confidential GKE Nodes
Confidential GKE Node dibangun dengan memanfaatkan Confidential VM Compute Engine menggunakan AMD Secure Encryption Virtualization (SEV), yang mengenkripsi konten memori VM yang sedang digunakan. Enkripsi yang sedang digunakan adalah salah satu dari tiga status enkripsi end-to-end.
Saat Anda mengaktifkan Confidential GKE Node di cluster atau di node pool, data dalam workload yang berjalan di node rahasia akan dienkripsi saat digunakan. Untuk visibilitas atas panel kontrol, gunakan Transparansi Akses.
Anda dapat mengaktifkan Confidential GKE Node saat melakukan salah satu tindakan berikut:
- Membuat cluster baru
- Membuat node pool baru
- Memperbarui node pool yang ada
Anda tidak dapat mengupdate cluster yang ada untuk mengubah setelan Confidential GKE Node pada level cluster.
Tabel berikut menunjukkan perilaku GKE yang berlaku saat Anda mengaktifkan Confidential GKE Node di level cluster atau di level node pool:
Setelan Confidential GKE Node | Cara mengonfigurasi | Perilaku |
---|---|---|
Level cluster | Buat cluster baru | Semua node di cluster pada node pool mana pun menggunakan
Confidential GKE Node. Anda tidak dapat melakukan tindakan berikut:
|
Level node pool |
|
Anda hanya dapat mengonfigurasi Confidential GKE Node untuk node pool jika fitur ini dinonaktifkan di level cluster. |
Mode rahasia untuk Hyperdisk Balanced
Anda juga dapat mengaktifkan Mode rahasia untuk Hyperdisk Balanced di penyimpanan disk booting yang mengenkripsi data Anda di enklave tambahan yang didukung hardware.
Anda dapat mengaktifkan Mode rahasia untuk Hyperdisk Balanced saat melakukan salah satu tindakan berikut:
- Buat cluster baru
- Membuat node pool baru
Anda tidak dapat mengupdate cluster atau node pool yang ada untuk mengubah setelan Mode rahasia untuk Hyperdisk Balanced.
Tabel berikut menunjukkan perilaku GKE yang berlaku saat Anda mengaktifkan mode Rahasia untuk setelan Hyperdisk Balanced di level cluster atau di level node pool:
Mode rahasia untuk setelan Hyperdisk Balanced | Cara mengonfigurasi | Perilaku |
---|---|---|
Level cluster | Buat cluster baru | Hanya node pool default di cluster yang akan menggunakan setelan Mode rahasia untuk Hyperdisk Balanced. Anda tidak dapat melakukan tindakan berikut:
|
Level node pool | Membuat node pool baru | Anda dapat mengonfigurasi setelan Mode rahasia untuk Hyperdisk Balanced untuk setiap node pool baru pada waktu pembuatan. Anda tidak dapat mengupdate node pool yang ada untuk menggunakan setelan Mode rahasia untuk Hyperdisk Balanced. |
Harga
Tidak ada biaya tambahan untuk men-deploy Confidential GKE Node, selain biaya Confidential VM Compute Engine. Namun, Confidential GKE Node mungkin menghasilkan data log yang sedikit lebih banyak saat startup dibandingkan node standar. Untuk mengetahui informasi tentang harga log, lihat Harga untuk Google Cloud Observability.
Ketersediaan
Confidential GKE Node tersedia dalam situasi berikut:
Confidential GKE Node hanya tersedia di zona dan region yang menyediakan instance N2D atau instance C2D.
Node GKE Rahasia dapat digunakan dengan Container-Optimized OS dan Container-Optimized OS dengan containerd (
cos_containerd
).
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
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.
Mengaktifkan Confidential GKE Node di cluster
Anda dapat membuat cluster baru dengan Confidential GKE Node yang diaktifkan menggunakan gcloud CLI atau Konsol Google Cloud. Jika Anda mengaktifkan Confidential GKE Node di level cluster, semua node dalam cluster adalah Confidential VMs.
gcloud
Saat membuat cluster baru, tentukan opsi --enable-confidential-nodes
di gcloud CLI:
gcloud container clusters create CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--enable-confidential-nodes
Ganti kode berikut:
- CLUSTER_NAME: nama cluster baru.
- MACHINE_TYPE: jenis mesin untuk node pool default cluster Anda, yang harus berupa jenis mesin N2D atau jenis mesin C2D.
Konsol
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik add_box Create.
Di bagian Standard, klik Konfigurasi.
Dari panel navigasi, pada Cluster, klik Keamanan.
Centang kotak Aktifkan Confidential GKE Node.
Konfigurasi cluster Anda sesuai kebutuhan.
Klik Buat.
Lihat Membuat cluster regional untuk mengetahui detail selengkapnya tentang cara membuat cluster.
Setelah membuat cluster dengan Confidential GKE Node, semua node pool yang dibuat di cluster ini hanya dapat menggunakan node rahasia. Anda tidak dapat membuat node pool reguler di cluster yang mengaktifkan Confidential GKE Node. Anda juga tidak dapat menonaktifkan Confidential GKE Node di setiap node pool saat mengaktifkan Confidential GKE Node di level cluster.
Untuk setiap node pool yang dibuat dengan setelan Mode rahasia untuk Hyperdisk Balanced, hanya node dalam node pool yang dibatasi untuk konfigurasi penyiapan. Untuk setiap node pool baru yang dibuat di cluster, Anda harus menyiapkan mode rahasia saat pembuatan.
Mengaktifkan Confidential GKE Node di node pool
Anda dapat mengaktifkan Confidential GKE Node pada node pool tertentu jika Confidential GKE Node dinonaktifkan di tingkat cluster.
Mode rahasia untuk setelan Hyperdisk Balanced harus ditentukan selama permintaan pembuatan node pool.
Membuat node pool baru
Untuk membuat node pool baru dengan Confidential GKE Node yang diaktifkan, jalankan perintah berikut:
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--enable-confidential-nodes
Ganti kode berikut:
- NODE_POOL_NAME: nama node pool baru.
- CLUSTER_NAME: nama cluster Anda.
- MACHINE_TYPE: jenis mesin untuk node pool Anda, yang harus berupa jenis mesin N2D atau jenis mesin C2D.
Memperbarui node pool yang ada
Anda dapat mengaktifkan Confidential GKE Node pada node pool yang ada yang menggunakan jenis mesin N2D atau jenis mesin C2D. Jalankan perintah berikut:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-confidential-nodes
Ganti kode berikut:
- NODE_POOL_NAME: nama node pool Anda.
- CLUSTER_NAME: nama cluster Anda.
Perubahan ini memerlukan pembuatan ulang node, yang dapat menyebabkan gangguan pada workload yang sedang berjalan. Untuk mengetahui detail tentang perubahan spesifik ini, temukan baris yang sesuai dalam tabel perubahan manual yang membuat ulang node menggunakan strategi upgrade node tanpa mematuhi kebijakan pemeliharaan. Untuk mempelajari update node lebih lanjut, lihat Merencanakan gangguan update node.
Memastikan Confidential GKE Node diaktifkan
Di cluster
Anda dapat memverifikasi bahwa cluster Anda menggunakan Confidential GKE Node dengan gcloud CLI atau Konsol Google Cloud.
gcloud
Jelaskan cluster:
gcloud container clusters describe CLUSTER_NAME
Jika Confidential GKE Node diaktifkan, output perintah ini akan menyertakan baris berikut:
confidentialNodes:
enabled: true
Konsol
Buka halaman Google Kubernetes Engine di Konsol Google Cloud.
Klik nama cluster yang ingin diperiksa.
Di bagian Keamanan, di kolom Confidential GKE Node, pastikan Confidential GKE Node Diaktifkan.
Pada node pool
Untuk memastikan bahwa node pool Anda menggunakan Confidential GKE Node, jalankan perintah berikut:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME
Jika Confidential GKE Node diaktifkan, output-nya akan mirip dengan berikut ini:
confidentialNodes:
enabled: true
Jika setelan Mode rahasia untuk Hyperdisk Balanced diaktifkan, outputnya akan mirip dengan berikut:
enableConfidentialStorage: true
Pada node
Untuk memvalidasi kerahasiaan node tertentu, Anda dapat:
- Memvalidasi bahwa AMD SEV diaktifkan, atau
- Memvalidasi bahwa Confidential VMs menggunakan Cloud Monitoring.
Menjalankan aplikasi di Confidential GKE Node
Pendekatan Google terhadap Confidential Computing adalah untuk memungkinkan lift-and-shift yang mudah bagi aplikasi yang ada. Workload GKE yang Anda jalankan saat ini dapat berjalan di Confidential GKE Node tanpa perubahan kode.
Secara opsional, jika ingin menyatakan secara deklaratif bahwa workload Anda hanya boleh
berjalan di cluster dengan Confidential GKE Node, Anda dapat menggunakan
pemilih node cloud.google.com/gke-confidential-nodes
.
Berikut adalah contoh spesifikasi Pod yang menggunakan pemilih ini:
apiVersion: v1
kind: Pod
spec:
containers:
- name: my-confidential-app
image: us-docker.pkg.dev/myproject/myrepo/my-confidential-app
nodeSelector:
cloud.google.com/gke-confidential-nodes: "true"
Menetapkan batasan kebijakan organisasi
Anda dapat menentukan batasan kebijakan organisasi untuk memastikan bahwa semua resource VM yang dibuat di seluruh organisasi adalah instance Confidential VMs.
Untuk GKE, Anda dapat menyesuaikan batasan Batasi Non-Confidential Computing agar mewajibkan semua cluster baru dibuat dengan mengaktifkan Confidential GKE Node. Tambahkan nama Layanan API container.googleapis.com
ke daftar tolak saat menegakkan batasan kebijakan organisasi, misalnya:
gcloud resource-manager org-policies deny \
constraints/compute.restrictNonConfidentialComputing compute.googleapis.com container.googleapis.com \
--project=PROJECT_ID
Ganti PROJECT_ID dengan project ID Anda.
Membuat PersistentVolume untuk Mode rahasia untuk Hyperdisk Balanced
Untuk panduan tentang nilai yang diizinkan untuk throughput atau IOPS, lihat Merencanakan level performa untuk volume Hyperdisk.
Contoh berikut menunjukkan cara membuat Mode rahasia untuk StorageClass Hyperdisk Balanced untuk setiap jenis Hyperdisk:
Hyperdisk Balanced
Simpan manifes berikut dalam file bernama
confidential-hdb-example-class.yaml
:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: balanced-storage provisioner: pd.csi.storage.gke.io volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true parameters: type: hyperdisk-balanced provisioned-throughput-on-create: "250Mi" provisioned-iops-on-create: "7000" enable-confidential-storage: true disk-encryption-kms-key: "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/HSM_KEY_NAME"
Ganti kode berikut:
KMS_PROJECT_ID
: project yang memiliki kunci Cloud KMSREGION
: region tempat disk beradaKEY_RING
: nama key ring yang menyertakan kunciHSM_KEY_NAME
: nama kunci HSM yang digunakan untuk mengenkripsi disk
Buat StorageClass:
kubectl create -f hdb-example-class.yaml
Buat Klaim Volume Persisten Hyperdisk untuk GKE yang menggunakan mode Rahasia untuk volume Hyperdisk Balanced.
Untuk menemukan nama StorageClass yang tersedia di cluster Anda, jalankan perintah berikut:
kubectl get sc
Batasan
Confidential GKE Node memiliki batasan berikut:
- Semua batasan instance Confidential VMs Compute Engine berlaku untuk Confidential GKE Node.
- Confidential GKE Node yang memiliki jenis mesin C2D hanya dapat menggunakan penyediaan otomatis node di GKE versi 1.24 atau yang lebih baru.
- Confidential GKE Node hanya mendukung PersistentVolumes yang didukung oleh persistent disk jika panel kontrol Anda menjalankan GKE versi 1.22 atau yang lebih baru. Untuk mendapatkan petunjuk, lihat artikel Menggunakan Driver CSI persistent disk Compute Engine .
- Confidential GKE Node tidak kompatibel dengan GPU.
- Confidential GKE Node tidak kompatibel dengan sole-tenant node.
- Confidential GKE Node hanya mendukung penggunaan penyimpanan efemeral di SSD lokal, tetapi tidak mendukung penggunaan SSD lokal secara umum.
- Hanya node Container-Optimized OS yang didukung. Node Ubuntu dan Windows tidak didukung.
- Cluster Autopilot tidak mendukung Confidential GKE Node.
- Lihat bagian Batasan untuk mengetahui informasi tambahan tentang Mode rahasia untuk Hyperdisk Balanced.
- Mode rahasia untuk Hyperdisk Balanced hanya didukung di Confidential GKE Node.
Batasan migrasi langsung
Jenis mesin VM Rahasia Compute Engine tertentu mendukung migrasi langsung, yang meminimalkan potensi gangguan workload dari peristiwa pemeliharaan host. Migrasi langsung terjadi di versi GKE berikut:
- 1.27.10-gke.1218000 dan yang lebih baru
- 1.28.6-gke.1393000 dan yang lebih baru
- 1.29.1-gke.1621000 dan yang lebih baru
Jika kumpulan node Anda sudah menjalankan versi yang didukung saat migrasi langsung ditambahkan, upgrade kumpulan node secara manual ke versi yang sama atau versi yang didukung yang berbeda. Mengupgrade node akan memicu pembuatan ulang node, dan node baru telah mengaktifkan migrasi langsung.
Untuk mengetahui detail tentang jenis mesin Compute Engine yang mendukung migrasi langsung, lihat Konfigurasi yang didukung.
Jika peristiwa pemeliharaan host terjadi di node yang tidak mendukung migrasi langsung, node akan memasuki status NotReady
. Pod yang sedang berjalan akan mengalami gangguan hingga node
siap lagi. Jika pemeliharaan memerlukan waktu lebih dari lima menit, GKE mungkin mencoba membuat ulang Pod di node lain.
Menonaktifkan Confidential GKE Node
Penonaktifan Confidential GKE Node hanya dapat dilakukan untuk node pool yang telah mengaktifkan Confidential GKE Node. Jika cluster dibuat dengan Confidential GKE Node, Anda tidak dapat menonaktifkan fitur tersebut. Jalankan perintah berikut untuk menonaktifkan Confidential GKE Node di node pool:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-confidential-nodes
Perubahan ini memerlukan pembuatan ulang node, yang dapat menyebabkan gangguan pada workload yang sedang berjalan. Untuk mengetahui detail tentang perubahan spesifik ini, temukan baris yang sesuai dalam tabel perubahan manual yang membuat ulang node menggunakan strategi upgrade node tanpa mematuhi kebijakan pemeliharaan. Untuk mempelajari update node lebih lanjut, lihat Merencanakan gangguan update node.
Langkah selanjutnya
- Pelajari Confidential VMs lebih lanjut.
- Pelajari image node lebih lanjut.
- Pelajari enkripsi dalam penyimpanan Google Cloud lebih lanjut.
- Pelajari engkripsi Google Cloud dalam pengiriman lebih lanjut.
- Pelajari kunci enkripsi yang dikelola pelanggan (CMEK) lebih lanjut.
- Pelajari enkripsi secret lapisan aplikasi lebih lanjut