패키지 유효성 검사 인증서 순환

이 페이지에서는 Google Distributed Cloud (GDC) 오프라인 어플라이언스에서 패키지 검증에 사용되는 루트 인증 기관을 순환하는 방법을 설명합니다.

GDC 패키지 유효성 검사는 루트 인증서 기관 (CA)을 사용하여 출시 키 인증서를 검사합니다. 따라서 루트 CA 인증서를 정기적으로 순환하는 것이 중요합니다. 업그레이드를 실행할 때 표시될 수 있는 출시 공지 또는 경고 메시지를 통해 안내받은 경우 루트 CA를 순환해야 합니다.

시작하기 전에

패키지 유효성 검사 인증서를 순환하려면 필요한 ID 및 액세스 역할이 있어야 합니다.

  • package-validation-root-certs ConfigMap에 대한 쓰기 액세스 권한이 있는지 확인합니다.
  • 보안 관리자에게 디버거 업그레이드 (upgrade-debugger-cp) 역할을 부여해 달라고 요청하세요.

인증서 순환 확인 필요

작업을 실행하기 전에 패키지 유효성 검사 인증서 순환이 필요한지 확인합니다.

  1. KUBECONFIG 환경 변수를 설정합니다.

    $ KUBECONFIG=PATH_TO_KUBECONFIG_FILE
    

    PATH_TO_KUBECONFIG_FILE를 루트 관리자 클러스터에서 gdcloud auth login를 실행하여 kubeconfig 파일을 가져온 경로로 바꿉니다.

  2. 현재 신뢰 앵커를 최신 신뢰 앵커와 비교하여 업그레이드가 필요한지 확인합니다. harbor-system/package-validation-root-certsConfigMap 데이터가 로컬 신뢰 앵커와 비교됩니다.

    $ 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-certs에 있는 ConfigMap 객체를 순환합니다. 인프라 운영자에게는 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에서 새 인증서가 순환됩니다.