בדף הזה מוסבר איך לנהל משתמשים ב-Distributed Cloud מחובר.
כשיוצרים אשכול מחובר של Distributed Cloud, רק לחשבון המשתמש שבו השתמשתם כדי ליצור את האשכול יש גישה לאשכול הזה. כדי להעניק גישה לאשכול למשתמשים נוספים, אפשר לבצע אחת מהפעולות הבאות:
מתן ההרשאות הנדרשות באמצעות Kubernetes RBAC
בקטע הזה מוסבר איך להעניק למשתמש הרשאות שנדרשות לצרכים העסקיים שלו בחשבון שלו באמצעות בקרת גישה מבוססת-תפקידים (RBAC) ב-Kubernetes. ההרשאות האלה כלולות בכמה תפקידים. אחרי שמעניקים את התפקיד המתאים לחשבון משתמש, אפשר להוסיף את החשבון לאשכול המחובר של Distributed Cloud.
Distributed Cloud connected לא תומך בקבוצות לניהול זהויות והרשאות גישה (IAM) או בספקי זהויות של צד שלישי לשימוש עם Kubernetes RBAC באשכולות של Distributed Cloud connected.
כדי להעניק תפקידים למשתמשים, צריך להשתמש במשאבי Kubernetes הבאים:
-
ClusterRole: מאפשר להחיל קבוצת הרשאות על כל מרחב שמות באשכול, וגם מעניק גישה למשאבים ברמת האשכול. -
ClusterRoleBinding: מקשר משאבClusterRoleלחשבון משתמש. -
Role: מאפשרת להחיל קבוצה של הרשאות על מרחב שמות ספציפי. -
RoleBinding: מקשרת משאבRoleאוClusterRoleלחשבון משתמש במרחב שמות ספציפי.
מתן הרשאות לאדמין של אשכול
כשיוצרים אשכול מחובר של Distributed Cloud, חשבון המשתמש שבו משתמשים כדי לעשות זאת הופך אוטומטית לאדמין של האשכול. כדי להעניק הרשאות אדמין של אשכול למשתמשים נוספים, צריך לקשר את חשבון המשתמש הרצוי לתפקיד cluster-admin על ידי יצירת משאב ClusterRoleBinding והחלת המשאב על האשכול:
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: BINDING_NAME subjects: kind: User name: ACCOUNT_NAME roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
מחליפים את מה שכתוב בשדות הבאים:
-
BINDING_NAME: שם שמזהה באופן ייחודי את קישור התפקיד הזה. -
ACCOUNT_NAME: השם של חשבון המשתמש של היעד.
אפשר גם להשתמש בפקודה kubectl הבאה:
kubectl create clusterrolebinding "BINDING_NAME" \ --clusterrole cluster-admin --user "ACCOUNT_NAME"
מחליפים את מה שכתוב בשדות הבאים:
-
BINDING_NAME: שם שמזהה באופן ייחודי את קישור התפקיד הזה. -
ACCOUNT_NAME: השם של חשבון המשתמש של היעד.
הענקת הרשאות למפתח אפליקציות
כדי להעניק למפתח אפליקציות את ההרשאות שנדרשות לפריסת עומסי עבודה באשכול היעד, צריך לבצע את הפעולות הבאות:
יוצרים משאב
Roleשמעניק את ההרשאות ליצור ולנהל קבוצות Pod, שירותים ופריסות במרחב השמות של היעד, ומחילים אותו על האשכול:apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: NAMESPACE name: ROLE_NAME rules: apiGroups: ["apps", ""] resources: ["pods", "deployments", "services"] verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
מחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE: השם של מרחב השמות של היעד. -
ROLE_NAME: שם שמזהה באופן ייחודי את התפקיד הזה.
-
יוצרים משאב
RoleBindingשמקשר את חשבונות המשתמשים של היעד לתפקיד שיצרתם בשלב הקודם, ומחילים אותו על האשכול:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: namespace: NAMESPACE name: BINDING_NAME subjects: kind: User name: ACCOUNT_NAME kind: User name: ACCOUNT_NAME roleRef: kind: Role name: ROLE_NAME apiGroup: rbac.authorization.k8s.io
מחליפים את מה שכתוב בשדות הבאים:
-
BINDING_NAME: שם שמזהה באופן ייחודי את קישור התפקיד הזה. -
NAMESPACE: השם של מרחב השמות של היעד. -
ACCOUNT_NAME: השם של חשבון המשתמש של היעד. -
ROLE_NAME: השם של תפקיד היעד.
-
מתן הרשאות לסוכן שירות של Cloud Build
כדי לתת לסוכן שירות של Cloud Build את ההרשאות שנדרשות לפריסת עומסי עבודה באשכול היעד, מבצעים את הפעולות הבאות:
יוצרים משאב
Roleשמעניק את ההרשאות ליצור ולנהל קבוצות Pod, שירותים ופריסות במרחב השמות של היעד, ומחילים אותו על האשכול:apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: NAMESPACE name: ROLE_NAME rules: apiGroups: ["apps", ""] resources: ["pods", "deployments", "services"] verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
מחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE: השם של מרחב השמות של היעד. -
ROLE_NAME: שם שמזהה באופן ייחודי את התפקיד הזה.
-
יוצרים משאב
RoleBindingשמקשר את חשבון סוכן השירות של Cloud Build אל התפקיד שיצרתם בשלב הקודם, ומחילים אותו על האשכול:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: namespace: NAMESPACE name: BINDING_NAME subjects: kind: User name: PROJECT_ID@cloudbuild.gserviceaccount.com roleRef: kind: Role name: ROLE_NAME apiGroup: rbac.authorization.k8s.io
מחליפים את מה שכתוב בשדות הבאים:
-
BINDING_NAME: שם שמזהה באופן ייחודי את קישור התפקיד הזה. -
NAMESPACE: השם של מרחב השמות של היעד. -
PROJECT_ID: המזהה של Google Cloud פרויקט היעד. -
ROLE_NAME: השם של תפקיד היעד.
-
אם אתם צריכים לתת לסוכן השירות של Cloud Build הרשאות לפריסה ולניהול של עומסי עבודה בכל מרחבי השמות באשכול היעד, אתם צריכים ליצור משאב ClusterRole ומשאב ClusterRoleBinding במקום משאב Role ומשאב RoleBinding.
מתן הרשאות לצפייה בפרטי האשכול
כדי להעניק את ההרשאות שנדרשות לצפייה במידע מפורט על האשכול במסוף Google Cloud , צריך לבצע את הפעולות הבאות:
יוצרים משאב
ClusterRoleשמאפשר לסוכן Connect להתחזות למשתמש שצריך להציג את פרטי האשכול במסוף Google Cloud :apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: ROLE_NAME rules: apiGroups: [""] resources: ["users"] verbs: ["impersonate"] resourceNames: ["ACCOUNT_NAME"]
מחליפים את מה שכתוב בשדות הבאים:
-
ROLE_NAME: השם של תפקיד היעד. -
ACCOUNT_NAME: השם של חשבון המשתמש של היעד.
-
יוצרים משאב
ClusterRoleBindingשמקשר את חשבון הסוכן של Connect Agent Service לתפקיד שיצרתם בשלב הקודם, ומחילים אותו על האשכול:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: BINDING_NAME subjects: kind: ServiceAccount name: ACCOUNT_NAME roleRef: kind: ClusterRole name: ROLE_NAME apiGroup: rbac.authorization.k8s.io
מחליפים את מה שכתוב בשדות הבאים:
-
BINDING_NAME: שם שמזהה באופן ייחודי את קישור התפקיד הזה. -
ACCOUNT_NAME: השם של חשבון המשתמש בשירות היעד. -
ROLE_NAME: השם של תפקיד היעד.
-
צריך ליצור צמד משאבים נפרד של ClusterRole ו-ClusterRoleBinding לכל משתמש מושפע.
אפשר גם להשתמש בכלי kubectl של שורת הפקודה כדי לתת את ההרשאות שנדרשות לצפייה בפרטי האשכול, באופן הבא:
יוצרים משאב
ClusterRoleשמאפשר לסוכן Connect להתחזות למשתמש שצריך להציג את פרטי האשכול במסוף Google Cloud :kubectl create clusterrole "ROLE_NAME" --verb impersonate \ --resource users --resource-name "ACCOUNT_NAME"
מחליפים את מה שכתוב בשדות הבאים:
-
ROLE_NAME: השם של תפקיד היעד. -
ACCOUNT_NAME: השם של חשבון המשתמש בשירות היעד.
-
יוצרים משאב
ClusterRoleBindingשמקשר את חשבון הסוכן של Connect Agent Service לתפקיד שיצרתם בשלב הקודם, ומחילים אותו על האשכול:kubectl create clusterrolebinding "BINDING_NAME" --clusterrole \ "ROLE_NAME" --serviceaccount "ACCOUNT_NAME"
מחליפים את מה שכתוב בשדות הבאים:
-
BINDING_NAME: שם שמזהה באופן ייחודי את קישור התפקיד הזה. -
ACCOUNT_NAME: השם של חשבון המשתמש בשירות היעד. -
ROLE_NAME: השם של תפקיד היעד.
-
שימוש בשער חיבור כדי לגשת לאשכולות מחוברים של Distributed Cloud
יש לכם אפשרות להשתמש בשער חיבור כדי לגשת לאשכולות המחוברים של Distributed Cloud. משתמש בשער Connect צריך אחד או יותר מהתפקידים הבאים, בהתאם לדרישות העסקיות שלו:
- Connect Gateway Admin (
roles/gkehub.gatewayAdmin): מעניקה גישה ל-Connect Gateway API. התפקיד הזה מאפשר להשתמש בכליkubectlשל שורת הפקודה כדי לנהל את האשכול. - Connect Gateway Editor (
roles/gkehub.gatewayEditor): מעניקה גישת קריאה וכתיבה לאשכול. - Connect Gateway Reader (
roles/gkehub.gatewayReader): מעניקה גישה לקריאה בלבד לאשכול. - GKE Hub Viewer (
roles/gkehub.viewer): מאפשרת לאחזר קובצי kubeconfig מהאשכול.
מידע נוסף על השימוש בשער לחיבור זמין במאמרים הבאים: