עדכון של אישור האימות של החבילה

בדף הזה מוסבר איך לבצע רוטציה של רשות אישורים (CA) בסיסית שמשמשת לאימות חבילות במכשיר עם פער אוויר של Google Distributed Cloud ‏(GDC).

אימות חבילות GDC מתבצע באמצעות רשות אישורים (CA) בסיסית כדי לאמת אישורים של מפתחות הפצה. לכן חשוב מאוד להחליף את אישור ה-CA הבסיסי באופן תקופתי. צריך לבצע רוטציה של ה-CA הבסיסי אם קיבלתם הוראה לעשות זאת בהודעת פרסום או בהודעת האזהרה שעשויה להופיע במהלך השדרוג.

לפני שמתחילים

כדי להחליף את אישור האימות של החבילה, צריך לקבל את תפקידי הזהות והגישה הנדרשים:

  • מוודאים שיש לכם הרשאת כתיבה בקובץ המטמון package-validation-root-certs ConfigMap.
  • צריך לבקש מאדמין האבטחה להקצות לכם את התפקיד 'מאבחן שדרוג' (upgrade-debugger-cp).

איך בודקים אם צריך להחליף את האישור

לפני שמבצעים את הפעולה, צריך לוודא שנדרש סבב אימות של חבילה:

  1. מגדירים את משתנה הסביבה KUBECONFIG:

    $ KUBECONFIG=PATH_TO_KUBECONFIG_FILE
    

    מחליפים את PATH_TO_KUBECONFIG_FILE בנתיב לקובץ kubeconfig שהתקבל אחרי הפעלת הפקודה gdcloud auth login באשכול האדמין הבסיסי.

  2. כדי לבדוק אם נדרש שדרוג, משווים את ישות העוגן הנוכחית לישות העוגן העדכנית. הנתונים ConfigMap ב-harbor-system/package-validation-root-certs מושוים לישות העוגן האמינה המקומית:

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

ביצוע סבב אישורים ושדרוג במכשיר

כדי לסובב את האובייקט ConfigMap שנמצא במיקום harbor-system/package-validation-root-certs באשכול הניהול הבסיסי, מבצעים את השלבים הבאים. למפעיל התשתית צריכה להיות הרשאת כתיבה ל-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.