Zertifikat für die Paketvalidierung rotieren

Auf dieser Seite wird beschrieben, wie Sie die Stammzertifizierungsstelle rotieren, die für die Paketvalidierung in der Air-Gap-Appliance von Google Distributed Cloud (GDC) verwendet wird.

Bei der Validierung von GDC-Paketen wird eine Stammzertifizierungsstelle (CA) verwendet, um Release-Schlüsselzertifikate zu validieren. Daher ist es wichtig, das Root-CA-Zertifikat regelmäßig zu rotieren. Sie müssen die Stammzertifizierungsstelle rotieren, wenn Sie durch eine Release-Mitteilung oder die Warnmeldung, die möglicherweise während eines Upgrades angezeigt wird, dazu aufgefordert werden.

Hinweise

Zum Rotieren des Zertifikats für die Paketvalidierung benötigen Sie die erforderlichen Identitäts- und Zugriffsrollen:

  • Prüfen Sie, ob Sie Schreibzugriff auf package-validation-root-certs ConfigMap haben.
  • Bitten Sie Ihren Sicherheitsadministrator, Ihnen die Rolle „Debugger aktualisieren“ (upgrade-debugger-cp) zuzuweisen.

Prüfen, ob eine Zertifikatrotation erforderlich ist

Prüfen Sie, ob eine Rotation des Zertifikats zur Paketvalidierung erforderlich ist, bevor Sie den Vorgang ausführen:

  1. Legen Sie die Umgebungsvariable KUBECONFIG fest:

    $ KUBECONFIG=PATH_TO_KUBECONFIG_FILE
    

    Ersetzen Sie PATH_TO_KUBECONFIG_FILE durch den Pfad zur Datei kubeconfig, die Sie durch Ausführen von gdcloud auth login im Administratorcluster des Stammclusters erhalten haben.

  2. Prüfen Sie, ob ein Upgrade erforderlich ist, indem Sie den aktuellen Vertrauensanker mit dem neuesten Vertrauensanker vergleichen. Die ConfigMap-Daten unter harbor-system/package-validation-root-certs werden mit dem lokalen Trust-Anchor verglichen:

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

Zertifikatrotation und Upgrade auf der Appliance durchführen

Führen Sie die folgenden Schritte aus, um das ConfigMap-Objekt unter harbor-system/package-validation-root-certs im Administratorcluster zu rotieren. Der Infrastrukturbetreiber benötigt Schreibzugriff auf ConfigMap.

  1. Erstellen Sie die folgenden Variablen und weisen Sie ihnen Werte zu:

    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
    

    Ersetzen Sie USER_NAME durch den IO-Nutzernamen.

  2. Erstellen Sie den Zielordner, der die Ausgabedateien aus dem Zertifikatsrotationsprozess enthält:

    mkdir -p "${TARGET_FOLDER}"
    
  3. Aktualisieren und ersetzen Sie den Wert von 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. Wenden Sie die neue Konfiguration mit kubectl an:

      kubectl apply -f ${OUTPUT}
    
  5. Prüfen Sie, ob die neu angewendete Datei „ca.crt“ in ConfigMap vorhanden ist:

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

Dadurch wird ein neues Zertifikat in package-validation-root-cert rotiert.