Merotasi sertifikat validasi paket

Halaman ini menjelaskan cara mengganti otoritas sertifikat root yang digunakan untuk validasi paket di perlengkapan air-gapped Google Distributed Cloud (GDC)

Validasi paket GDC menggunakan otoritas sertifikat root (CA) untuk memvalidasi sertifikat kunci rilis. Oleh karena itu, sertifikat CA root harus dirotasi secara berkala. Anda harus merotasi CA root jika Anda diinstruksikan untuk melakukannya melalui catatan rilis atau pesan peringatan yang mungkin ditampilkan saat Anda melakukan upgrade.

Sebelum memulai

Untuk mengganti sertifikat validasi paket, Anda harus memiliki peran identitas dan akses yang diperlukan:

  • Pastikan Anda memiliki akses tulis ke package-validation-root-certs ConfigMap.
  • Minta Admin Keamanan Anda untuk memberi Anda peran Upgrade Debugger (upgrade-debugger-cp).

Verifikasi rotasi sertifikat diperlukan

Verifikasi apakah rotasi sertifikat validasi paket diperlukan sebelum melakukan operasi:

  1. Tetapkan variabel lingkungan KUBECONFIG:

    $ KUBECONFIG=PATH_TO_KUBECONFIG_FILE
    

    Ganti PATH_TO_KUBECONFIG_FILE dengan jalur ke file kubeconfig yang Anda dapatkan dengan menjalankan gdcloud auth login di cluster admin root.

  2. Tentukan apakah upgrade diperlukan dengan membandingkan trust anchor saat ini dengan trust anchor terbaru. Data ConfigMap di harbor-system/package-validation-root-certs dibandingkan dengan trust anchor lokal:

    $ CURRENT_TRUST_ANCHOR=$(kubectl  --kubeconfig=$KUBECONFIG get cm package-validation-root-certs -n harbor-system -o jsonpath='{.data.ca\.crt}')
    
    $ LATEST_TRUST_ANCHOR=$(cat /root/release/staging_root_ca_certificate.crt)
    
    $ diff <( echo "$CURRENT_TRUST_ANCHOR" ) <( echo "$LATEST_TRUST_ANCHOR" ) && echo trust anchors are same  || echo trust anchors are different, upgrade required!
    

Melakukan rotasi dan upgrade sertifikat di appliance

Lakukan langkah-langkah berikut untuk memutar objek ConfigMap yang berada di harbor-system/package-validation-root-certs di cluster admin root. Operator Infrastruktur memerlukan akses tulis ke ConfigMap.

  1. Buat dan tetapkan nilai ke variabel berikut:

    USERNAME=USER_NAME #IO
    TARGET_FOLDER=/tmp/${USERNAME}
    OUTPUT="${TARGET_FOLDER}/package-validation-root-certs.yaml"
    LATEST_TRUST_ANCHOR_CA_FILE=/root/release/staging_root_ca_certificate.crt
    CONFIGMAP_NAME=package-validation-root-certs
    NAMESPACE=harbor-system
    

    Ganti USER_NAME dengan nama pengguna IO.

  2. Buat folder target yang akan berisi file output dari proses rotasi sertifikat:

    mkdir -p "${TARGET_FOLDER}"
    
  3. Perbarui dan ganti nilai LATEST_TRUST_ANCHOR:

      cat <<EOF  > "${OUTPUT}"
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: ${CONFIGMAP_NAME}
        namespace: ${NAMESPACE}
      data:
        ca.crt: |
      $(sed 's/^/    /' "${LATEST_TRUST_ANCHOR_CA_FILE}")
      EOF
    
  4. Terapkan konfigurasi baru dengan kubectl:

      kubectl apply -f ${OUTPUT}
    
  5. Pastikan ca.crt yang baru diterapkan ada dalam ConfigMap:

      kubectl describe configmap package-validation-root-certs -n harbor-system
    

Tindakan ini akan menangani penggantian sertifikat baru di package-validation-root-cert.