אחרי שמגדירים אימות לאשכולות שהם חברים בצי, אפשר להתחבר לאשכולות שהוגדרו משורת הפקודה באמצעות שם משתמש וסיסמה מספק זהויות של צד שלישי. פועלים לפי ההוראות בדף הזה אם האדמין של האשכול בחר לאפשר לכם לבצע אימות ישירות לאשכול באמצעות שם דומיין מוגדר במלואו (FQDN). בספקי SAML, גישת התחברות נתמכת רק באמצעות גישת האימות הזו.
שיטת האימות הזו נתמכת רק באשכולות מקומיים (Google Distributed Cloud) ב-VMware וב-bare metal, החל מגרסה 1.29. אין תמיכה בסוגים אחרים של אשכולות.
גרסת ה-CLI של gcloud שנדרשת כדי להתחבר באמצעות ה-FQDN שצוין היא לפחות גרסה 477.0.0.
תהליך העבודה להתחברות
אלה השלבים בתהליך העבודה כשמשתמש מתחבר באמצעות גישת FQDN:
- התחלת ההתחברות: המשתמש מריץ את הפקודה
gcloud anthos auth login --server APISERVER-URLכדי להתחיל את תהליך ההתחברות. - בחירת ספק זהויות: המשתמש מקבל רשימה של ספקי זהויות מוגדרים. המשתמש בוחר את הספק שבו מאוחסנים פרטי הכניסה שלו.
אימות באמצעות ספק זהויות: תהליך האימות משתנה בהתאם לפרוטוקול של ספק הזהויות שבוחרים:
- OIDC: המשתמש מופנה לדף הכניסה של ספק OIDC. אחרי התחברות מוצלחת, הספק שולח קוד חזרה לאשכול, שממיר אותו לטוקן גישה באמצעות תקשורת בערוץ אחורי.
- SAML: המשתמש מועבר לדף ההתחברות של ספק SAML. אחרי התחברות מוצלחת, הספק שולח ישירות טוקן (טענת נכוֹנוּת (assertion)) בחזרה לאשכול, וכך נמנעת קריאה חוזרת נוספת.
- LDAP: במקום הפניה לספק חיצוני, מופיע דף כניסה שבו המשתמש מזין את פרטי הכניסה שלו ל-LDAP, והם מאומתים ישירות מול שרת ה-LDAP.
אימות האסימון ויצירת קובץ kubeconfig: האשכול מאמת את האסימון שהתקבל (או את טענת הנכוֹנוּת (assertion)), יוצר אסימון חדש למשתמש ושולח בחזרה קובץ kubeconfig שמכיל את האסימון הזה.
גישה לאשכול: המשתמש יכול לגשת לאשכול באמצעות פקודות
kubectl. לקוחkubectlשולח באופן אוטומטי את האסימון מקובץ ה-kubeconfig עם כל בקשה.אימות אסימונים והרשאה של RBAC: שרת ה-API של Kubernetes מקבל את האסימון, שירות האימות מאמת את האסימון ומאחזר את הטענות של המשתמש (שם המשתמש והקבוצות). אחרי האימות, שרת ה-API מריץ בדיקות של בקרת גישה מבוססת-תפקידים (RBAC) כדי לקבוע לאילו משאבים יש למשתמש הרשאה לגשת.
כניסה באמצעות אישורי SNI מהימנים
אישורים של SNI מפשטים את הגישה לאשכולות על ידי שימוש באישורים מהימנים שכבר קיימים במכשירים של החברה. אדמינים יכולים לציין את האישור הזה בזמן יצירת האשכול. אם באשכול שלכם נעשה שימוש באישור SNI מהימן ברמת האשכול, צריך להשתמש בפקודה שבקטע הזה עם ה-FQDN שסופק על ידי האדמין כדי להיכנס לאשכול ולקבל אסימון גישה. אפשר גם להשתמש בקובץ kubeconfig מאובטח שבו הטוקן מאוחסן אחרי אימות מוצלח.
מריצים את הפקודה הבאה כדי לבצע אימות לשרת:
gcloud anthos auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE
מחליפים את מה שכתוב בשדות הבאים:
- APISERVER-URL: שם הדומיין המלא (FQDN) של שרת ה-API של Kubernetes באשכול.
- OUTPUT_FILE: משתמשים בדגל הזה אם קובץ
kubeconfigנמצא במיקום שאינו ברירת המחדל. אם לא מציינים את הדגל הזה, אסימוני האימות מתווספים לקובץkubeconfigבמיקום ברירת המחדל. לדוגמה:--kubeconfig /path/to/custom.kubeconfig.
כניסה באמצעות אישורים שהונפקו על ידי CA של אשכול
אם לא משתמשים באישור SNI מהימן ברמת האשכול, האישור שמשמש את שירות הזהויות מונפק על ידי רשות האישורים (CA) של האשכול. האדמינים מפיצים את אישור ה-CA הזה למשתמשים. מריצים את הפקודה הבאה באמצעות אישור ה-CA של האשכול כדי להתחבר לאשכול:
gcloud anthos auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --login-config-cert CLUSTER_CA_CERTIFICATE
אימות חוצה-מכשירים
אימות בין מכשירים מאפשר לכם להיכנס לאשכולות של Google Distributed Cloud (GDC) ממכשירים שלא מותקן בהם דפדפן. אתם יכולים להתחיל את תהליך האימות במכשיר הראשי (שלא מותקן בו דפדפן) ולסיים אותו במכשיר משני שמותקן בו דפדפן.
כך מגדירים אימות בין מכשירים.
כניסה למכשיר הראשי
מריצים את הפקודה הבאה כדי לבצע אימות לשרת במכשיר הראשי. מציינים את הארגומנט
--no-browserכדי לציין שבמכשיר שממנו רוצים לגשת לאשכול לא מותקן דפדפן.gcloud anthos auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --no-browserהפלט הוא פקודה שצריך להשתמש בה כשמתחברים מהמכשיר השני. דוגמה לפקודה:
You are authorizing gcloud CLI without access to a web browser. Please run the following command on a machine with a web browser and copy its output back here. gcloud auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --remote-bootstrap="URL_TO_COPY_ON_THE_SECOND_DEVICE" Enter the output of the above command:מעתיקים את הפקודה
gcloud.כניסה לקלאסטרים במכשיר השני
לפני שמתחברים מהמכשיר השני, צריך לוודא שהדפדפן מותקן ושיש קישוריות לרשת לשרת ה-API של Kubernetes. מריצים במכשיר השני את הפקודה שהעתקתם בשלב הקודם.
gcloud auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --remote-bootstrap="URL_TO_COPY_ON_THE_SECOND_DEVICE"כשמנסים להיכנס לחשבון מהמכשיר הזה, מוצגת הודעת אזהרה. פועלים לפי תהליך האימות הרגיל שמוצג בדפדפן. אחרי שתהליך האימות יסתיים בהצלחה, תקבלו קוד חד-פעמי. מעתיקים את הקוד הזה.
WARNING: The following line enables access to your Cluster resources. ONLY COPY IT TO A MACHINE YOU TRUST AND RUN 'gcloud auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --no-browser' EARLY ON. Or_mHYQFm90efgJdwhajx0KeC_WXkuvBPuWv_83nFX9J_Eawm3tQcBpxBBWszj6Ix8dAWCgc1QjJBrlt67bzIYIBTexU7dc_ggtkMTNkG7wCIGYZ75zfg9P1gBshP33STe0ks-AoVonzk01YekMbyNugeYSO18CBwFhaDDSMABq4PI-clgbaSh8CPqrvDKRLenbvfD9BSK6SW945I0bOgPURxNzUX4sICWcvFozhQdLYICuwRM0AgarNFwoeh-0wbJGyRqUjq2NJbaYdf-VCaByiZaGPR2B1QVGXO7deKGtUnk1_tTFOnB6sJQvT6UJ8Ge5nkR38rqBeeGkYdlVIBTXShENG80An1Ve524xZupSzCHNSVTJqYgהשלמת הכניסה במכשיר הראשי
מדביקים את הקוד שהעתקתם מהשלב הקודם בהנחיה של המכשיר הראשי.
Enter the code you received on the other device: Or_mHYQFm90efgJdwhajx0KeC_WXkuvBPuWv_83nFX9J_Eawm3tQcBpxBBWszj6Ix8dAWCgc1QjJBrlt67bzIYIBTexU7dc_ggtkMTNkG7wCIGYZ75zfg9P1gBshP33STe0ks-AoVonzk01YekMbyNugeYSO18CBwFhaDDSMABq4PI-clgbaSh8CPqrvDKRLenbvfD9BSK6SW945I0bOgPURxNzUX4sICWcvFozhQdLYICuwRM0AgarNFwoeh-0wbJGyRqUjq2NJbaYdf-VCaByiZaGPR2B1QVGXO7deKGtUnk1_tTFOnB6sJQvT6UJ8Ge5nkR38rqBeeGkYdlVIBTXShENG80An1Ve524xZupSzCHNSVTJqYgהמכשיר משתמש בקוד הזה כדי ליצור אמצעי לאימות ששמור בקובץ
kubeconfig. הקובץ הזה מאפשר גישה לאשכול במכשיר הראשי. אחרי שמתחברים, מוצגת ההודעה הבאה:You are logged in! Context is stored under the name '{cluster-name}'