En esta página se describe cómo rotar la autoridad de certificación raíz utilizada 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 de certificación (CA) raíz para validar los certificados de clave de lanzamiento. Por eso, es fundamental cambiar el certificado de 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 del mensaje de advertencia que puede mostrarse al realizar una actualización.
Antes de empezar
Para rotar el certificado de validación de paquetes, debes tener los roles de identidad y acceso necesarios:
- Asegúrate de que tienes acceso de escritura a
package-validation-root-certs ConfigMap
. - Pide a tu administrador de seguridad que te conceda el rol Actualizar depurador (
upgrade-debugger-cp
).
Verificar si es necesario rotar el certificado
Verifica que es necesario rotar el certificado de validación de un paquete antes de realizar la operación:
Define la variable de entorno
KUBECONFIG
:$ KUBECONFIG=PATH_TO_KUBECONFIG_FILE
Sustituye
PATH_TO_KUBECONFIG_FILE
por la ruta del archivokubeconfig
que has obtenido ejecutandogdcloud auth login
en el clúster de administrador raíz.Determina si es necesario actualizar comparando la ancla de confianza actual con la más reciente. Los datos de
ConfigMap
enharbor-system/package-validation-root-certs
se comparan con el ancla 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!
Realizar la rotación y la actualización de certificados en el dispositivo
Para rotar el objeto ConfigMap
situado en harbor-system/package-validation-root-certs
del clúster de administrador raíz, sigue estos pasos: El operador de infraestructura necesita acceso de escritura a ConfigMap
.
Crea las siguientes variables y asígnales 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
Sustituye
USER_NAME
por el nombre de usuario de IO.Crea la carpeta de destino que contendrá los archivos de salida del proceso de rotación de certificados:
mkdir -p "${TARGET_FOLDER}"
Actualiza y sustituye 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
Aplica la nueva configuración con
kubectl
:kubectl apply -f ${OUTPUT}
Comprueba que el archivo ca.crt que acabas de aplicar esté en
ConfigMap
:kubectl describe configmap package-validation-root-certs -n harbor-system
De esta forma, se rota un nuevo certificado en package-validation-root-cert
.