GKE di VMware versi 1.10 mendukung enkripsi rahasia tanpa memerlukan KMS eksternal (Key Management Service), atau dependensi lainnya.
Aktifkan enkripsi rahasia yang selalu aktif
Enkripsi rahasia yang selalu aktif berfungsi dengan secara otomatis menghasilkan kunci enkripsi yang digunakan untuk mengenkripsi secret sebelum disimpan di database etcd untuk cluster tersebut. Algoritma enkripsinya adalah A256GCM (AES GCM menggunakan kunci 256-bit).
Versi kunci adalah nomor versi untuk menunjukkan kunci yang saat ini digunakan.
Anda dapat mengaktifkan enkripsi rahasia setelah cluster dibuat.
Untuk cluster admin:
Edit file konfigurasi cluster admin untuk menambahkan bagian
secretsEncryption
.Jalankan perintah
gkectl update
.gkectl update admin --config ADMIN_CLUSTER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Untuk cluster pengguna:
Edit file konfigurasi cluster pengguna untuk menambahkan bagian
secretsEncryption
.Jalankan perintah
gkectl update
.gkectl update cluster --config USER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Ganti kode berikut:
ADMIN_KUBECONFIG
dengan jalur file kubeconfig cluster admin Anda.ADMIN_CLUSTER_CONFIG
dengan jalur file konfigurasi cluster admin Anda.USER_CLUSTER_CONFIG
dengan jalur file konfigurasi cluster pengguna Anda.
Perintah gkectl update
yang disediakan di bagian ini juga dapat digunakan untuk update lain pada cluster terkait.
Penyimpanan kunci
Kunci enkripsi untuk cluster admin disimpan di disk data cluster admin. Disk ini terpasang pada mesin master admin di /opt/data
, dan kunci enkripsi dapat ditemukan di /opt/data/gke-k8s-kms-plugin/generatedkeys/
. Kunci ini harus dicadangkan untuk mempertahankan akses ke rahasia terenkripsi yang digunakan oleh kunci tersebut.
Rotasi kunci
Untuk merotasi kunci enkripsi yang ada untuk cluster, tambahkan keyVersion
di file konfigurasi cluster admin atau file konfigurasi cluster pengguna yang sesuai, dan jalankan perintah gkectl update
yang sesuai. Tindakan ini akan membuat kunci baru yang cocok dengan nomor versi baru, mengenkripsi ulang setiap secret, dan menghapus yang lama dengan aman. Semua secret baru berikutnya akan dienkripsi menggunakan kunci enkripsi baru.
Nonaktifkan enkripsi rahasia yang selalu aktif
Untuk menonaktifkan enkripsi rahasia di cluster yang ada, tambahkan kolom disabled: true
. Selanjutnya, jalankan perintah gkectl update
yang sesuai. Update ini mendekripsi setiap secret yang ada dan menyimpan setiap secret dalam teks biasa. Semua secret baru berikutnya akan disimpan dalam teks biasa.
secretsEncryption: mode: GeneratedKey generatedKey: keyVersion: KEY_VERSION disabled: true