בדף הזה מוסבר איך לאכוף גישה מבוססת-אישורים (CBA) באמצעות מדיניות של בקרת גישה מבוססת-הקשר (CAA) שמבוססת על קבוצת משתמשים.
אתם יכולים להגביל את הגישה לכל Google Cloud השירותים על ידי שיוך של רמת גישה לפי הקשר לקבוצת משתמשים. ההגבלה הזו חלה על כל אפליקציות הלקוח שקוראות לממשקי API. Google Cloud
אפשר גם להחיל את ההגבלות על אפליקציות לקוח ספציפיות או להחריג אפליקציות ספציפיות. האפליקציות כוללות אפליקציות צד שלישי ואפליקציות מאינטראקציה ישירה שפותחו על ידי Google, כמו Cloud Console ל- Google Cloud console ו-Google Cloud SDK ל-Google Cloud CLI.
לפני שמתחילים
יצירת רמת גישה שמבוססת על אישורים (CBA) שדורשת אישורים כשקובעים גישה למשאבים.
יצירה של קבוצת משתמשים
יוצרים קבוצת משתמשים שכוללת את החברים שצריכים לקבל גישה על סמך רמת הגישה של CBA.
הקצאת התפקיד 'אדמין של כבילת גישה לענן'
מקצים את התפקיד Cloud Access Binding Admin לקבוצת המשתמשים.
צריכות להיות לכם הרשאות מספיקות כדי להוסיף הרשאות IAM ברמת הארגון. צריכות להיות לכם לפחות ההרשאות אדמין ארגוני ואדמין של קישור גישה ל-Cloud.
המסוף
במסוף, עוברים אל IAM.
בכרטיסייה Permissions, לוחצים על Grant access ומגדירים את האפשרויות הבאות:
- New principals: מציינים את הקבוצה שרוצים להעניק לה את התפקיד.
- באפשרות Select a role (בחירת תפקיד), בוחרים באפשרות Access Context Manager > Cloud Access Binding Admin (מנהל הרשאות גישה בענן).
- לוחצים על Save.
gcloud
כניסה לחשבון:
gcloud auth loginמקצים את התפקיד
GcpAccessAdminבאמצעות הפקודה הבאה:gcloud organizations add-iam-policy-binding ORG_ID \ --member=user:EMAIL \ --role=roles/accesscontextmanager.gcpAccessAdmin
ORG_IDהוא המזהה של הארגון. אם עדיין אין לכם את מזהה הארגון, אתם יכולים להשתמש בפקודה הבאה כדי למצוא אותו:gcloud organizations listEMAILהיא כתובת האימייל של האדם או הקבוצה שרוצים להעניק להם את התפקיד.
קישור רמת גישה של CBA לקבוצת משתמשים
באפשרות הקישור הזו, רמת הגישה של CBA חלה על כל אפליקציות הלקוח עבור קבוצת המשתמשים שאתם מציינים.
במסוף, עוברים לדף Console & APIs Access Policy:
בוחרים ארגון ולוחצים על בחירה.
לוחצים על ניהול הגישה כדי לבחור את קבוצות המשתמשים שצריכות לקבל גישה.
לוחצים על הוספה ומגדירים את האפשרויות הבאות:
- קבוצות חברים: מציינים את הקבוצה שרוצים להעניק לה גישה. אפשר לבחור רק קבוצות שעדיין לא משויכות לרמת גישה.
- בחירת רמות גישה: בוחרים את רמת הגישה של CBA שרוצים להחיל על הקבוצה.
- לוחצים על Save.
קישור רמת גישה מבוססת-אישורים לקבוצת משתמשים ולאפליקציות ספציפיות
בתרחישי שימוש מסוימים, כמו באפליקציות שתומכות באימות באמצעות אישורים של לקוח, שיוך רמת גישה של CBA לקבוצת משתמשים עשוי להיות רחב מדי. אתם יכולים להשתמש באפשרות הזו כדי להחיל רמות גישה של CBA על אפליקציות שתומכות באישורי לקוח.
בדוגמה הבאה, רמת גישה של CBA משויכת ל Google Cloud מסוף, ל-CLI של gcloud ולאפליקציית OAuth של משתמש.
נכנסים ל-CLI של gcloud.
gcloud auth application-default loginיוצרים קובץ
policy_file.yaml.אפשר לציין אפליקציות באמצעות מזהה הלקוח שלהן ב-OAuth. כדי לציין אפליקציות של Google, משתמשים בשם האפליקציה, כמו
Cloud Consoleעבור מסוףGoogle Cloud . יש תמיכה רק ביישומים של Google Google Cloud במסוף וב-Google Cloud SDK.scopedAccessSettings: - scope: clientScope: restrictedClientApplication: name: Cloud Console activeSettings: accessLevels: - CBA_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: name: Google Cloud SDK activeSettings: accessLevels: - CBA_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: clientId: CLIENT_ID_1 activeSettings: accessLevels: - CBA_ACCESS_LEVELמחליפים את מה שכתוב בשדות הבאים:
- CLIENT_ID_1: מזהה הלקוח ב-OAuth.
- CBA_ACCESS_LEVEL: שם של רמת גישה מבוססת-CBA בפורמט
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
יוצרים את הקישור של רמת הגישה ל-CBA.
gcloud access-context-manager cloud-bindings create \ --group-key='GROUP_KEY' \ --organization='ORG_ID' \ --binding-file=policy_file.yamlמחליפים את מה שכתוב בשדות הבאים:
-
GROUP_KEY: המזהה הייחודי של הקבוצה
ORG_ID: מזהה הארגון
gcloud
אפשר להשתמש במזהה הקבוצה הייחודי בתור GROUP_KEY. כדי לקבל את מזהה הקבוצה הייחודי, משתמשים בפקודה הבאה:
gcloud identity groups describe EMAILמחליפים את EMAIL בכתובת האימייל של הקבוצה. מזהה הקבוצה הייחודי הוא הערך שמוחזר אחרי
/בשם הקבוצה. לדוגמה, המזהה הייחודי של הקבוצה ב-groups/01gf8i8311xalqgהוא01gf8i8311xalqg.REST
אפשר להשתמש במזהה הקבוצה הייחודי בתור GROUP_KEY. כדי לקבל את מזהה הקבוצה הייחודי באמצעות ה-API בארכיטקטורת REST, אפשר לאחזר אותו על ידי קריאה ל-method
getבמשאב הקבוצה. המזהה הייחודי של הקבוצה מוחזר בשדהidשל משאב הקבוצה.-
אופציונלי: מעדכנים קישור קיים של רמת גישה.
gcloud access-context-manager cloud-bindings update \ --binding='BINDING_NAME' \ --binding-file=policy_file.yamlמחליפים את BINDING_NAME בשם הקישור שנוצר אוטומטית כשנוצר הקישור.
החרגת אפליקציה מקישור
דרך נוספת להחיל רמת גישה של CBA בלי לחסום אפליקציות לקוח שלא תומכות באישור לקוח היא לתת לאפליקציות האלה פטור מהמדיניות.
ההנחיות הבאות מבוססות על ההנחה שיצרתם בעבר רמת גישה שמבוססת על אישורים, שנדרשים כדי לקבוע את הגישה למשאבים.
יוצרים רמת גישה להחרגה באחת מהשיטות הבאות.
- רמת גישה מותאמת אישית:
מזינים
trueכערך בתנאי של ביטוי CEL. - רמת גישה בסיסית:
יוצרים רמת גישה שמבוססת על טווח כתובות IP על ידי ציון רשתות משנה של כתובות IP
0.0.0.0/0ו-::/0, שתואמות ל-IPv4 ול-IPv6 בהתאמה.
- רמת גישה מותאמת אישית:
מזינים
יוצרים קובץ
exemption_file.yaml.scopedAccessSettings: - scope: clientScope: restrictedClientApplication: clientId: CLIENT_ID_2 activeSettings: accessLevels: - EXEMPT_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: name: APPLICATION_NAME_2 activeSettings: accessLevels: - EXEMPT_ACCESS_LEVELמחליפים את מה שכתוב בשדות הבאים:
- CLIENT_ID_2: מזהה הלקוח ב-OAuth
- APPLICATION_NAME_2: שם האפליקציה
- EXEMPT_ACCESS_LEVEL: שם של רמת גישה להחרגה בפורמט
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
יוצרים את מדיניות הקישור של הפטור.
gcloud access-context-manager cloud-bindings create \ --group-key='GROUP_KEY' \ --organization='ORG_ID' \ --binding-file=exemption_file.yamlמחליפים את מה שכתוב בשדות הבאים:
- GROUP_KEY: המזהה הייחודי של הקבוצה
- ORG_ID: מזהה הארגון