החלפת מפתחות של חשבונות שירות

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

אפשר לעיין ברשימה מקיפה של התכונות והיכולות של Google Distributed Cloud for VMware שנתמכות או לא נתמכות באשכולות מתקדמים.

כדי לבצע רוטציה של מפתחות לחשבונות שירות:

  1. יוצרים ספרייה לאחסון גיבוי של הסודות הנוכחיים:

    mkdir backup
  2. רושמים את הפרטים הבאים לגבי חשבון השירות הרלוונטי:

    גישה לרכיבים

    אשכול סוד מרחב שמות
    אדמין admin-cluster-creds kube-system
    אדמין user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    אדמין private-registry-creds kube-system
    משתמש private-registry-creds kube-system
    • אם אתם לא משתמשים במאגר פרטי, הסוד private-registry-creds מכיל את המפתח של חשבון השירות של רכיב הגישה.
    • אם אתם משתמשים במאגר פרטי, private-registry-creds Secret מכיל את פרטי הכניסה למאגר הפרטי, ולא את המפתח של חשבון השירות לגישה לרכיב.

    Connect-register

    אשכול סוד מרחב שמות
    אדמין admin-cluster-creds kube-system
    אדמין user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt

    Logging-monitoring

    אשכול סוד מרחב שמות
    אדמין admin-cluster-creds kube-system
    אדמין user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    משתמש google-cloud-credentials kube-system
    משתמש stackdriver-service-account-key knative-serving

    רישום ביומן ביקורת

    אשכול סוד מרחב שמות
    אדמין admin-cluster-creds kube-system
    אדמין user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    אדמין kube-apiserver CLUSTER_NAME

    ‫Stackdriver

    אשכול סוד מרחב שמות
    אדמין admin-cluster-creds kube-system
    אדמין user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    משתמש google-cloud-credentials kube-system
    משתמש stackdriver-service-account-key knative-serving
  3. יוצרים גיבוי של כל סוד באמצעות הפקודה הבאה:

    kubectl get secret SECRET --namespace NAMESPACE \
        --kubeconfig KUBECONFIG -o json > backup/SECRET-NAMESPACE.json

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫NAMESPACE: מרחב השמות שבו נמצא הסוד. לדוגמה, kube-system.
    • ‫KUBECONFIG: הנתיב לקובץ kubeconfig של אשכול האדמין או אשכול המשתמש.
    • ‫SECRET: שם הסוד. לדוגמה, admin-cluster-creds.

    לדוגמה, מריצים את הפקודות הבאות עבור חשבון השירות של שירות יומן הביקורת:

    kubectl get secret admin-cluster-creds --namespace kube-system \
            --kubeconfig KUBECONFIG -o json > backup/admin-cluster-creds-kube-system.json
    
    kubectl get secret user-cluster-creds --namespace NAMESPACE \
            --kubeconfig KUBECONFIG -o json > backup/user-cluster-creds-NAMESPACE.json
    
    kubectl get secret kube-apiserver --namespace NAMESPACE \
            --kubeconfig KUBECONFIG -o json > backup/kube-apiserver-NAMESPACE.json
  4. כדי ליצור קובץ מפתח חדש של חשבון שירות, מריצים את הפקודה הבאה:

    gcloud iam service-accounts keys create NEW_KEY_FILE --iam-account IAM_ACCOUNT

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫NEW_KEY_FILE: השם של קובץ המפתח החדש של חשבון השירות
    • ‫IAM_ACCOUNT: כתובת האימייל של חשבון השירות
  5. בקובץ התצורה של אשכול הניהול, מחפשים את השדה componentAccessServiceAccountKeyPath, את הקטע gkeConnect, את הקטע stackdriver ואת הקטע cloudAuditLogging. במקומות האלה, מחליפים את הנתיבים לקובצי המפתחות של חשבונות השירות.

  6. בקובץ התצורה של אשכול המשתמשים, מוצאים את השדה componentAccessServiceAccountKeyPath, את הקטע gkeConnect, את הקטע stackdriver ואת הקטע cloudAudigLogging. במקומות האלה, מחליפים את הנתיבים לקובצי המפתח של חשבון השירות.

  7. מריצים את הפקודות הבאות כדי לשמור את השינויים שביצעתם:

    אפשר לסובב את המפתחות של רכיב אחד בכל פעם, או לסובב את כל המפתחות בבת אחת על ידי הגדרת הרכיב ל-sakeys.

    gkectl update credentials COMPONENT \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config ADMIN_CLUSTER_CONFIG \
        --admin-cluster
    
    gkectl update credentials COMPONENT \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config USER_CLUSTER_CONFIG
    

    מחליפים את מה שכתוב בשדות הבאים:

    • COMPONENT: אחת מהאפשרויות הבאות:

      • componentaccess
      • register
      • cloudauditlogging
      • stackdriver
      • sakeys (מחליף את כל מפתחות הרכיבים)
    • ‫ADMIN_CLUSTER_KUBECONFIG: הנתיב לקובץ kubeconfig של אשכול האדמין.

    • ‫ADMIN_CLUSTER_CONFIG: הנתיב לקובץ התצורה של אשכול האדמין.

    • ‫USER_CLUSTER_CONFIG: הנתיב לקובץ התצורה של אשכול המשתמשים.

יצירה מחדש של צומת

חלק מהרוטציות של מפתחות לחשבונות שירות עשויות להימשך זמן רב יותר כי נדרשת יצירה מחדש של הצומת:

חשבון שירות צריך ליצור מחדש את הצמתים
גישה לרכיבים אם משתמשים ב-Artifact Registry: כן
אם משתמשים במאגר פרטי: לא
רישום ביומן ביקורת קלאסטר אדמין: כן, אבל רק צמתים של מישור הבקרה
קלאסטר משתמש באמצעות kubeception: לא
קלאסטר משתמש באמצעות Controlplane V2: כן, אבל רק צמתים של מישור הבקרה
רישום ביומן ומעקב לא
Connect-register לא

במקרה של רוטציית מפתחות שדורשת יצירה מחדש של הצמתים, הצמתים מוחלפים בתהליך של עדכון בהדרגה (rolling), כלומר הצמתים נוצרים מחדש בזה אחר זה.

זמן ההשבתה האפשרי במהלך רוטציית מפתחות דומה לזמן ההשבתה במהלך שדרוג אשכול. פרטים נוספים זמינים במאמר בנושא זמן השבתה במהלך שדרוגים.

שחזור גיבויים

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

kubectl apply -f backup/

הבדלים מתקדמים בין אשכולות בהחלפת מפתחות של חשבונות שירות

הפקודה gkectl update credentials נתמכת באופן חלקי בלבד באשכולות מתקדמים. בטבלה הבאה מפורטים וריאציות של פקודות שנתמכות ושלא נתמכות:

פקודה תיאור תמיכה
gkectl update credentials certificate-authorities rotate החלפת רשויות אישורים. נתמך
gkectl update credentials certificate-authorities status (תצוגה מקדימה) צפייה בסטטוס של סבב הרשאות האישורים. נתמך
gkectl update credentials certificate-authorities update-kubeconfig מורידים קובץ kubeconfig עם אישור הלקוח העדכני ביותר. נתמך
gkectl update credentials cloudauditlogging עדכון פרטי הכניסה של יומני הביקורת ב-Cloud. לא נתמך
gkectl update credentials componentaccess מעדכנים את פרטי הכניסה של מפתח חשבון השירות לגישה לרכיבים עבור אשכולות שנוצרו באמצעות Google Distributed Cloud ל-VMware. נתמך
gkectl update credentials f5bigip עדכון פרטי הכניסה למאזן העומסים F5 BIG-IP. לא נדרש
gkectl update credentials ksa-signing-key rotate מחליפים את מפתח החתימה של אסימון חשבון השירות (KSA) ב-Kubernetes. לא נתמך
gkectl update credentials ksa-signing-key status הצגת הסטטוס של רוטציה מתמשכת של מפתח לחתימה על טוקן KSA. לא נתמך
gkectl update credentials עדכון פרטי הכניסה לאשכול. נתמך
gkectl update credentials privateregistry עדכון פרטי הכניסה למאגר פרטי עבור אשכול. נתמך
gkectl update credentials register מעדכנים את פרטי הכניסה של מפתח חשבון השירות. נתמך
gkectl update credentials sakeys עדכון של פרטי הכניסה של מפתחות לחשבונות שירות עבור אשכול. נתמך
gkectl update credentials stackdriver (תצוגה מקדימה) עדכון של פרטי הכניסה של Google Cloud Observability. נתמך
gkectl update credentials vsphere עדכון פרטי הכניסה ל-vSphere עבור אשכול. נתמך

רשימה מקיפה של התכונות והיכולות של Google Distributed Cloud for VMware שנתמכות או לא נתמכות באשכולים מתקדמים מופיעה במאמר ההבדלים בהפעלת אשכולים מתקדמים.