Mengenkripsi data workload aktif dengan Confidential GKE Node


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
  • Membuat node pool Standar baru
  • Memperbarui node pool Standar yang ada
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:
  • Menonaktifkan setelan Mode rahasia untuk Hyperdisk Balanced untuk node pool yang sudah ada di cluster
  • Mengaktifkan setelan Mode rahasia untuk Hyperdisk Balanced di cluster yang ada
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:

    1. 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.
    2. 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:

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:

  • CLUSTER_NAME: nama cluster baru.
  • MACHINE_TYPE: jenis mesin untuk node pool default cluster Anda, yang harus berupa jenis mesin N2D, C2D, atau C3D.

Konsol

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

    Buka Google Kubernetes Engine

  2. Klik Create.

  3. Di bagian Standard, klik Konfigurasi.

  4. Dari panel navigasi, pada Cluster, klik Keamanan.

  5. Centang kotak Aktifkan Confidential GKE Node.

  6. Konfigurasi cluster Anda sesuai kebutuhan.

  7. 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

  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 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:

  1. Temukan nama node:

    kubectl get nodes
    
  2. 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:

  1. Memvalidasi bahwa AMD SEV diaktifkan, atau
  2. 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

  1. 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 KMS
    • REGION: region tempat disk berada
    • KEY_RING: nama key ring yang menyertakan kunci
    • HSM_KEY_NAME: nama kunci HSM yang digunakan untuk mengenkripsi disk
  2. Buat StorageClass:

    kubectl create -f hdb-example-class.yaml
    
  3. 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:

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