איחוד שירותי אימות הזהות של כוח עבודה מאפשר לזהויות שאינן של Google לגשת לשירותים שלGoogle Cloud . בהקשר של GKE ב-AWS, המשמעות היא שאתם יכולים להשתמש בזהויות חיצוניות קיימות כדי ליצור אשכול GKE או לגשת אליו בלי להסתמך על פרטי כניסה של Google.
היתרונות של שימוש באיחוד שירותי אימות הזהות של כוח העבודה הם:
- אתם לא צריכים יותר חשבונות כפולים בפלטפורמות או בספקים שונים.
- אתם מגדירים את ההרשאות רק פעם אחת, בלי שתצטרכו לבצע הגדרות בכמה פלטפורמות.
- אתם מפשטים את הגישה של המשתמשים, כי נדרשים פחות התחברויות וסיסמאות.
לפני שמתחילים
כדי לאפשר למשתמשים חיצוניים או לקבוצות חיצוניות לגשת לאשכולות GKE, צריך לבצע את השלבים הבאים:
כדי שמשתמשים או קבוצות מחוץ לארגון יוכלו להשתמש ב-GKE on AWS API, צריך להגדיר איחוד שירותי אימות הזהות של כוח עבודה.
- משתמשי Azure יכולים לעיין במאמר הגדרה של איחוד שירותי אימות הזהות של כוח העבודה באמצעות Azure AD.
- משתמשי Okta יכולים לעיין במאמר הגדרה של איחוד שירותי אימות הזהות של כוח עבודה באמצעות Okta.
- משתמשים בפלטפורמות אחרות יכולים לעיין במאמר הגדרת איחוד שירותי אימות הזהות של כוח עבודה.
מקצים למשתמשים או לקבוצות חיצוניים את התפקיד
gkemulticloud.viewerכדי שהם יוכלו לגשת לאשכולות. מקצים את התפקידcontainer.clusterViewerכדי להציג אשכולות במסוף Google Cloud .הערה: תפקידים הם אוספים של הרשאות. כשמקצים תפקיד לישות (משתמש, קבוצה או חשבון שירות), נותנים לישות הזו את כל ההרשאות שהתפקיד מכיל.
משתמשים
למשתמשים ספציפיים, צריך להקצות את התפקיד
gkemulticloud.viewer:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.viewer" \ --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
WORKFORCE_POOL_ID: המזהה שמזהה באופן ייחודי את מאגר הזהויות של כוח העבודה ב- Google Cloud. כשמגדירים את הפורמט של המזהה, חשוב לפעול לפי ההנחיות המומלצות שמופיעות במסמכי ה-IAM בקטע פרמטרים של שאילתה. -
SUBJECT_VALUE: המזהה שמזהה באופן ייחודי משתמש חיצוני. לדוגמה, המזהה יכול להיות כתובת אימייל כמוalex@cymbalgroup.com.
קבוצות
לקבוצות, צריך להקצות את התפקיד
gkemulticloud.viewer:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.viewer" \ --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
WORKFORCE_POOL_ID: המזהה שמזהה באופן ייחודי את מאגר הזהויות של כוח העבודה ב- Google Cloud. כשמגדירים את הפורמט של המזהה, חשוב לפעול לפי ההנחיות המומלצות שמופיעות במסמכי ה-IAM בקטע פרמטרים של שאילתה. -
GROUP_ID: מזהה ייחודי של קבוצה חיצונית.
-
אופציונלי: מקצים למשתמשים או לקבוצות החיצוניים את התפקידים המתאימים בניהול הזהויות והרשאות הגישה (IAM). השלב הזה נדרש רק אם רוצים לתת למשתמשים או לקבוצות את היכולת ליצור או לעדכן אשכולות. הוא לא נדרש רק כדי לגשת לאשכול.
משתמשים
למשתמשים ספציפיים, צריך להקצות את התפקיד
gkemulticloud.admin:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
WORKFORCE_POOL_ID: המזהה שמזהה באופן ייחודי את מאגר הזהויות של כוח העבודה ב- Google Cloud. כשמגדירים את הפורמט של המזהה, חשוב לפעול לפי ההנחיות המומלצות שמופיעות במסמכי ה-IAM בקטע פרמטרים של שאילתה. -
SUBJECT_VALUE: המזהה שמזהה באופן ייחודי משתמש חיצוני. לדוגמה, המזהה יכול להיות כתובת אימייל כמוalex@cymbalgroup.com.
קבוצות
לקבוצות, צריך להקצות את התפקיד
gkemulticloud.admin:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
WORKFORCE_POOL_ID: המזהה שמזהה באופן ייחודי את מאגר הזהויות של כוח העבודה ב- Google Cloud. כשמגדירים את הפורמט של המזהה, חשוב לפעול לפי ההנחיות המומלצות שמופיעות במסמכי ה-IAM בקטע פרמטרים של שאילתה. -
GROUP_ID: מזהה ייחודי של קבוצה חיצונית.
-
במאמר תפקידים והרשאות ב-API מפורטות ההרשאות והתפקידים ב-API שנדרשים ל-GKE ב-AWS.
מתן גישה חיצונית לאשכולות GKE
יש שתי שיטות להגדרת איחוד שירותי אימות הזהות של כוח עבודה, כדי שמשתמשים או קבוצות חיצוניים יוכלו לגשת לאשכולות GKE שלכם.
בשיטה 1 צריך להגדיר קובץ RBAC ולהחיל אותו על האשכול. השיטה הזו מאפשרת שליטה מדויקת בהרשאות, למשל לאפשר למשתמשים גישת קריאה בלבד למשאבים בלי להעניק להם גישה רחבה יותר.
בשיטה השנייה, צריך לציין גישה לזהויות חיצוניות כשיוצרים או מעדכנים אשכול. השיטה הזו מעניקה הרשאות אדמין מלאות למשתמשים או לקבוצות שצוינו.
בוחרים את השיטה שהכי מתאימה לרמת בקרת הגישה הרצויה: שיטה מספר 1 להרשאות מפורטות יותר, או שיטה מספר 2 למתן זכויות אדמין מלאות באשכול.
שיטה 1: שימוש בקובץ RBAC
השיטה הראשונה למתן גישה חיצונית לאשכולות GKE היא באמצעות קובץ RBAC. איך לעשות את זה?
מגדירים קובץ YAML של RBAC שכולל את הנושאים (משתמשים או קבוצות) ואת ההרשאות שרוצים להעניק להם באשכול GKE. הנה דוגמאות להגדרות RBAC ב-YAML למשתמשים פרטיים ולקבוצות:
משתמשים
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-user subjects: - kind: User name: principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.ioמחליפים את מה שכתוב בשדות הבאים:
-
WORKFORCE_POOL_ID: המזהה שמזהה באופן ייחודי את מאגר הזהויות של כוח העבודה ב- Google Cloud. כשמגדירים את הפורמט של המזהה, חשוב לפעול לפי ההנחיות המומלצות שמופיעות במסמכי ה-IAM בקטע פרמטרים של שאילתה. -
SUBJECT_VALUE: המזהה שמזהה באופן ייחודי משתמש חיצוני. לדוגמה, המזהה יכול להיות כתובת אימייל כמוalex@cymbalgroup.com.
קבוצות
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-group subjects: - kind: Group name: principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.ioמחליפים את מה שכתוב בשדות הבאים:
-
WORKFORCE_POOL_ID: המזהה שמזהה באופן ייחודי את מאגר הזהויות של כוח העבודה ב- Google Cloud. כשמגדירים את הפורמט של המזהה, חשוב לפעול לפי ההנחיות המומלצות שמופיעות במסמכי ה-IAM בקטע פרמטרים של שאילתה. -
GROUP_ID: מזהה ייחודי של קבוצה חיצונית.
-
מזהים את אשכול GKE שרוצים להגדיר ומגדירים אותו כהקשר הפעיל באמצעות הפקודה הבאה:
kubectl config use-context CLUSTER_CONTEXTמחליפים את
CLUSTER_CONTEXTבשם ההקשר המתאים לאשכול.אחרי שמגדירים את אשכול GKE הרצוי כהקשר הפעיל, מריצים את הפקודה הבאה כדי להחיל את הגדרות ה-RBAC על האשכול:
kubectl apply -f RBAC_PATHמחליפים את
RBAC_PATHבנתיב לקובץ ה-RBAC שיצרתם או ערכתם.כשמריצים את הפקודה הזו, למשתמשים או לקבוצות שצוינו בהגדרת ה-RBAC יש עכשיו הרשאות גישה לאשכול GKE הממוקד ולניהול שלו, כפי שמוגדר בכללי ה-RBAC.
אם צריך לבצע שינויים נוספים בהרשאות, משנים את קובץ ה-RBAC ומחילים אותו מחדש על האשכול על ידי חזרה על השלבים הקודמים.
שיטה 2: מתן גישה לזהויות חיצוניות במהלך יצירה או עדכון של אשכול
שיטה 2 מאפשרת גישה לזהויות חיצוניות במהלך תהליך יצירת האשכול או העדכון שלו.
כדי ליצור אשכול, פועלים לפי השלבים במאמר יצירת אשכול. כדי לעדכן אשכול, פועלים לפי השלבים שמפורטים במאמר עדכון אשכול.
כשמריצים את הפקודה gcloud כדי ליצור או לעדכן אשכול, מציינים את הפרמטרים admin-users ו/או admin-groups באופן הבא:
gcloud container aws clusters [create|update] CLUSTER_NAME \
--location=LOCATION
--admin-users=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE \
--admin-groups=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול. -
LOCATION: האזור Google Cloud שבו האשכול מנוהל. -
WORKFORCE_POOL_ID: המזהה שמזהה באופן ייחודי את מאגר הזהויות של כוח העבודה ב- Google Cloud. כשמגדירים את הפורמט של המזהה, חשוב לפעול לפי ההנחיות המומלצות שמופיעות במסמכי ה-IAM בקטע פרמטרים של שאילתה. -
SUBJECT_VALUE: המזהה שמזהה באופן ייחודי משתמש חיצוני. לדוגמה, המזהה יכול להיות כתובת אימייל כמוalex@cymbalgroup.com. -
GROUP_ID: מזהה ייחודי של קבוצה חיצונית.
סיכום של הענקת גישה למזהים חיצוניים לאשכולות GKE
אחרי שמבצעים את שיטה 1 או שיטה 2, המשתמשים החיצוניים או הקבוצות שצוינו יכולים להשתמש Google Cloud במסוף כדי להתחבר ולראות את פרטי האשכול. לחלופין, הם יכולים להשתמש ב-kubectl עם זהות מ-ה-CLI של gcloud כדי לנהל את האשכול, לבצע בו מניפולציות ולתקשר איתו.
כדי להריץ פקודות kubectl באשכולות GKE, אפשר לקרוא איך ליצור רשומה של kubeconfig.