ניהול קישורי גישה

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

מידע על יצירת הרשאות גישה ופרטים נוספים על רמות גישה ובקרת סשנים זמין במאמר החלת מדיניות על קבוצות משתמשים באמצעות הרשאות גישה.

הצגת הרשאות הגישה

אחרי שיוצרים את הרשאות הגישה לקבוצת משתמשים, הגישה ל-Google Cloud console ול- Google Cloud APIs נשלטת על סמך רמת הגישה שנקבעה.

אפשר לראות את הפרטים של הקישור לגישה שיצרתם, לערוך אותו או למחוק אותו.

המסוף

  1. נכנסים לדף Access Context Manager במסוף Google Cloud .

    מעבר אל Access Context Manager

  2. אם מתבקשים, בוחרים פרויקט. רשימת הרשאות הגישה מופיעה בדף Access Context Manager.

gcloud

  • כדי לראות את כל הרשאות הגישה, מריצים את הפקודה הבאה:

      gcloud access-context-manager cloud-bindings list \
       --organization ORG_ID
    

    ORG_ID: מזהה הארגון. אם המאפיין access-context-manager/organization לא הוגדר, מחליפים את ORG_ID בדגל האופציונלי --organization במזהה הארגון שבו השתמשתם כשיצרתם את התפקיד GcpAccessAdmin.

  • כדי לראות את הפרטים של הרשאת גישה, מריצים את הפקודה הבאה:

      gcloud access-context-manager cloud-bindings describe \
      --binding=BINDING_ID
    

    BINDING_ID הוא המזהה של שיוך הרשאות הגישה או מזהה מוגדר במלואו של שיוך הרשאות הגישה.

API

  • הצגת כל ההרשאות לגישה:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • ORG_ID הוא המזהה של הארגון שבו השתמשתם כשנוצר התפקיד GcpAccessAdmin. אם המאפיין access-context-manager/organization לא הוגדר, מחליפים את ORG_ID בדגל האופציונלי --organization במזהה הארגון שבו השתמשתם כשיצרתם את התפקיד GcpAccessAdmin.

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

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

    curl

    מריצים את הפקודה הבאה:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

    PowerShell

    מריצים את הפקודה הבאה:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    
    {
      "name": string,
      "groupKey": string,
      "accessLevels": [
        string
      ]
      "dryRunAccessLevels": [
      string
      ]
    }
    
    

  • כדי לראות את הפרטים של הרשאת גישה:

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID

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

    curl

    מריצים את הפקודה הבאה:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://accesscontextmanager.googleapis.com/v1/BINDING_ID"

    PowerShell

    מריצים את הפקודה הבאה:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://accesscontextmanager.googleapis.com/v1/BINDING_ID" | Select-Object -Expand Content

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    
    {
      "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
      "groupKey": "045jfvxd0ybeul8",
      "accessLevels": [
        "accessPolicies/305009197125/accessLevels/device_lock"
      ],
      "dryRunAccessLevels": [
        "accessPolicies/305009197125/accessLevels/another"
      ]
    }
    
    

עדכון של הרשאת גישה

אפשר לעדכן את קישור הגישה כדי לבצע את הפעולות הבאות:

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

המסוף

  1. נכנסים לדף Access Context Manager במסוף Google Cloud .

    מעבר אל Access Context Manager

  2. אם מתבקשים, בוחרים פרויקט.

  3. בדף Access Context Manager, בוחרים את הרשאות הגישה ולוחצים על עריכה כדי לעדכן אותן.

אי אפשר לעדכן את הרשאות הגישה באמצעות רמות גישה של הרצה יבשה או אמצעי בקרה על סשנים במסוף Google Cloud .

gcloud

  1. יוצרים קובץ YAML של קישור.

    gcloud access-context-manager cloud-bindings update
      --binding ACCESS_BINDING
      --binding-file BINDING_FILE_PATH
    [  --level DEFAULT_ACCESS_LEVEL ]
    [  --dry-run-level DEFAULT_DRY_RUN_ACCESS_LEVEL           ]
    [  --session-length=DEFAULT_SESSION_LENGTH                ]
    [  --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD  ]
    

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

    • הערך ACCESS_BINDING הוא בפורמט organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • BINDING_FILE_PATH: הנתיב לקובץ ה-YAML שמכיל את סכמת קישור הגישה. קובץ הקישור תומך רק ב-scopedAccessSettings.
    • DEFAULT_ACCESS_LEVEL: השם האופציונלי של רמת הגישה, בפורמט accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. מחליפים את POLICY_ID במזהה מדיניות הגישה ואת ACCESS_LEVEL_NAME בשם רמת הגישה.
    • DEFAULT_DRY_RUN_ACCESS_LEVEL_2: שם אופציונלי של רמת גישה בפורמט accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. אם לא מציינים את האפליקציות בקובץ ה-YAML, צריך לכלול את הדגל הזה כדי להחיל את רמת הגישה שצוינה בהרצת הניסיון על כל האפליקציות כברירת מחדל.
    • DEFAULT_SESSION_LENGTH: משך הסשן האופציונלי בפורמט של שעות, למשל 15h ל-15 שעות או 2h לשעתיים.
    • DEFAULT_SESSION_REAUTH_METHOD: השיטה האופציונלית לאתגר משתמשים לאמת מחדש את הזהות שלהם, שיכולה להיות אחת מהאפשרויות הבאות:
      • LOGIN: החלת הכניסה הרגילה, שיכולה לכלול MFA או גורמים אחרים שהוגדרו ב-Workspace.
      • PASSWORD: נדרשת רק סיסמה, גם אם מוגדרים גורמים אחרים. אם הסיסמאות מנוהלות באמצעות IdP חיצוני, המשתמשים מופנים אל ה-IdP. אם הסשן של ספק ה-IdP פעיל, המשתמשים עוברים אימות מחדש באופן מרומז. אם ה-IdP לא פעיל, המשתמשים צריכים להיכנס דרך ה-IdP.
      • SECURITY_KEY: דורש מפתח אבטחה פיזי.

    איך הארגומנטים --level ו---binding-file פועלים יחד

    • אם משתמשים רק ב---binding-file, המדיניות חלה רק על האפליקציות בקובץ.
    • אם משתמשים רק ב---level, רמת הגישה חלה על כל האפליקציות.
    • אם משתמשים בשניהם, הכללים משולבים. הערך --level חל על כל האפליקציות, ואילו המדיניות בקובץ ה-YAML שצוין על ידי --binding-file חלה רק על האפליקציות כפי שהוגדרו בקובץ.

    עבודה עם אמצעי בקרה על סשנים

    • כדי להגדיר אמצעי בקרה על הפעילות של כל האפליקציות כברירת מחדל, משתמשים ב---session-length וב---session-reauth-method.
    • אם מגדירים גם אמצעי בקרה על סשנים בקובץ ה-YAML, אמצעי הבקרה האלה מבטלים את הגדרות ברירת המחדל של האפליקציות הספציפיות האלה.
    • חובה להשתמש ב---session-length וב---session-reauth-method ביחד.

    כדי להסיר רמת גישה שמוגדרת כברירת מחדל או רמת גישה שמוגדרת כברירת מחדל להרצה יבשה, צריך לספק מחרוזת ריקה, כמו --level= או --dry-run-level=. אם לא מספקים את הארגומנטים האלה, הפקודה update לא מבצעת שינויים.

    כדי להסיר אמצעי בקרה על פעילות, מגדירים את --session-length=0.

API

  1. יוצרים גוף JSON.

    {
      "accessLevels": [
        "DEFAULT_ACCESS_LEVEL"
      ],
      "scopedAccessSettings": [
        {
          "scope": {
            "clientScope": {
              "restrictedClientApplication": {
                "clientId": "CLIENT_ID"
              }
            }
          },
          "activeSettings": {
            "accessLevels": [
              "ACCESS_LEVEL_A"
            ],
            "sessionSettings": [
              {
                "sessionLength": "SESSION_LENGTH",
                "sessionReauthMethod": "SESSION_REAUTH_METHOD",
                "sessionLengthEnabled": true
              }
            ]
        }
        },
        {
          "scope": {
            "clientScope": {
              "restrictedClientApplication": {
                "name": "CLIENT_NAME"
              }
            },
            "activeSettings": {
              "accessLevels": [
                "ACCESS_LEVEL_C"
              ]
            }
          }
        }
      ]
    }
    

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

    • DEFAULT_ACCESS_LEVEL: השם האופציונלי של רמת הגישה, בפורמט accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. מחליפים את POLICY_ID במזהה מדיניות הגישה ואת ACCESS_LEVEL_NAME בשם רמת הגישה.
    • CLIENT_ID: מזהה הלקוח של OAuth. חובה להשתמש בערך clientId כשאפליקציה מכילה sessionSettings.
    • ACCESS_LEVEL_A: שם של רמת גישה בפורמט accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
    • SESSION_LENGTH: משך הזמן של הסשן בפורמט משך הזמן ISO 8601, למשל 30m ל-30 דקות או 2h לשעתיים.
    • SESSION_REAUTH_METHOD: השיטה האופציונלית לאתגר משתמשים ולאמת מחדש את הזהות שלהם. השיטה חייבת להיות אחת מהאפשרויות הבאות:

      • LOGIN: החלת הכניסה הרגילה, שיכולה לכלול MFA או גורמים אחרים שמוגדרים ב-Workspace.
      • PASSWORD: נדרשת רק סיסמה, גם אם מוגדרים אמצעי אימות אחרים. אם הסיסמאות מנוהלות באמצעות IdP חיצוני, המשתמשים מופנים אל ה-IdP. אם הסשן ב-IdP פעיל, המשתמשים מאומתים מחדש באופן מרומז. אם ה-IdP לא פעיל, המשתמשים צריכים להיכנס דרך ה-IdP.
      • SECURITY_KEY: דורש מפתח אבטחה פיזי.
    • CLIENT_NAME: שם הלקוח. אם האפליקציה מכילה את sessionSettings, אי אפשר להשתמש בשם הלקוח. במקום זאת, משתמשים במזהה הלקוח ב-OAuth.

    • ACCESS_LEVEL_C: שם של רמת גישה בפורמט accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.

  2. שולחים את בקשת ה-PATCH.

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?fieldMask=FIELDMASK
    

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

    • הערך ACCESS_BINDING הוא בפורמט organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • FIELD_MASK: רשימה מופרדת בפסיקים של שדות שרוצים לעדכן. זהו שדה חובה. הפרמטר הזה מציין לממשק ה-API אילו חלקים בהגדרת כבילת הגישה צריך לשנות.

    fieldMask צריך להכיל את מפתחות ה-JSON ברמה העליונה בגוף הבקשה שרוצים לעדכן, שיכולים להכיל את accessLevels,‏ dryRunAccessLevels ו-scopedAccessSettings.

    אם הפעולה בוצעה ללא שגיאות, אמור להתקבל ייצוג של אובייקט ה-JSON. אם יש בעיה, מוצגת הודעת שגיאה.

מחיקת הרשאות גישה

המסוף

  1. נכנסים לדף Access Context Manager במסוף Google Cloud .

    מעבר אל Access Context Manager

  2. אם מתבקשים, בוחרים פרויקט.

  3. בדף Access Context Manager, בוחרים את הרשאות הגישה ולוחצים על מחיקה.

gcloud

   gcloud access-context-manager cloud-bindings delete \
       --binding ACCESS_BINDING

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

  • הערך ACCESS_BINDING הוא בפורמט organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
  • ACCESS_BINDING_NAME היא המחרוזת הייחודית שמוחזרת עבור המזהה name כשנוצרת ההגדרה של הרשאות הגישה.

API

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ACCESS_BINDING_NAME היא המחרוזת הייחודית שמוחזרת עבור המזהה name כשנוצרת ההגדרה של הרשאות הגישה.

ה-method של ה-HTTP וכתובת ה-URL:

DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME

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

curl

מריצים את הפקודה הבאה:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME" | Select-Object -Expand Content

אמורים לקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.