Merotasi kunci akun layanan

Halaman ini menjelaskan cara merotasi kunci untuk akun layanan berikut:

Untuk merotasi kunci akun layanan:

  1. Buat direktori untuk menyimpan cadangan secret Anda saat ini:

    mkdir backup
  2. Perhatikan informasi berikut untuk akun layanan yang relevan:

    Akses komponen

    Cluster Secret Namespace
    Admin admin-cluster-creds kube-system
    Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    Admin private-registry-creds kube-system
    Pengguna private-registry-creds kube-system
    • Jika Anda tidak menggunakan registry pribadi, Secret private-registry-creds akan menyimpan kunci untuk akun layanan akses komponen Anda.
    • Jika Anda menggunakan registry pribadi, Secret private-registry-creds akan menyimpan kredensial untuk registry pribadi Anda, bukan kunci akun layanan akses komponen.

    Connect-register

    Cluster Secret Namespace
    Admin admin-cluster-creds kube-system
    Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt

    Logging-monitoring

    Cluster Secret Namespace
    Admin admin-cluster-creds kube-system
    Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    Pengguna google-cloud-credentials kube-system
    Pengguna stackdriver-service-account-key knative-serving

    Logging audit

    Cluster Secret Namespace
    Admin admin-cluster-creds kube-system
    Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    Admin kube-apiserver CLUSTER_NAME

    Stackdriver

    Cluster Secret Namespace
    Admin admin-cluster-creds kube-system
    Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    Pengguna google-cloud-credentials kube-system
    Pengguna stackdriver-service-account-key knative-serving
  3. Buat cadangan setiap secret menggunakan perintah berikut:

    kubectl get secret SECRET --namespace NAMESPACE \
        --kubeconfig KUBECONFIG -o json > backup/SECRET-NAMESPACE.json

    Ganti kode berikut:

    • NAMESPACE: namespace tempat secret berada. Misalnya, kube-system.
    • KUBECONFIG: jalur ke file kubeconfig untuk cluster admin atau pengguna.
    • SECRET: nama secret. Misalnya, admin-cluster-creds.

    Misalnya, jalankan perintah berikut untuk akun layanan logging audit:

    kubectl get secret admin-cluster-creds --namespace kube-system \
            --kubeconfig KUBECONFIG -o json > backup/admin-cluster-creds-kube-system.json
    
    kubectl get secret user-cluster-creds --namespace NAMESPACE \
            --kubeconfig KUBECONFIG -o json > backup/user-cluster-creds-NAMESPACE.json
    
    kubectl get secret kube-apiserver --namespace NAMESPACE \
            --kubeconfig KUBECONFIG -o json > backup/kube-apiserver-NAMESPACE.json
  4. Untuk membuat file kunci akun layanan baru, jalankan perintah berikut:

    gcloud iam service-accounts keys create NEW_KEY_FILE --iam-account IAM_ACCOUNT

    Ganti kode berikut:

    • NEW_KEY_FILE: nama untuk file kunci akun layanan baru Anda
    • IAM_ACCOUNT: alamat email akun layanan
  5. Di file konfigurasi cluster admin, temukan kolom componentAccessServiceAccountKeyPath, bagian gkeConnect, bagian stackdriver, dan bagian cloudAuditLogging. Di tempat tersebut, ganti jalur ke file kunci akun layanan.

  6. Di file konfigurasi cluster pengguna, temukan kolom componentAccessServiceAccountKeyPath, bagian gkeConnect, bagian stackdriver, dan bagian cloudAudigLogging. Di tempat tersebut, ganti jalur ke file kunci akun layanan.

  7. Simpan perubahan yang Anda buat dengan menjalankan perintah berikut:

    Anda dapat merotasi kunci untuk satu komponen pada satu waktu, atau Anda dapat merotasi semua kunci sekaligus dengan menetapkan komponen ke sakeys.

    gkectl update credentials COMPONENT \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config ADMIN_CLUSTER_CONFIG \
        --admin-cluster
    
    gkectl update credentials COMPONENT \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config USER_CLUSTER_CONFIG
    

    Ganti kode berikut:

    • COMPONENT: salah satu dari:

      • componentaccess
      • register
      • cloudauditlogging
      • stackdriver
      • sakeys (merotasi semua kunci komponen)
    • ADMIN_CLUSTER_KUBECONFIG: jalur ke file kubeconfig untuk cluster admin.

    • ADMIN_CLUSTER_CONFIG: jalur ke file konfigurasi cluster admin.

    • USER_CLUSTER_CONFIG: jalur ke file konfigurasi cluster pengguna.

Pembuatan ulang node

Beberapa rotasi kunci akun layanan mungkin memerlukan waktu lebih lama karena pembuatan ulang node diperlukan:

Akun layanan Pembuatan ulang node diperlukan
Akses komponen Jika menggunakan Artifact Registry: Ya
Jika menggunakan registry pribadi: Tidak
Logging audit Cluster admin: Ya, tetapi hanya node bidang kontrol
Cluster pengguna menggunakan kubeception: Tidak
Cluster pengguna menggunakan Controlplane V2: Ya, tetapi hanya node bidang kontrol node
Logging-monitoring Tidak
Connect-register Tidak

Untuk rotasi kunci yang memerlukan pembuatan ulang node, node akan diganti dalam proses update berkelanjutan; yaitu, node dibuat ulang satu per satu.

Kemungkinan waktu nonaktif selama rotasi kunci mirip dengan waktu nonaktif untuk upgrade cluster. Untuk mengetahui detailnya, lihat Waktu nonaktif selama upgrade.

Memulihkan cadangan

Jika Anda perlu memulihkan cadangan secret yang Anda buat sebelumnya, jalankan perintah berikut:

kubectl apply -f backup/

Perbedaan cluster lanjutan untuk merotasi kunci akun layanan

Perintah gkectl update credentials hanya didukung sebagian untuk cluster lanjutan. Tabel berikut mencantumkan variasi perintah yang didukung dan tidak didukung:

Perintah Deskripsi Dukungan
gkectl update credentials certificate-authorities rotate Merotasi certificate authority. Didukung
gkectl update credentials certificate-authorities status (Pratinjau) Melihat status rotasi certificate authority. Didukung
gkectl update credentials certificate-authorities update-kubeconfig Mendownload file kubeconfig dengan sertifikat klien terbaru. Didukung
gkectl update credentials cloudauditlogging Memperbarui kredensial Cloud Audit Logs. Tidak Didukung
gkectl update credentials componentaccess Memperbarui kredensial kunci akun layanan akses komponen untuk cluster yang dibuat dengan Google Distributed Cloud for VMware. Didukung
gkectl update credentials f5bigip Memperbarui kredensial load balancer F5 BIG-IP. Tidak Diperlukan
gkectl update credentials ksa-signing-key rotate Merotasi kunci penandatanganan token akun layanan Kubernetes (KSA). Tidak Didukung
gkectl update credentials ksa-signing-key status Melihat status rotasi kunci penandatanganan token KSA yang sedang berlangsung. Tidak Didukung
gkectl update credentials Memperbarui kredensial cluster. Didukung
gkectl update credentials privateregistry Memperbarui kredensial registry pribadi untuk cluster. Didukung
gkectl update credentials register Memperbarui kredensial kunci akun layanan pendaftaran. Didukung
gkectl update credentials sakeys Memperbarui kredensial kunci akun layanan untuk cluster. Didukung
gkectl update credentials stackdriver (Pratinjau) Memperbarui kredensial Google Cloud Observability. Didukung
gkectl update credentials vsphere Memperbarui kredensial vSphere untuk cluster. Didukung

Untuk daftar lengkap fitur dan kemampuan Google Distributed Cloud for VMware yang didukung atau tidak didukung untuk cluster lanjutan, lihat Perbedaan saat menjalankan cluster lanjutan.