Merotasi kunci penandatanganan KSA

Akun layanan Kubernetes (KSA) memberikan identitas untuk proses yang berjalan di dalam Pod.

Akun layanan Kubernetes berbeda dari Akun layanan Google Cloud yang digunakan aplikasi untuk melakukan panggilan terotorisasi ke Google Cloud API.

Google Distributed Cloud menggunakan kunci kriptografis pribadi untuk menandatangani Token KSA yang diterbitkannya ke Pod. TKIP menggunakan kunci publik yang sesuai untuk memvalidasi token saat Pod mengirim permintaan ke server Kubernetes API. Kapan yang digunakan Pod Identitas Beban Kerja untuk memanggil Google Cloud API, Google Cloud menggunakan kunci publik yang sama melakukan autentikasi identitas Pod.

Selama pembuatan cluster pengguna, Google Distributed Cloud menghasilkan kunci publik tertentu. Selama pembuatan cluster, Google Distributed Cloud juga mendaftarkan cluster ke fleet dan menyediakan kunci publik ke Google Cloud.

Nanti Anda dapat merotasi pasangan kunci privat/publik. Rotasi secara otomatis menerbitkan token baru yang ditandatangani oleh kunci pribadi baru. Di akhir rotasi, cluster memiliki kunci pribadi baru, kunci publik baru, dan token yang diperbarui. Selain itu, Google Cloud memiliki kunci publik baru.

Token terikat dan token lama

Sebuah Pod dapat menggunakan token lama atau token terikat untuk autentikasi dan otorisasi saat memanggil server Kubernetes API. Token terikat memiliki masa pakai terbatas dan didistribusikan ke Pod menggunakan volume yang diproyeksikan. Token lama tidak memiliki tanggal habis masa berlaku dan disimpan di Kubernetes Rahasia. Sebaiknya token terikat karena lebih aman.

Token terikat dan token lama dimuat ulang selama rotasi kunci.

Memulai rotasi kunci

Sebelum Anda memulai rotasi kunci, pertimbangkan poin-poin berikut:

  • Selama rotasi kunci, Anda tidak dapat memulai rotasi kunci lainnya, rotasi otoritas, atau pembaruan cluster.

  • Rotasi kunci tidak dapat dijeda atau di-roll back. Semua kunci lama akan dihapus.

  • Rotasi kunci akan menghapus node cluster yang ada dan membuat node baru.

Untuk memulai rotasi kunci:

gkectl update credentials ksa-signing-key rotate \
    --config USER_CLUSTER_CONFIG \
    --kubeconfig ADMIN_CLUSTER_KUBECONIFG \
    [--skip-prompt]

Ganti kode berikut:

  • USER_CLUSTER_CONFIG: Jalur konfigurasi cluster pengguna file

  • ADMIN_KUBECONFIG_FILE: Jalur kubeconfig cluster admin file

Sertakan --skip-prompt jika Anda tidak ingin diminta.

Melihat status rotasi kunci

Untuk melihat status rotasi kunci:

gkectl update credentials ksa-signing-key status \
    --config USER_CLUSTER_CONFIG \
    --kubeconfig ADMIN_CLUSTER_KUBECONIFG

Jika rotasi kunci sudah selesai, Anda akan melihat pesan yang mirip dengan ini:

State of KSASigningKeyRotation with KSASigningKeyVersion 2 is -
status: True,
reason: KSASigningKeyRotationCompleted,
message:{"tokenVersion":2,"privateKeyVersion":2,"publicKeyVersions":[2]}

Jika rotasi rotasi Kunci Penandatanganan KSA masih berlangsung, Anda akan melihat pesan yang mirip dengan yang berikut ini:

State of KSASigningKeyRotation with KSASigningKeyVersion 2 is -
status: False,
reason: KSASigningKeyRotationProcessedReason,
message:{"tokenVersion":2,"privateKeyVersion":2,"publicKeyVersions":[1,2]}