אכיפת גישה שמבוססת על אישורים לקבוצת משתמשים

בדף הזה מוסבר איך לאכוף גישה מבוססת-אישורים (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.

המסוף

  1. במסוף, עוברים אל IAM.

    כניסה לדף IAM

  2. בכרטיסייה Permissions, לוחצים על Grant access ומגדירים את האפשרויות הבאות:

    1. New principals: מציינים את הקבוצה שרוצים להעניק לה את התפקיד.
    2. באפשרות Select a role (בחירת תפקיד), בוחרים באפשרות Access Context Manager > Cloud Access Binding Admin (מנהל הרשאות גישה בענן).
    3. לוחצים על Save.

gcloud

  1. כניסה לחשבון:

    gcloud auth login
    
  2. מקצים את התפקיד GcpAccessAdmin באמצעות הפקודה הבאה:

    gcloud organizations add-iam-policy-binding ORG_ID \
      --member=user:EMAIL \
      --role=roles/accesscontextmanager.gcpAccessAdmin
    
    • ORG_ID הוא המזהה של הארגון. אם עדיין אין לכם את מזהה הארגון, אתם יכולים להשתמש בפקודה הבאה כדי למצוא אותו:

       gcloud organizations list
      
    • EMAIL היא כתובת האימייל של האדם או הקבוצה שרוצים להעניק להם את התפקיד.

קישור רמת גישה של CBA לקבוצת משתמשים

באפשרות הקישור הזו, רמת הגישה של CBA חלה על כל אפליקציות הלקוח עבור קבוצת המשתמשים שאתם מציינים.

  1. במסוף, עוברים לדף Console & APIs Access Policy:

    מעבר אל Console & APIs Access Policy

  2. בוחרים ארגון ולוחצים על בחירה.

  3. לוחצים על ניהול הגישה כדי לבחור את קבוצות המשתמשים שצריכות לקבל גישה.

  4. לוחצים על הוספה ומגדירים את האפשרויות הבאות:

    1. קבוצות חברים: מציינים את הקבוצה שרוצים להעניק לה גישה. אפשר לבחור רק קבוצות שעדיין לא משויכות לרמת גישה.
    2. בחירת רמות גישה: בוחרים את רמת הגישה של CBA שרוצים להחיל על הקבוצה.
    3. לוחצים על Save.

קישור רמת גישה מבוססת-אישורים לקבוצת משתמשים ולאפליקציות ספציפיות

בתרחישי שימוש מסוימים, כמו באפליקציות שתומכות באימות באמצעות אישורים של לקוח, שיוך רמת גישה של CBA לקבוצת משתמשים עשוי להיות רחב מדי. אתם יכולים להשתמש באפשרות הזו כדי להחיל רמות גישה של CBA על אפליקציות שתומכות באישורי לקוח.

בדוגמה הבאה, רמת גישה של CBA משויכת ל Google Cloud מסוף, ל-CLI של gcloud ולאפליקציית OAuth של משתמש.

  1. נכנסים ל-CLI של gcloud.

    gcloud auth application-default login
    
  2. יוצרים קובץ 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.
  3. יוצרים את הקישור של רמת הגישה ל-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 של משאב הקבוצה.

  4. אופציונלי: מעדכנים קישור קיים של רמת גישה.

    gcloud access-context-manager cloud-bindings update \
       --binding='BINDING_NAME' \
       --binding-file=policy_file.yaml
    

    מחליפים את BINDING_NAME בשם הקישור שנוצר אוטומטית כשנוצר הקישור.

החרגת אפליקציה מקישור

דרך נוספת להחיל רמת גישה של CBA בלי לחסום אפליקציות לקוח שלא תומכות באישור לקוח היא לתת לאפליקציות האלה פטור מהמדיניות.

ההנחיות הבאות מבוססות על ההנחה שיצרתם בעבר רמת גישה שמבוססת על אישורים, שנדרשים כדי לקבוע את הגישה למשאבים.

  1. יוצרים רמת גישה להחרגה באחת מהשיטות הבאות.

  2. יוצרים קובץ 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.
  3. יוצרים את מדיניות הקישור של הפטור.

    gcloud access-context-manager cloud-bindings create \
       --group-key='GROUP_KEY' \
       --organization='ORG_ID' \
       --binding-file=exemption_file.yaml
    

    מחליפים את מה שכתוב בשדות הבאים:

    • GROUP_KEY: המזהה הייחודי של הקבוצה
    • ORG_ID: מזהה הארגון