אתם יכולים להתחבר לאשכולות שהוגדרו משורת הפקודה באמצעות שם משתמש וסיסמה מספק זהויות של צד שלישי. אם האדמין של האשכול בחר לשתף איתכם קובץ תצורה לכניסה לשימוש כשמבצעים אימות באמצעות ה-CLI של gcloud, אתם צריכים לפעול לפי ההוראות שבדף הזה. מידע נוסף על גישה לאשכולות זמין במאמר בחירת שיטת גישה להתחברות לאשכולות. המסמך הזה רלוונטי רק לסוגי אשכולות נתמכים.
תהליך העבודה להתחברות
זהו תהליך העבודה שבו אפשר להשתמש כדי לגשת לאשכולות מוגדרים באמצעות קובץ תצורה לכניסה. התהליך המדויק תלוי בסוג ספק הזהויות שבו משתמשים.
תהליך עבודה של OIDC
בספקי OIDC, אדמין של אשכול רושם אפליקציית לקוח עבור ספק הזהויות ומגדיר כל אשכול. במקרה הצורך, הם יכולים להוסיף בקרת גישה פרטנית באמצעות בקרת גישה מבוססת-תפקידים (RBAC) של Kubernetes.
אפשר להתחבר לאשכולות בדרכים הבאות:
גישה לשורת פקודה
- מאמתים את הזהות: מריצים את הפקודה
gcloud anthos auth loginומזינים את פרטי הכניסה של OIDC. הפעולה הזו מאחזרת טוקן זהות מהספק. - עדכון קובץ ה-kubeconfig: הטוקן שאוחזר מתווסף אוטומטית לקובץ ה-kubeconfig.
- גישה לאשכול: משתמשים ב-
kubectlכדי ליצור אינטראקציה עם האשכול. האשכול מאמת את האסימון ומאשר את הגישה.
גישה למסוףGoogle Cloud
- התחלת התחברות: כשמתחברים ממסוף Google Cloud , מופנים לדף ההתחברות של ספק הזהויות.
- אימות: מזינים את פרטי הכניסה ומתחברים בהצלחה.
- גישה לאשכול: כדי לראות ולנהל את משאבי האשכול, צריך לחזור אל Google Cloud המסוף.
זרימת עבודה של LDAP
בספקי LDAP, אדמין של אשכול מגדיר כל אשכול, כולל פרטי הכניסה של לקוח ה-LDAP. אדמינים של אשכולות יכולים להוסיף בקרת גישה פרטנית באמצעות בקרת גישה מבוססת-תפקידים (RBAC) ב-Kubernetes, אם נדרש.
גישה לשורת פקודה
- מתחילים את תהליך הכניסה: מריצים את הפקודה
gcloud anthos auth loginומזינים את פרטי הכניסה ל-LDAP. - יצירת אסימון: האשכול שולח שאילתה לשרת ה-LDAP, מאחזר את מאפייני המשתמש ומאגד אותם באסימון לטווח קצר (STS). פרטי הכניסה ל-LDAP לא נשמרים באופן מקומי.
- עדכון של Kubeconfig: טוקן ה-STS מתווסף אוטומטית לקובץ
kubeconfig. - גישה לאשכול: אפשר להשתמש ב-
kubectlכדי ליצור אינטראקציה עם האשכול. האשכול מאמת את האסימון ומאשר את הגישה. כברירת מחדל, תוקף האסימון פג אחרי שעה, והמשתמש צריך להתחבר שוב.
כדי לבצע אימות לאשכולות משורת הפקודה, צריך להריץ פקודות אימות של gcloud באמצעות קובץ תצורה לכניסה שסופק על ידי האדמין של האשכול.
אחזור קובץ התצורה
ב-CLI של gcloud מוגדרים שם קובץ ומיקום ברירת מחדל במחשב המקומי שלכם לקובץ תצורה של האימות. יכול להיות שהאדמין יעתיק את הקובץ למחשב שלכם. אם הקובץ סופק לכם באופן ידני ואתם צריכים לשמור אותו במחשב בעצמכם, תוכלו להשתמש בערכי ברירת המחדל כדי לפשט את פקודות gcloud לאימות.
משתמשים בפקודות הבאות כדי להעתיק את קובץ תצורת האימות למיקום ברירת המחדל:
Linux
mkdir -p $HOME/.config/google/anthos/ cp [AUTH_CONFIG_FILE] $HOME/.config/google/anthos/kubectl-anthos-config.yaml
[AUTH_CONFIG_FILE] הוא השם של קובץ תצורת האימות. לדוגמה kubectl-anthos-config.yaml.
macOS
mkdir -p $HOME/Library/Preferences/google/anthos/ cp [AUTH_CONFIG_FILE] $HOME/Library/Preferences/google/anthos/kubectl-anthos-config.yaml
[AUTH_CONFIG_FILE] הוא השם של קובץ תצורת האימות. לדוגמה kubectl-anthos-config.yaml.
Windows
md "%APPDATA%\google\anthos" copy [AUTH_CONFIG_FILE] "%APPDATA%\google\anthos\kubectl-anthos-config.yaml"
[AUTH_CONFIG_FILE] הוא השם של קובץ תצורת האימות. לדוגמה kubectl-anthos-config.yaml.
אם אתם או מנהל המערכת שלכם בוחרים להשתמש בשם קובץ או במיקום אחר (לדוגמה, אם מנהל המערכת מספק את הקובץ בכתובת URL מאובטחת), אתם יכולים לציין זאת באמצעות האפשרות --login-config בכל אחת מבקשות האימות. פרטים נוספים מופיעים בקטע הבא.
אימות לאשכול
מריצים פקודות gcloud כדי לבצע אימות באמצעות האשכולות:
מריצים את הפקודה
gcloud anthos auth loginכדי להתחיל את תהליך האימות:gcloud anthos auth login \ --cluster [CLUSTER_NAME] \ --user [USER_NAME] \ --login-config [AUTH_CONFIG_FILE_PATH] \ --login-config-cert [CA_CERT_PEM_FILE] \ --kubeconfig [CLUSTER_KUBECONFIG]
מחליפים את מה שכתוב בשדות הבאים:
[CLUSTER_NAME] (אופציונלי) מציין את השם של האשכול. אם לא מציינים את הדגל הזה, מוצגת בקשה לבחור מבין האשכולות שצוינו בקובץ התצורה של האימות.
[USER_NAME] (אופציונלי) מציין את שם המשתמש של פרטי הכניסה שמאוחסנים בקובץ
kubeconfig. ערך ברירת המחדל הוא[CLUSTER_NAME]-anthos-default-user.[AUTH_CONFIG_FILE_PATH] (אופציונלי) מציין את הנתיב או כתובת ה-URL בהתאמה אישית למיקום שבו קובץ תצורת האימות מאוחסן או מתארח. אפשר להשמיט את הפרמטר הזה אם הקובץ נמצא במיקום ברירת המחדל. דוגמה:
--login-config /path/to/custom/authentication-config.yaml[CA_CERT_PEM_FILE] (אופציונלי) מציין את הנתיב לקובץ אישור PEM מרשות האישורים. אם קובץ תצורת האימות מאוחסן בצורה מאובטחת, אפשר להשתמש בחיבור HTTPS כדי לגשת לקובץ. לדוגמה:
--login-config-cert my-cert.pem[CLUSTER_KUBECONFIG] (אופציונלי) מציין את הנתיב המותאם אישית לקובץ [CLUSTER_KUBECONFIG] של האשכול.
kubeconfigאסימוני המזהה של OIDC שמוחזרים על ידי ספק OpenID מאוחסנים בקובץkubeconfig.משתמשים בדגל הזה אם קובץ
kubeconfigנמצא במיקום שאינו ברירת המחדל. אם לא מציינים את הדגל הזה, אסימוני האימות מתווספים לקובץkubeconfigבמיקום ברירת המחדל. דוגמה:--kubeconfig /path/to/custom.kubeconfig
דוגמאות:
אימות לאשכול ספציפי:
gcloud anthos auth login --cluster my-production-clusterמשתמשים בהנחיה כדי לבחור את האשכול שאיתו רוצים לבצע אימות:
gcloud anthos auth loginתוצאה:
Please use the --cluster flag to specify a cluster from the list below: Source: $HOME/.config/google/anthos/kubectl-anthos-config.yaml 1. Cluster: projects/1000000000000/locations/global/memberships/gke-gcp-cluster ServerIP: https://104.198.180.50:440 2. Cluster: projects/1000000000000/locations/global/memberships/gke-baremetal-cluster ServerIP: https://104.198.180.51:440 3. Cluster: projects/1000000000000/locations/global/memberships/gke-onprem-cluster ServerIP: https://104.198.180.52:440 4. Cluster: projects/1000000000000/locations/global/memberships/gke-aws-cluster ServerIP: https://104.198.180.53:440שימוש בקובץ תצורה של אימות שמתארח:
gcloud anthos auth login \ --cluster my-production-cluster \ --login-config HTTPS://my-secure-server/kubectl-anthos-config.yaml \ --login-config-cert my-cert.pemשימוש בהנחיה לבחירת אפשרות אימות. מידע נוסף זמין במאמר בחירת שיטת אימות.
מזינים את פרטי הכניסה במסך ההסכמה מבוסס-הדפדפן שנפתח. אם הפעולה הזו מצליחה, קובץ
kubeconfigאמור להכיל עכשיו טוקן מזהה שהפקודותkubectlישתמשו בו כדי לבצע אימות מול שרת Kubernetes API באשכול.כדי לוודא שהאימות בוצע בהצלחה, מריצים אחת מ
kubectlהפקודות כדי לגשת למשאב באשכול. לדוגמה, אם יש לכם גישה למשאב nodes באשכול (הגישה הזו מוגדרת על ידי האדמין של האשכול), תוכלו להריץ את הפקודה הבאה ולראות את הצמתים של האשכול:kubectl get nodes --kubeconfig [CLUSTER_KUBECONFIG]
מידע על פתרון בעיות שקשורות לגישת משתמשים זמין במאמר פתרון בעיות גישת משתמשים.
בחירה של שיטת אימות
אם האדמין של האשכול הגדיר כמה ספקי זהויות לאשכול (לדוגמה, ספק OIDC ושרת LDAP), ולא הגדיר ספק ברירת מחדל לאשכול, תופיע לכם בקשה בכניסה לבחור אפשרות אימות, כמו בדוגמה הבאה:
gcloud anthos auth login
Please select your preferred authentication option for cluster [gke-onprem-ldap]
[1] LDAP Server
[2] OIDC
[3] cancel
Please enter your numeric choice:
1
Setting Preferred Authentication option to [LDAP Server]
מזינים את המספר של הבחירה הרצויה וממשיכים להתחבר כמו שמתואר בקטע אימות לגישה לאשכול למעלה.
אפשרות האימות שבחרתם נשמרת עד שמנהל האשכול משנה את ספק ברירת המחדל של האשכול הזה, או עד שאתם משנים אותה בעצמכם. כדי לשנות את אפשרות האימות המועדפת, משתמשים בדגל --set-preferred-authentication.
gcloud anthos auth login --set-preferred-authentication
אמורה להופיע תוצאה כמו בדוגמה הבאה, שתאפשר לכם לבחור אפשרות חדשה לאימות מועדף:
Your current authentication method is [1] AD Server. Please select your preferred authentication option for cluster [gke-onprem-ldap]
[1] LDAP Server
[2] OIDC
[3] cancel
Please enter your numeric choice:
2
Setting Preferred Authentication option to [OIDC]
שימוש ב-SSH לאימות ממכונה מרוחקת
כדי להתחבר למכונה מרוחקת ולאמת את עצמכם לאשכול באמצעות SSH, קובץ תצורת האימות צריך להיות במכונה המרוחקת, ואתם צריכים להיות מסוגלים להגיע לספק OpenID מהמכונה המקומית.
במחשב המקומי, מריצים את הפקודה הבאה:
ssh [USER_NAME]@[REMOTE_MACHINE] -L [LOCAL_PORT]:localhost:[REMOTE_PORT]
מחליפים את מה שכתוב בשדות הבאים:
[USER_NAME] ו-[REMOTE_MACHINE] הם הערכים הרגילים שמשמשים לכניסה באמצעות SSH.
[LOCAL_PORT] היא יציאה פתוחה לבחירתכם במחשב המקומי, שתשמש אתכם לגישה למחשב המרוחק.
[REMOTE_PORT] היא היציאה שהגדרתם לכתובת ה-URL להפניה אוטומטית של OIDC. אפשר למצוא את הערך הזה בשדה
kubectlRedirectURIבקובץ תצורת האימות.
במעטפת SSH, מריצים את הפקודה הבאה כדי להתחיל את תהליך האימות:
gcloud anthos auth login --login-config [AUTH_CONFIG_FILE]
[AUTH_CONFIG_FILE] הוא הנתיב של קובץ תצורת האימות במחשב המרוחק.
במחשב המקומי, בדפדפן, עוברים לכתובת http://localhost:[LOCAL_PORT]/login ומבצעים את תהליך הכניסה של OIDC.
עכשיו בקובץ kubeconfig במחשב המרוחק יש את האסימון שדרוש לכם כדי לגשת לאשכול.
במעטפת SSH, מוודאים שיש לכם גישה לאשכול:
kubectl --kubeconfig [CLUSTER_KUBECONFIG] get nodes