Merotasi kunci enkripsi disk boot etcd dan bidang kontrol

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

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

  1. 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 \
        --primary
    

    Mungkin diperlukan waktu hingga 10 menit agar perubahan diterapkan di project.

  2. 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, seperti us-central1.
  3. 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_ID
    

    Ganti 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 \
        --primary
    

    Ganti 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