במאמר הזה מוסבר איך לנהל הרשאות עבור אשכולות רגילים ב-Google Distributed Cloud (GDC) עם בידוד פיזי באמצעות gdcloud CLI. קלאסטרים רגילים הם סביבות Kubernetes שמוגדרות בהיקף הפרויקט עם שירותי ברירת מחדל מינימליים, ומציעות גמישות ושליטה רבות יותר לעומסי עבודה מותאמים אישית.
מידע נוסף על אשכולות רגילים וסוגים אחרים של אשכולות זמין במאמר הגדרות של אשכול Kubernetes.
המסמך הזה מיועד לקהלים בקבוצת מפעילים של אפליקציות, כמו צוותי פיתוח או מדעני נתונים, שצריכים לנהל ולאבטח משאבים בפרויקטים של GDC. מידע נוסף מופיע במאמרי העזרה בנושא קהלים ב-GDC עם פער אבטחה.
לפני שמתחילים
לפני שמנהלים גישה לאשכולות רגילים, צריך לוודא שיש לכם את ההרשאות הדרושות ולהכין את הסביבה.
שליחת בקשה לתפקידי IAM
פונים לאדמין של IAM בארגון ומבקשים את התפקידים הבאים בהתאם למשימות שצריך לבצע:
- אדמין IAM של פרויקט (
project-iam-admin): יצירה, עדכון ומחיקה של הקצאות תפקידים לאשכולות רגילים בפרויקט. - אדמין רגיל של אשכול (
standard-cluster-admin): יצירה, עדכון ומחיקה של שיוכי תפקידים באשכול רגיל ספציפי.
הכנת הסביבה
הענקת הרשאות לגישה לאשכול רגיל
משתמש עם התפקיד Project IAM Admin (project-iam-admin) יכול להעניק למשתמשים אחרים את התפקידים הנדרשים לניהול גישה באשכולות רגילים:
נכנסים באמצעות ספק הזהויות שהגדרתם באמצעות ה-CLI של gcloud.
נותנים למשתמש את התפקיד Standard Cluster Admin (
standard-cluster-admin) בפרויקט. הפקודה הזו מקשרת את המשתמש לתפקיד, ומאפשרת לו לנהל את הגישה באשכול הרגיל.מידע נוסף על התפקידים מופיע במאמרים תיאורים של תפקידים מוגדרים מראש והגדרות של תפקידים בפרויקטים.
gdcloud projects add-iam-policy-binding PROJECT \ --role=ROLE \ --member=user:USER_ACCOUNTמחליפים את המשתנים הבאים:
-
PROJECT: השם של הפרויקט שבו קיים האשכול הרגיל. -
ROLE: שם התפקיד שרוצים להקצות (למשלstandard-cluster-admin). -
USER_ACCOUNT: חשבון המשתמש שרוצים להקצות לו את התפקיד, כולל הקידומת של ספק הזהויות שמשויכת לארגון (למשלidpprefix-user@example.com). הקידומת הספציפית שמשמשת תלויה בהגדרת ה-IdP של הארגון. מידע נוסף זמין במאמר בנושא התחברות לספק זהויות.
בדוגמה הבאה מוקצה התפקיד 'אדמין של אשכול רגיל' ל-
user@example.com, בהנחה שהקידומת של ספק הזהויות היאfop-עבור פרויקטfoo:gdcloud projects add-iam-policy-binding foo \ --role=standard-cluster-admin \ --member=user:fop-user@example.com-
ניהול הגישה באשכול הרגיל
משתמש עם התפקיד Standard Cluster Admin (standard-cluster-admin) יכול להעניק גישה בתוך אשכול רגיל:
נכנסים באמצעות ספק הזהויות שהגדרתם באמצעות ה-CLI של gcloud.
כדי ליצור קובץ kubeconfig עבור אשכול רגיל, משתמשים בדגל
--standard. הדגל הזה נדרש כדי לטרגט אשכול רגיל.export KUBECONFIG=KUBECONFIG_FILE gdcloud clusters get-credentials STANDARD_CLUSTER_NAME --standard --project=PROJECTמחליפים את המשתנים הבאים:
-
KUBECONFIG_FILE: הנתיב לקובץ kubeconfig, לדוגמהstandard-cluster-kubeconfig.yaml. -
STANDARD_CLUSTER_NAME: השם של אשכול התקנים. -
PROJECT: השם של הפרויקט שבו קיים האשכול הרגיל.
-
מגדירים הרשאות באשכול הרגיל באמצעות
kubectl.משתמשים עם הרשאות
standard-cluster-adminיכולים ליצור אובייקטים שלRoleושלClusterRoleבהתאמה אישית. כדי להעניק את ההרשאות האלה, הם יכולים ליצור את האובייקטים המתאימיםRolebindingו-ClusterRoleBindingכדי לקשר את התפקידים לנושאים ספציפיים, כמו משתמשים או חשבונות שירות.בדוגמה הבאה נעשה שימוש ב-
kubectlכדי ליצורRoleבהתאמה אישית בשםtest-roleבמרחב השמותtest:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: test-role namespace: test rules: - apiGroups: - "" resources: - configmaps verbs: - get EOFבדוגמה הבאה נוצר
RoleBindingעבורRoleבשםtest-roleבמרחב השמותtest. הפקודה מעניקה הרשאות למשתמש alice@example.com עם הקידומת של ספק הזהויותfop-, וגם ל-ServiceAccountבשםmy-service-accountבמרחב השמותdefault:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: test-role-binding namespace: test subjects: - kind: User name: fop-alice@example.com apiGroup: rbac.authorization.k8s.io - kind: ServiceAccount name: my-service-account namespace: default roleRef: kind: Role name: test-role apiGroup: rbac.authorization.k8s.io EOF