輪替套件驗證憑證

本頁說明如何輪替 Google Distributed Cloud (GDC) 無網路連線裝置中用於套件驗證的根憑證授權單位

GDC 套件驗證會使用根憑證授權單位 (CA) 驗證發布金鑰憑證。因此定期輪替根 CA 憑證至關重要。如果發布通知或升級時顯示的警告訊息指示您輪替根 CA,請務必執行這項操作。

事前準備

如要輪替套件驗證憑證,您必須具備必要的 ID 和存取角色:

  • 確認您擁有 package-validation-root-certs ConfigMap 的寫入存取權。
  • 請要求安全管理員授予您「升級 Debugger」角色 (upgrade-debugger-cp)。

必須驗證憑證輪替

執行作業前,請先確認是否需要輪替套件驗證憑證:

  1. 設定 KUBECONFIG 環境變數:

    $ KUBECONFIG=PATH_TO_KUBECONFIG_FILE
    

    PATH_TO_KUBECONFIG_FILE 替換為您在根管理員叢集中執行 gdcloud auth login 時取得的 kubeconfig 檔案路徑

  2. 比較目前的信任錨點與最新信任錨點,判斷是否需要升級。系統會將 ConfigMap 的資料與本機信任錨點進行比較:harbor-system/package-validation-root-certs

    $ 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!
    

在裝置上執行憑證輪替和升級

請執行下列步驟,輪替位於根管理叢集 harbor-system/package-validation-root-certsConfigMap 物件。基礎架構運算子需要 ConfigMap 的寫入權限。

  1. 建立下列變數並指派值:

    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
    

    USER_NAME 替換為 IO 使用者名稱。

  2. 建立目標資料夾,用於存放憑證輪替程序產生的輸出檔案:

    mkdir -p "${TARGET_FOLDER}"
    
  3. 更新並替換 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. 使用 kubectl 套用新設定:

      kubectl apply -f ${OUTPUT}
    
  5. 確認新套用的 ca.crt 位於 ConfigMap 內:

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

這會負責在 package-validation-root-cert 中輪替新憑證。