במאמר הזה מוסבר איך לנהל את צמדי המפתח/ערך הקיימים של התגים שמארגנים את הפרויקטים שלכם ב-Google Distributed Cloud (GDC) עם בידוד פיזי. אדמינים יכולים לראות את התגים באמצעות הרשאות לניהול זהויות והרשאות גישה (IAM). אתם יכולים להגדיר הרשאות לצמדים של מפתח וערך בתג כדי לקבוע מי יכול לראות אותם כשהם משויכים לפרויקט. אפשר גם לראות את המאפיינים של התגים הקיימים כדי לעקוב אחרי אופן השימוש בתגים בארגון, למשל:
מידע נוסף על תגים זמין במאמר סקירה כללית על תגים.
המסמך הזה מיועד לאדמינים של IT בקבוצת האדמינים של הפלטפורמה, שאחראים על ארגון וניהול פרויקטים ב-GDC universe. מידע נוסף מופיע במאמרי העזרה בנושא קהלים ב-GDC עם פער אבטחה.
לפני שמתחילים
כדי לקבל את ההרשאות שדרושות להקצאת הרשאות תגים למשתמשים אחרים או לבדיקת מרחבי שמות של זוגות מפתח/ערך של תגים, צריך לבקש מאדמין ה-IAM בארגון להקצות לכם את תפקיד אדמין התגים (
tag-admin).כדי לקבל את ההרשאות שנדרשות להצגת רשימת פרויקטים עם תג, צריך לבקש מאדמין IAM בארגון להקצות לכם את התפקיד Project Viewer (
project-viewer).
החלת הרשאות על צמד מפתח/ערך של תג
כדי שלמשתמשים תהיה גישה למפתחות ולערכים של תגים ויוכלו לנהל אותם, צריך להקצות להם תפקידים ספציפיים.
כדי להחיל הרשאות, צריך להגדיר את התפקידים המתאימים למפתחות ולערכים של התגים.
מזהים את שם התפקיד הרצוי ואת מרחבי השמות שבהם רוצים להחיל את התפקיד. מידע נוסף זמין במאמר בנושא שימוש בתגים.
כדי להעניק הרשאות לתפקיד עבור תג, צריך להחיל את המשאב
RoleBindingלכל מרחב שמות מוגדר:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: BINDING_NAME namespace: NAMESPACE subjects: - kind: GROUP_SUBJECT name: GROUP_NAME apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: TAG_ROLE_NAME apiGroup: rbac.authorization.k8s.io EOFמחליפים את מה שכתוב בשדות הבאים:
BINDING_NAME: השם המותאם אישית של קישור התפקידים.
NAMESPACE: מרחב השמות שאליו רוצים לשייך את התפקיד, למשלplatform, מרחב השמות לניהול של מפתח התג או מרחב השמות של המדיניות של ערך התג.
GROUP_SUBJECT: סוג הנושא שעליו יחולו הרשאות התפקיד. הערך יכול להיותUser,GroupאוServiceAccount. מידע נוסף מופיע במאמרי העזרה בנושא הפניה לנושאים בתיעוד של Kubernetes.
GROUP_NAME: שם הקבוצה בהתאמה אישית.
TAG_ROLE_NAME: שם תפקיד התג שרוצים להחיל, כמוtag-adminאוtag-KEY_NAME-admin.
לדוגמה, כדי להעניק למשתמש את הרשאת התפקיד
tag-adminלזוג מפתח-ערך של תג, פורסים את המשאבים המותאמים אישיתRoleBindingהבאים במרחב השמותplatform, במפתח התגmanagementNamespaceובערך התגpolicyNamespace:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: tag-admin-binding namespace: platform subjects: - kind: User name: user-1 apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: tag-admin apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: tag-admin-mgmt-binding namespace: g-t-tag-key-1 subjects: - kind: User name: user-1 apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: tag-admin apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: tag-admin-policy-binding namespace: g-t-tag-value-1 subjects: - kind: User name: user-1 apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: tag-admin apiGroup: rbac.authorization.k8s.io EOF
חיפוש מרחב השמות של הניהול
מרחב שמות לניהול הוא מרחב שמות שנוצר על ידי המערכת עבור מפתח תג.
מוצאים את מרחב השמות לניהול של מפתח התג הספציפי:
kubectl get tagkey TAG_KEY_NAME --namespace platform \ -o jsonpath='{.status.managementNamespace}'מחליפים את
TAG_KEY_NAMEבשם של מפתח התג.
איך מוצאים את מרחב השמות של המדיניות
מרחב שמות של מדיניות הוא מרחב שמות שנוצר על ידי המערכת עבור ערך של תג.
מאתרים את מרחב השמות של המדיניות של ערך התג הספציפי:
kubectl get tagvalue TAG_VALUE_NAME --namespace MANAGEMENT_NAMESPACE \ -o jsonpath='{.status.policyNamespace}'מחליפים את מה שכתוב בשדות הבאים:
-
TAG_VALUE_NAME: השם של ערך התג. -
MANAGEMENT_NAMESPACE: השם של מרחב השמות של הניהול של מפתח התג התואם לערך התג. מידע נוסף זמין במאמר איך מאתרים את מרחב השמות לניהול.
-
הצגת רשימת פרויקטים עם תג
כדי להציג רשימה של כל הפרויקטים שמקושרים לצמד ספציפי של מפתח/ערך, מבצעים את הפעולות הבאות:
הצגת רשימה של כל הפרויקטים שתואמים לצמד מפתח/ערך של התג:
kubectl get project --namespace platform --label tag.resourcemanager.gdc.goog/TAG_KEY_NAME=TAG_VALUE_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
TAG_KEY_NAME: השם של מפתח התג. -
TAG_VALUE_NAME: השם של ערך התג.
הפלט אמור להיראות כך:
NAME AGE project-1 17d project-2 10d project-3 4d-