Halaman ini menunjukkan cara menerapkan enkripsi data yang sedang digunakan di node dan workload menggunakan Confidential Google Kubernetes Engine Nodes. Menerapkan enkripsi dapat membantu meningkatkan keamanan workload Anda.
Halaman ini ditujukan untuk spesialis Keamanan yang menerapkan langkah-langkah keamanan di GKE. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud , lihat Peran dan tugas pengguna GKE Enterprise yang umum.
Sebelum membaca halaman ini, pastikan Anda sudah memahami konsep data yang sedang digunakan.
Apa yang dimaksud dengan Confidential GKE Node?
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.
Confidential GKE Node tidak mengubah tindakan keamanan yang diterapkan GKE ke bidang kontrol cluster. Untuk mempelajari langkah-langkah ini, lihat Keamanan bidang kontrol. Untuk visibilitas terkait siapa yang mengakses panel kontrol di project Google Cloud, gunakan Transparansi Akses.
Anda dapat melakukan hal berikut untuk mengaktifkan Confidential GKE Node:
- Buat cluster baru
- Men-deploy workload dengan penyediaan otomatis node
- Membuat node pool
- 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:
Setelan Confidential GKE Node | Cara mengonfigurasi | Perilaku |
---|---|---|
Tingkat cluster | Membuat cluster mode Autopilot atau Standar baru | Semua node menggunakan Confidential GKE Node. Operasi ini tidak dapat dibatalkan. Anda tidak dapat mengganti setelan untuk setiap node. Dalam cluster GKE Autopilot, semua node secara otomatis menggunakan seri mesin default untuk class komputasi Balanced, yaitu N2D. |
Level node pool |
|
GKE mengenkripsi konten memori node dalam node pool tersebut. Hal ini hanya dapat dilakukan jika Confidential GKE Node 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
Harga berikut berlaku:
Autopilot:
- Anda akan dikenai biaya berdasarkan harga class komputasi Balanced karena mengaktifkan Confidential GKE Node akan mengubah seri mesin default di cluster menjadi N2D. Untuk mengetahui detail harga, lihat Harga Autopilot.
- Anda akan dikenai biaya untuk Confidential GKE Node selain harga GKE Autopilot. Untuk mengetahui detailnya, lihat bagian "Harga Confidential GKE Node di GKE Autopilot" di Harga VM Rahasia.
Standar: 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 sebagai berikut:
- Autopilot: Tersedia di GKE versi 1.30.2 dan yang lebih baru.
Standar: Tersedia dengan seri mesin N2D atau seri mesin C2D.
Confidential GKE Node hanya tersedia di zona dan region yang menyediakan instance N2D, instance C2D, atau instance C3D.
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
.
Menggunakan Confidential GKE Node di Autopilot
Anda dapat mengaktifkan Confidential GKE Node untuk seluruh cluster Autopilot, yang menjadikan setiap node sebagai node rahasia. Semua workload Anda berjalan di node rahasia tanpa memerlukan perubahan pada manifes workload. Mengaktifkan Confidential GKE Node akan mengubah seri mesin default di cluster menjadi N2D.
Mengaktifkan Confidential GKE Node di cluster Autopilot baru
Jalankan perintah berikut:
gcloud container clusters create-auto CLUSTER_NAME \
--location=LOCATION \
--enable-confidential-nodes
Ganti kode berikut:
CLUSTER_NAME
: nama cluster Autopilot.LOCATION
: lokasi Compute Engine untuk cluster.
Cluster harus menjalankan versi 1.30.2 atau yang lebih baru. Untuk menetapkan versi tertentu saat Anda membuat cluster, lihat Menetapkan versi dan saluran rilis cluster Autopilot baru.
Menggunakan Confidential GKE Node dalam mode Standard
Anda dapat mengaktifkan Confidential GKE Node di level cluster atau di level node pool dalam Mode standar.
Mengaktifkan Confidential GKE Node di cluster Standard
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 VM.
Anda juga dapat menggunakan Confidential GKE Node di cluster yang menggunakan penyediaan otomatis node untuk menskalakan node pool secara otomatis.
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:
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, C2D, atau C3D.
Memperbarui node pool yang ada
Anda dapat mengaktifkan Confidential GKE Node pada node pool yang ada yang menggunakan jenis mesin N2D, C2D, atau C3D. 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 mengikuti kebijakan pemeliharaan. Untuk mempelajari update node lebih lanjut, lihat Merencanakan gangguan update node.
Menempatkan beban kerja hanya di node pool Confidential GKE Node
Jika Anda mengaktifkan Confidential GKE Node di level cluster, semua workload Anda akan berjalan di node rahasia. Anda tidak perlu melakukan perubahan pada
manifes. Namun, jika Anda hanya mengaktifkan Confidential GKE Node untuk node pool tertentu, Anda harus menyatakan secara deklaratif bahwa workload Anda hanya boleh berjalan di node pool dengan Confidential GKE Node. Gunakan
pemilih node cloud.google.com/gke-confidential-nodes
,
seperti dalam contoh berikut:
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"
Memastikan Confidential GKE Node diaktifkan
Anda dapat memeriksa apakah cluster atau node Anda menggunakan Node GKE Rahasia dengan memeriksa cluster atau node.
Di cluster mode Autopilot atau mode Standar
Anda dapat memverifikasi bahwa cluster Autopilot atau Standar Anda menggunakan Confidential GKE Node dengan gcloud CLI atau konsolGoogle 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 mode Autopilot atau mode Standar
Untuk memverifikasi apakah node Autopilot atau Standard tertentu menggunakan Confidential GKE Node, lakukan tindakan berikut:
Temukan nama node:
kubectl get nodes
Deskripsikan node:
kubectl describe NODE_NAME
Ganti
NODE_NAME
dengan nama node yang akan diperiksa.
Jika Confidential GKE Node diaktifkan, output-nya akan menyertakan hal berikut:
# lines omitted for clarity
cloud.google.com/gke-confidential-nodes=true
Di node pool mode Standard
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 setiap node mode Standar
Untuk memvalidasi kerahasiaan node tertentu di cluster Standard, Anda dapat melakukan hal berikut:
- Memvalidasi bahwa AMD SEV diaktifkan, atau
- Memvalidasi bahwa Confidential VMs menggunakan Cloud Monitoring.
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.
Menonaktifkan Confidential GKE Node
Anda hanya dapat menonaktifkan Confidential GKE Node di node pool mode Standar. Jika node pool berada dalam cluster yang menggunakan Confidential GKE Node di level cluster, Anda tidak dapat menonaktifkan fitur tersebut di level node pool.
- 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 node pool Anda sudah menjalankan versi yang didukung saat migrasi aktif ditambahkan, upgrade node pool 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 mengikuti 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 lebih lanjut enkripsi dalam penyimpanan Google Cloud .
- Pelajari lebih lanjut enkripsi Google Cloud dalam pengiriman.
- Pelajari kunci enkripsi yang dikelola pelanggan (CMEK) lebih lanjut.
- Pelajari enkripsi secret lapisan aplikasi lebih lanjut