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 Engineer Keamanan.
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 Google Cloud digunakan untuk pemulihan dari bencana.
Anda juga dapat merotasi kunci penandatanganan akun layanan dan otoritas sertifikat (CA) yang dikelola pelanggan 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 akan habis masa berlakunya. Jika organisasi Anda memiliki persyaratan keamanan untuk rotasi kunci, rotasi kunci secara manual. Untuk meminimalkan gangguan pada workload yang berjalan, jangan konfigurasi 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 waktu nonaktif karena bidang kontrol yang direplikasi. Untuk cluster zona, bidang kontrol tidak akan tersedia hingga disk baru tersedia.
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Mengaktifkan 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 ada yang menggunakan enkripsi boot disk bidang kontrol dan etcd serta menjalankan GKE versi 1.35.2-gke.1842000 atau yang lebih baru.
Mengidentifikasi ID project dari project berikut: Google Cloud
- 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 diperlukan untuk merotasi CA dan kunci yang dikelola pelanggan, minta administrator untuk memberi Anda peran IAM berikut:
-
Mengelola kunci atau versi kunci:
Admin Cloud KMS (
roles/cloudkms.admin) di project kunci Anda -
Mengonfigurasi cluster untuk menggunakan kunci baru:
Admin Cluster Kubernetes Engine (
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 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 untuk boot disk dan etcd, berikan peran
Pengguna Kunci Kripto KMS Kubernetes Engine
(roles/container.cloudKmsKeyUser) pada kunci enkripsi di project kunci Anda ke 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.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: ID project dari project kunci Anda.
Merotasi kunci untuk etcd dan boot disk bidang kontrol
Buat versi kunci utama baru untuk kunci enkripsi boot disk dan etcd:
gcloud kms keys versions create \ --key=KCP_DISK_KEY_NAME \ --keyring=KEYRING_NAME \ --location=LOCATION \ --project=KEY_PROJECT_ID \ --primaryMungkin diperlukan waktu hingga 10 menit agar perubahan diterapkan di project.
Temukan versi patch bidang kontrol cluster saat ini:
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 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: ID project 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.
Merotasi kunci enkripsi cadangan internal etcd
Bagian ini menunjukkan cara merotasi kunci enkripsi untuk cadangan internal etcd, yang Google Cloud digunakan untuk tujuan pemulihan dari bencana. 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 Standar regional.
Setelah Anda merotasi kunci, jangan langsung menonaktifkan atau menghancurkan versi kunci sebelumnya. Tunggu hingga waktu yang cukup telah 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: ID project dari project kunci Anda.
Langkah berikutnya
- Merotasi CA dan kunci bidang kontrol yang dikelola pelanggan
- Memverifikasi penerbitan dan penggunaan identitas