ביצוע רוטציה למפתחות חתימה בערב הסעודית

חשבון שירות של Kubernetes‏ (KSA) מספק זהות לתהליכים שפועלים ב-Pod.

חשבונות שירות של Kubernetes שונים מGoogle Cloud חשבונות השירות שמשמשים אפליקציות לביצוע קריאות מורשות ל-APIs של Google Cloud .

ב-Google Distributed Cloud נעשה שימוש במפתח קריפטוגרפי פרטי כדי לחתום על אסימוני KSA שמונפקים ל-Pods. הוא משתמש במפתח הציבורי המתאים כדי לאמת את הטוקנים כשקבוצות ה-Pod שולחות בקשות לשרת ה-API של Kubernetes. כש-Pod משתמש ב-Workload Identity כדי להתקשר עם ממשקי API,‏ Google Cloud Google Cloud משתמש באותו מפתח ציבורי כדי לאמת את הזהות של ה-Pod.

במהלך יצירת אשכול משתמשים, Google Distributed Cloud יוצרת את המפתחות הפרטיים והציבוריים. במהלך יצירת האשכול, Google Distributed Cloud רושם את האשכול ב-Fleet ומספק את המפתח הציבורי ל- Google Cloud.

בשלב מאוחר יותר, תוכלו לבצע רוטציה של זוג המפתחות הפרטיים/הציבוריים. הרוטציה מנפיקה באופן אוטומטי טוקנים חדשים שנחתמים על ידי המפתח הפרטי החדש. בסוף הרוטציה, לאשכול יש מפתח פרטי חדש, מפתח ציבורי חדש וטוקנים רעננים. בנוסף, בקובץGoogle Cloud מופיע המפתח הציבורי החדש.

טוקנים מקושרים וטוקנים מדור קודם

כש-Pod קורא לשרת ה-API של Kubernetes, הוא יכול להשתמש באסימון מדור קודם או באסימון קשור לצורך אימות ומתן הרשאות. לאסימונים קשורים יש משך חיים מוגבל, והם מופצים ל-Pods באמצעות נפחים משוערים. תוקף האסימונים מדור קודם לא פג והם נשמרים ב-Kubernetes בSecrets. מומלץ להשתמש בטוקנים קשורים כי הם מאובטחים יותר.

גם טוקנים קשורים וגם טוקנים מדור קודם עוברים רענון במהלך רוטציית מפתחות.

מגבלות

התחלת רוטציית מפתחות

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

  • במהלך רוטציית מפתחות, אי אפשר להתחיל רוטציית מפתחות אחרת, רוטציה של רשות אישורים או עדכון של אשכול.

  • אי אפשר להשהות את רוטציית המפתחות או לבטל אותה. כל המפתחות הישנים נמחקים.

  • במהלך רוטציית מפתחות, צמתי האשכול הקיימים נמחקים ונוצרים צמתים חדשים.

כדי להתחיל רוטציית מפתחות:

gkectl update credentials ksa-signing-key rotate \
    --config USER_CLUSTER_CONFIG \
    --kubeconfig ADMIN_CLUSTER_KUBECONIFG \
    [--skip-prompt]

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

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

  • ‫ADMIN_KUBECONFIG_FILE: הנתיב לקובץ kubeconfig של אשכול האדמין

אם לא רוצים לקבל בקשה, כוללים את --skip-prompt.

צפייה בסטטוס של רוטציית מפתחות

כדי לראות את הסטטוס של רוטציית מפתחות:

gkectl update credentials ksa-signing-key status \
    --config USER_CLUSTER_CONFIG \
    --kubeconfig ADMIN_CLUSTER_KUBECONIFG

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

State of KSASigningKeyRotation with KSASigningKeyVersion 2 is -
status: True,
reason: KSASigningKeyRotationCompleted,
message:{"tokenVersion":2,"privateKeyVersion":2,"publicKeyVersions":[2]}

אם הרוטציה של מפתח החתימה של KSA עדיין מתבצעת, תופיע הודעה דומה לזו:

State of KSASigningKeyRotation with KSASigningKeyVersion 2 is -
status: False,
reason: KSASigningKeyRotationProcessedReason,
message:{"tokenVersion":2,"privateKeyVersion":2,"publicKeyVersions":[1,2]}