Rode o certificado de validação de pacotes

Esta página descreve como rodar a autoridade de certificação de raiz usada para a validação de pacotes no dispositivo isolado do Google Distributed Cloud (GDC)

A validação de pacotes do GDC usa uma autoridade de certificação (CA) de raiz para validar os certificados de chave de lançamento. Isto torna fundamental rodar o certificado da CA de raiz periodicamente. Tem de rodar a AC raiz se receber instruções para o fazer através de um aviso de lançamento ou da mensagem de aviso que pode ser apresentada à medida que faz uma atualização.

Antes de começar

Para rodar o certificado de validação de pacotes, tem de ter as funções de identidade e acesso necessárias:

  • Certifique-se de que tem acesso de escrita a package-validation-root-certs ConfigMap.
  • Peça ao administrador de segurança para lhe conceder a função de depurador de atualização (upgrade-debugger-cp).

Verifique se é necessária a rotação de certificados

Verifique se é necessária uma rotação do certificado de validação de pacotes antes de realizar a operação:

  1. Defina a variável de ambiente KUBECONFIG:

    $ KUBECONFIG=PATH_TO_KUBECONFIG_FILE
    

    Substitua PATH_TO_KUBECONFIG_FILE pelo caminho para o ficheiro kubeconfig que obteve executando gdcloud auth login no cluster de administrador raiz.

  2. Determine se é necessária uma atualização comparando a âncora de fidedignidade atual com a âncora de fidedignidade mais recente. Os dados ConfigMap em harbor-system/package-validation-root-certs são comparados com a âncora de confiança 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!
    

Faça a rotação e a atualização de certificados no dispositivo

Execute os passos seguintes para rodar o objeto ConfigMap localizado em harbor-system/package-validation-root-certs no cluster de administrador raiz. O operador de infraestrutura precisa de acesso de escrita ao ConfigMap.

  1. Crie e atribua valores às seguintes variáveis:

    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
    

    Substitua USER_NAME pelo nome de utilizador do IO.

  2. Crie a pasta de destino que vai conter os ficheiros de saída do processo de rotação de certificados:

    mkdir -p "${TARGET_FOLDER}"
    
  3. Atualize e substitua o 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. Aplique a nova configuração com kubectl:

      kubectl apply -f ${OUTPUT}
    
  5. Certifique-se de que o ficheiro ca.crt recém-aplicado está presente em ConfigMap:

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

Esta ação cuida da rotação de um novo certificado no package-validation-root-cert.