Mengupgrade sertifikat validasi paket

Dokumen ini menjelaskan cara mengupgrade otoritas sertifikat (CA) root yang digunakan untuk validasi paket di perangkat air-gapped Google Distributed Cloud (GDC)

Validasi paket GDC menggunakan root certificate authority (CA) untuk memvalidasi sertifikat kunci rilis. Anda harus mengupgrade CA root ini jika pemberitahuan rilis memerlukannya, atau jika Anda melihat pesan peringatan selama upgrade sistem.

Sebelum memulai

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

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

Verifikasi upgrade sertifikat diperlukan

Verifikasi apakah upgrade sertifikat validasi paket diperlukan sebelum melakukan operasi, dengan membandingkan ConfigMap aktif di cluster Anda dengan sertifikat root penahapan terbaru dalam paket upgrade:

  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!
    

Mengupgrade sertifikat

Jika upgrade diperlukan, perbarui objek ConfigMap yang berada di harbor-system/package-validation-root-certs di cluster admin root. Anda harus memiliki akses tulis ke ConfigMap untuk menyelesaikan tugas ini.

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

  3. Buat folder target yang akan berisi file output dari proses upgrade sertifikat:

    mkdir -p "${TARGET_FOLDER}"
    
  4. Dapatkan trust anchor saat ini dan simpan di file sementara lokal:

    CURRENT_TRUST_ANCHOR=$(kubectl  --kubeconfig=$KUBECONFIG get configmap "${CONFIGMAP_NAME}" -n "${NAMESPACE}" -o jsonpath="{.data.ca\.crt}" )
    CURRENT_TRUST_ANCHOR_CA_FILE=$(mktemp)
    echo "$CURRENT_TRUST_ANCHOR" > "${CURRENT_TRUST_ANCHOR_CA_FILE}"
    
  5. Buat file anchor tepercaya yang telah diupdate:

    cat <<EOF  > "${OUTPUT}"
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: ${CONFIGMAP_NAME}
      namespace: ${NAMESPACE}
    data:
      ca.crt: |
    $(sed 's/^/    /' "${LATEST_TRUST_ANCHOR_CA_FILE}")
    $(sed 's/^/    /' "${CURRENT_TRUST_ANCHOR_CA_FILE}")
    EOF
    
  6. Pastikan anchor tepercaya telah diupdate dengan benar:

    Trust anchor harus berisi sertifikat trust anchor saat ini dan terbaru.

    $ cat "${OUTPUT}"
    apiVersion: v1
    data:
      ca.crt: |
        -----BEGIN CERTIFICATE-----
        (certificate content)
        -----END CERTIFICATE-----
        -----BEGIN CERTIFICATE-----
        (certificate content)
        -----END CERTIFICATE-----
        (other certificate)
    kind: ConfigMap
    metadata:
      name: package-validation-root-certs
      namespace: harbor-system
    
  7. Terapkan konfigurasi baru dengan kubectl:

      kubectl --kubeconfig=$KUBECONFIG apply -f ${OUTPUT}
    
  8. Pastikan ca.crt yang baru diterapkan ada dalam ConfigMap:

      kubectl --kubeconfig=$KUBECONFIG describe configmap package-validation-root-certs -n harbor-system
    

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