Rota el certificado de validación de paquetes

En esta página, se describe cómo rotar la autoridad certificadora raíz que se usa para la validación de paquetes en el dispositivo aislado de Google Distributed Cloud (GDC).

La validación de paquetes de GDC usa una autoridad certificadora (CA) raíz para validar los certificados de claves de lanzamiento. Por lo tanto, es fundamental rotar el certificado de la CA raíz periódicamente. Debes rotar la CA raíz si se te indica que lo hagas a través de un aviso de lanzamiento o el mensaje de advertencia que se puede mostrar cuando realices una actualización.

Antes de comenzar

Para rotar el certificado de validación de paquetes, debes tener los roles de identidad y acceso necesarios:

  • Asegúrate de tener acceso de escritura a package-validation-root-certs ConfigMap.
  • Pídele a tu administrador de seguridad que te otorgue el rol de Upgrade Debugger (upgrade-debugger-cp).

Verifica si se requiere la rotación del certificado

Verifica si se requiere una rotación del certificado de validación del paquete antes de realizar la operación:

  1. Establece la variable de entorno KUBECONFIG:

    $ KUBECONFIG=PATH_TO_KUBECONFIG_FILE
    

    Reemplaza PATH_TO_KUBECONFIG_FILE por la ruta de acceso al archivo kubeconfig que obtuviste ejecutando gdcloud auth login en el clúster de administrador raíz.

  2. Para determinar si se requiere una actualización, compara la entidad de certificación raíz actual con la más reciente. Los datos de ConfigMap en harbor-system/package-validation-root-certs se comparan con el anclaje de confianza local:

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

Realiza la rotación y actualización del certificado en el dispositivo

Sigue estos pasos para rotar el objeto ConfigMap ubicado en harbor-system/package-validation-root-certs en el clúster de administrador raíz. El operador de infraestructura necesita acceso de escritura a ConfigMap.

  1. Crea las siguientes variables y asígnale valores:

    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
    

    Reemplaza USER_NAME por el nombre de usuario de IO.

  2. Crea la carpeta de destino que contendrá los archivos de salida del proceso de rotación de certificados:

    mkdir -p "${TARGET_FOLDER}"
    
  3. Actualiza y reemplaza el valor de 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. Aplica la configuración nueva con kubectl:

      kubectl apply -f ${OUTPUT}
    
  5. Asegúrate de que el archivo ca.crt recién aplicado esté presente en ConfigMap:

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

Esto se encarga de rotar un certificado nuevo en package-validation-root-cert.