Merotasi kunci enkripsi disk boot etcd dan bidang kontrol


Anda.

Halaman ini menunjukkan cara merotasi kunci enkripsi boot disk etcd dan bidang kontrol yang Anda konfigurasi untuk otoritas bidang kontrol GKE. Halaman ini ditujukan untuk administrator cluster dan engineer Keamanan.

Sebelum membaca halaman ini, pahami konsep otoritas bidang kontrol GKE berikut:

Merencanakan rotasi kunci

Halaman ini menunjukkan cara mengganti komponen kredensial berikut di bidang kontrol Anda:

  • Kunci enkripsi untuk etcd dan boot disk bidang kontrol.
  • Kunci enkripsi untuk cadangan internal etcd yang digunakan untuk pemulihan dari bencana. Google Cloud

Anda juga dapat merotasi kunci penandatanganan akun layanan dan certificate authority (CA) yang dikelola pelanggan yang Anda konfigurasi dengan otoritas bidang kontrol GKE. Untuk mengetahui informasi selengkapnya, lihat Merotasi CA bidang kontrol dan kunci penandatanganan 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 sedang berjalan, jangan mengonfigurasi rotasi kunci otomatis untuk kunci ini.

Saat Anda merotasi kunci enkripsi untuk disk boot bidang kontrol dan etcd, GKE akan membuat disk baru yang dienkripsi menggunakan kunci baru. Untuk cluster regional, operasi ini tidak memiliki waktu henti karena bidang kontrol 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
  • 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.
  • Memiliki cluster yang sudah ada yang menggunakan enkripsi etcd dan disk boot bidang kontrol

  • Identifikasi project ID 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 di halaman 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:

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 kustom atau peran yang telah ditentukan lainnya.

Batasan

Anda dapat memperbarui cluster ke versi baru dari kunci yang ada, tetapi Anda tidak dapat memperbarui cluster untuk menggunakan kunci yang sepenuhnya baru untuk operasi enkripsi ini.

Memberikan peran IAM ke agen layanan GKE

Untuk mengganti 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." \
    --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 key ring. Google Cloud 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 project cluster.
  • KEY_PROJECT_ID: project ID project kunci Anda.

Merotasi kunci untuk disk boot etcd dan bidang kontrol

  1. Buat versi kunci utama baru untuk kunci enkripsi etcd dan disk boot:

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

  2. 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, seperti us-central1.
  3. Upgrade bidang kontrol cluster ke versi yang sama dengan yang sudah digunakannya.

    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: project ID project cluster Anda.

Setelah operasi upgrade bidang kontrol selesai, cluster akan menggunakan versi kunci baru untuk mengenkripsi disk booting bidang kontrol dan disk etcd.

Merotasi kunci enkripsi cadangan internal etcd

Bagian ini menunjukkan cara mengganti kunci enkripsi untuk cadangan internal etcd, yang digunakan Google Cloud 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 Standard regional.

Setelah Anda merotasikan 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 \
        --primary
    

    Ganti kode berikut:

    • ETCD_BACKUP_KEY_NAME: nama kunci enkripsi cadangan internal etcd.
    • KEYRING_NAME: nama key ring yang menyimpan kunci.
    • LOCATION: lokasi key ring. Google Cloud Lokasi ini harus sama dengan lokasi cluster Anda. Untuk mengetahui daftar region, filter "Region" di tabel lokasi Cloud KMS.
    • KEY_PROJECT_ID: project ID project kunci Anda.

Langkah berikutnya