Merotasi kunci akun layanan

Halaman ini menjelaskan cara merotasi kunci untuk akun layanan berikut:

Untuk mengganti secara rutin kunci akun layanan Anda:

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

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

    Akses komponen

    Cluster Rahasia Namespace
    Admin admin-cluster-creds kube-system
    Admin kredit cluster pengguna CLUSTER_NAME-gke-onprem-mgmt
    Admin private-registry-creds kube-system
    Pengguna private-registry-creds kube-system
    • Jika Anda tidak menggunakan registry pribadi, Rahasia private-registry-creds menyimpan kunci untuk akses komponen Anda akun layanan Anda.
    • Jika Anda menggunakan {i>registry<i} pribadi, private-registry-creds Rahasia menyimpan kredensial untuk pribadi Anda registry, bukan kunci akun layanan akses komponen.

    Daftar hubungkan

    Cluster Rahasia Namespace
    Admin admin-cluster-creds kube-system
    Admin kredit cluster pengguna CLUSTER_NAME-gke-onprem-mgmt

    Pemantauan logging

    Cluster Rahasia Namespace
    Admin admin-cluster-creds kube-system
    Admin kredit cluster pengguna CLUSTER_NAME-gke-onprem-mgmt
    Pengguna google-cloud-credentials kube-system
    Pengguna stackdriver-service-account-key penayangan knative

    Log audit

    Cluster Rahasia Namespace
    Admin admin-cluster-creds kube-system
    Admin kredit cluster pengguna CLUSTER_NAME-gke-onprem-mgmt
    Admin kube-apiserver CLUSTER_NAME

    Pengukuran Penggunaan

    Cluster Rahasia Namespace
    Admin kredit cluster pengguna CLUSTER_NAME-gke-onprem-mgmt
    Pengguna usage-metering-bigquery-service-account-key kube-system

    Stackdriver

    Cluster Rahasia Namespace
    Admin admin-cluster-creds kube-system
    Admin kredit cluster pengguna CLUSTER_NAME-gke-onprem-mgmt
    Pengguna google-cloud-credentials kube-system
    Pengguna stackdriver-service-account-key penayangan knative
  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 rahasia berada. Contoh, kube-system.
    • KUBECONFIG: jalur ke file kubeconfig untuk admin atau cluster pengguna.
    • SECRET: nama rahasia. Contoh, admin-cluster-creds.

    Misalnya, jalankan perintah berikut untuk layanan logging audit akun:

    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, stackdriver, dan bagian cloudAuditLogging. Di tempat-tempat tersebut, mengganti jalur ke file kunci akun layanan.

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

  7. Simpan perubahan yang Anda buat dengan menjalankan perintah berikut. Anda dapat memutar kunci untuk satu komponen pada satu waktu, atau Anda dapat merotasi semua kunci sekaligus dengan menyetel 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 berikut ini;

    • COMPONENT: salah satu dari:

      • componentaccess
      • register
      • cloudauditlogging
      • usagemetering
      • stackdriver
      • sakeys (Rotasi kunci untuk beberapa komponen.)
    • ADMIN_CLUSTER_KUBECONFIG: jalur ke {i>kubeconfig<i} untuk cluster admin.

    • ADMIN_CLUSTER_CONFIG: jalur ke admin file konfigurasi cluster Anda.

    • USER_CLUSTER_CONFIG: jalur ke pengguna file konfigurasi cluster Anda.

Pembuatan ulang node

Beberapa rotasi kunci akun layanan mungkin memerlukan waktu lebih lama karena node perlu dibuat ulang:

Service account Pembuatan ulang node diperlukan
Akses komponen Jika menggunakan Container Registry: Ya
Jika menggunakan registry pribadi: Tidak
Logging audit Cluster admin: Ya
Cluster pengguna dengan Contrlplane V2 diaktifkan: Ya, tetapi hanya bidang kontrol node
Pemantauan logging Tidak
Hubungkan-daftar Tidak
Pengukuran penggunaan Tidak

Untuk rotasi kunci yang mengharuskan node dibuat ulang, node tersebut diganti dalam proses update berkelanjutan; artinya, {i>node<i} dibuat ulang satu per satu.

Periode nonaktif yang mungkin terjadi selama rotasi kunci mirip dengan periode nonaktif untuk upgrade cluster. Untuk mengetahui detailnya, lihat Periode nonaktif selama upgrade.

Memulihkan cadangan

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

kubectl apply -f backup/