Halaman ini menunjukkan cara merotasi kunci enkripsi boot disk etcd dan bidang kontrol yang Anda konfigurasi untuk otoritas bidang kontrol GKE. Dokumen ini ditujukan untuk administrator cluster dan Security engineer.
Sebelum membaca dokumen ini, pahami konsep otoritas bidang kontrol GKE berikut:
Merencanakan rotasi kunci
Dokumen ini menunjukkan cara merotasi komponen kredensial berikut di bidang kontrol Anda:
- Kunci enkripsi untuk etcd dan boot disk bidang kontrol.
- Kunci enkripsi untuk cadangan internal etcd yang digunakan Google Cloud untuk disaster recovery.
Anda juga dapat merotasi certificate authority (CA) yang dikelola pelanggan dan kunci penandatanganan akun layanan yang Anda konfigurasi dengan otoritas bidang kontrol GKE. Untuk mengetahui informasi selengkapnya, lihat Merotasi CA dan kunci penandatanganan bidang kontrol yang dikelola pelanggan.
Kunci di Cloud Key Management Service (Cloud KMS) tidak memiliki masa berlaku. Jika organisasi Anda memiliki persyaratan keamanan untuk rotasi kunci, rotasi kunci secara manual. Untuk meminimalkan gangguan pada workload yang sedang berjalan, jangan konfigurasikan rotasi kunci otomatis untuk kunci ini.
Saat Anda merotasi kunci enkripsi untuk boot disk bidang kontrol dan etcd, GKE akan membuat disk baru yang dienkripsi menggunakan kunci baru. Untuk cluster regional, operasi ini tidak memiliki periode nonaktif karena bidang kontrol yang direplikasi. Untuk cluster zona, bidang kontrol menjadi tidak tersedia hingga disk baru tersedia.
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.
Memiliki cluster yang sudah ada yang menggunakan boot disk bidang kontrol dan enkripsi etcd serta menjalankan GKE versi 1.35.2-gke.1842000 atau yang lebih baru.
Identifikasi project ID dari project Google Cloud berikut:
- Project kunci: project yang berisi resource Cloud KMS Anda.
- Project cluster: project yang berisi cluster GKE Anda.
Untuk melakukan tugas validasi dalam dokumen ini, pastikan log audit Akses Data
DATA_READdiaktifkan untuk Cloud Key Management Service (KMS) API. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan log audit Akses Data.
Peran dan izin yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk merotasi CA dan kunci yang dikelola pelanggan, minta administrator untuk memberi Anda peran IAM berikut:
-
Mengelola kunci atau versi kunci:
Cloud KMS Admin (
roles/cloudkms.admin) di project kunci Anda -
Mengonfigurasi cluster untuk menggunakan kunci baru:
Kubernetes Engine Cluster Admin (
roles/container.clusterAdmin) di project cluster Anda
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Batasan
Anda dapat mengupdate cluster ke versi baru dari kunci yang ada, tetapi Anda tidak dapat mengupdate cluster untuk menggunakan kunci yang sepenuhnya baru untuk operasi enkripsi ini.
Memberikan peran IAM ke agen layanan GKE
Untuk merotasi kunci enkripsi Anda untuk boot disk dan etcd, berikan peran Kubernetes Engine KMS Crypto Key User (roles/container.cloudKmsKeyUser) pada kunci enkripsi di project kunci Anda kepada agen layanan GKE di project cluster Anda:
gcloud kms keys add-iam-policy-binding KCP_DISK_KEY_NAME \
--keyring=KEYRING_NAME \
--location=LOCATION \
--member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
--role=roles/container.cloudKmsKeyUser \
--project=KEY_PROJECT_ID
Ganti kode berikut:
KCP_DISK_KEY_NAME: nama kunci enkripsi untuk boot disk bidang kontrol dan disk etcd Anda.KEYRING_NAME: nama key ring yang menyimpan kunci.LOCATION: lokasi Google Cloud key ring. Lokasi ini harus sama dengan lokasi cluster Anda. Untuk mengetahui daftar region, filter "Region" di tabel lokasi Cloud KMS.CLUSTER_PROJECT_NUMBER: nomor project numerik dari project cluster.KEY_PROJECT_ID: project ID dari project kunci Anda.
Merotasi kunci untuk boot disk etcd dan bidang kontrol
Buat versi kunci utama baru untuk boot disk dan kunci enkripsi etcd:
gcloud kms keys versions create \ --key=KCP_DISK_KEY_NAME \ --keyring=KEYRING_NAME \ --location=LOCATION \ --project=KEY_PROJECT_ID \ --primaryMungkin perlu waktu hingga 10 menit agar perubahan diterapkan dalam project.
Temukan versi patch saat ini dari bidang kontrol cluster:
gcloud container clusters describe CLUSTER_NAME \ --location=LOCATION \ --format='value(currentMasterVersion)'Ganti kode berikut:
CLUSTER_NAME: nama cluster GKE Anda.LOCATION: lokasi bidang kontrol cluster GKE, sepertius-central1.
Upgrade bidang kontrol cluster ke versi yang sama dengan yang sudah digunakan.
gcloud container clusters upgrade CLUSTER_NAME \ --master \ --location=LOCATION \ --cluster-version=CONTROL_PLANE_VERSION \ --project=CLUSTER_PROJECT_IDGanti kode berikut:
CONTROL_PLANE_VERSION: versi bidang kontrol cluster dari output langkah sebelumnya.CLUSTER_PROJECT_ID: project ID dari project cluster Anda.
Setelah operasi upgrade bidang kontrol selesai, cluster akan menggunakan versi kunci baru untuk mengenkripsi boot disk bidang kontrol dan disk etcd apa pun.
Merotasi kunci enkripsi cadangan internal etcd
Bagian ini menunjukkan cara merotasi kunci enkripsi untuk cadangan internal etcd, yang digunakan Google Cloud untuk tujuan disaster recovery. Anda dapat mengonfigurasi rotasi otomatis untuk kunci ini, tetapi sebaiknya lakukan rotasi manual. Setelah Anda merotasi kunci, cluster akan menggunakan versi kunci baru untuk mengenkripsi cadangan internal etcd baru.
Cadangan internal etcd menggunakan versi kunci utama dan terjadi pada interval berikut:
- Setiap 30 menit untuk cluster zona.
- Setiap 10 menit untuk cluster Autopilot dan cluster Standard regional.
Setelah Anda merotasi kunci, jangan langsung menonaktifkan atau menghancurkan versi kunci sebelumnya. Tunggu hingga waktu yang cukup berlalu agar GKE dapat membuat cadangan internal etcd baru yang menggunakan versi kunci baru.
Buat versi kunci utama baru untuk kunci enkripsi cadangan internal etcd:
gcloud kms keys versions create \ --key=ETCD_BACKUP_KEY_NAME \ --keyring=KEYRING_NAME \ --location=LOCATION \ --project=KEY_PROJECT_ID \ --primaryGanti kode berikut:
ETCD_BACKUP_KEY_NAME: nama kunci enkripsi cadangan internal etcd.KEYRING_NAME: nama key ring yang menyimpan kunci.LOCATION: lokasi Google Cloud key ring. Lokasi ini harus sama dengan lokasi cluster Anda. Untuk mengetahui daftar region, filter "Region" di tabel lokasi Cloud KMS.KEY_PROJECT_ID: project ID dari project kunci Anda.
Langkah berikutnya
- Merotasi CA dan kunci bidang kontrol yang dikelola pelanggan
- Memverifikasi penerbitan dan penggunaan identitas