במאמר הזה מוסבר איך לנהל את קישורי הגישה הקיימים, שמגדירים איך כללי מדיניות הגישה חלים על קבוצות המשתמשים או על חשבונות השירות. אפשר לראות, לשנות ולמחוק את הקישורים האלה לפי הצורך. הקשרים של הגישה קובעים איך רמות הגישה וההגדרות של בקרת הסשן חלות על קבוצת משתמשים או על חשבון שירות.
מידע על יצירת הרשאות גישה למשתמשים ופרטים נוספים על רמות גישה ובקרת סשנים זמין במאמר החלת כללי מדיניות על קבוצות משתמשים באמצעות הרשאות גישה.
מידע נוסף על יצירת הרשאות גישה לחשבונות שירות זמין במאמר הגדרת בקרת גישה מבוססת-הקשר לחשבונות שירות.
הצגת רשימה של כבילות גישה
כדי להציג רשימה של כל כבילות הגישה שנוצרו בעבר לקבוצות משתמשים, מבצעים את הפעולות הבאות:
gcloud
כדי להציג את כל ההרשאות שמשויכות למשתמשים באמצעות ה-CLI של gcloud, מריצים את הפקודה הבאה. כדי להציג את קשרי הגישה לחשבונות שירות, צריך להשתמש במסנן.
gcloud access-context-manager cloud-bindings list \
--organization ORGANIZATION_ID
ORG_ID: מזהה הארגון.
אם המאפיין access-context-manager/organization לא הוגדר, מחליפים את ORG_ID בדגל האופציונלי --organization במזהה הארגון שבו השתמשתם כשיצרתם את התפקיד GcpAccessAdmin.
כדי להציג רשימה של הרשאות גישה למשאבים ספציפיים, אפשר להשתמש בדגל מסנן.
--filter="FILTER"
מחליפים את FILTER במסנן שמתאר את המשאב שמדיניות הגישה קשורה אליו – לדוגמה:
- קבוצות משתמשים:
principal:group_key
חשבונות שירות:
principal:service_account OR principal:service_account_project_number
API בארכיטקטורת REST
כדי להציג רשימה של כל ההרשאות לגישה ל-USER_LOGIN, מריצים את הפקודה הבאה:
curl -H "X-Goog-User-Project: PROJECT_ID" -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://accesscontextmanager.googleapis.com/v1/organizations/ORGANIZATION_ID/gcpUserAccessBindings"
כדי להציג רשימה של הרשאות גישה למשאבים ספציפיים, אפשר להשתמש בפרמטר סינון.
curl -H "X-Goog-User-Project: PROJECT_ID" -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://accesscontextmanager.googleapis.com/v1/organizations/ORGANIZATION_ID/gcpUserAccessBindings?filter=FILTER"
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
ORGANIZATION_ID: מזהה הארגון
FILTER: מסנן שמתאר את המשאב שמדיניות הגישה קשורה אליו. לדוגמה:קבוצות משתמשים:
principal:group_keyחשבונות שירות:
principal:service_account OR principal:service_account_project_number
צפייה בהרשאת גישה
אחרי שיוצרים את ההרשאות לקבוצת משתמשים, הגישה ל-Google Cloud console ול- Google Cloud APIs נשלטת על סמך רמת הגישה שנקבעה.
אפשר לראות את הפרטים של הקישור לגישה שיצרתם, לערוך אותו או למחוק אותו.
המסוף
נכנסים לדף Access Context Manager במסוף Google Cloud .
אם מתבקשים, בוחרים פרויקט. כבילות הגישה מפורטות בדף Access Context Manager.
gcloud
כדי לראות את הפרטים של הרשאת גישה, מריצים את הפקודה הבאה:
gcloud access-context-manager cloud-bindings describe \
--binding=BINDING_ID
BINDING_ID הוא המזהה של שיוך הרשאות הגישה או מזהה מוגדר במלואו של שיוך הרשאות הגישה.
API
כדי לראות את הפרטים של הרשאת גישה:
ה-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"
]
}
עדכון של הרשאת גישה
אפשר לעדכן את הרשאות הגישה כדי לבצע את הפעולות הבאות:
- להוסיף, להסיר או לשנות את האפליקציות שחלה עליהן מדיניות.
- לשנות את רמות הגישה של אפליקציה בקבוצת משתמשים.
- להוסיף רמת גישה חדשה להרצה או להעלות רמת גישה קיימת לרמה פעילה.
המסוף
נכנסים לדף Access Context Manager במסוף Google Cloud .
אם מתבקשים, בוחרים פרויקט.
בדף Access Context Manager, בוחרים את הרשאות הגישה ולוחצים על עריכה כדי לעדכן אותן.
אי אפשר לעדכן את הרשאות הגישה באמצעות רמות גישה של הרצה יבשה או אמצעי בקרה של סשן במסוף Google Cloud .
gcloud
יוצרים קובץ 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
יוצרים גוף 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או ב-nameכשבאפליקציה יש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: שם הלקוח. אפשר להשתמש ב-
nameאו ב-clientIdכשבאפליקציה ישsessionSettings.ACCESS_LEVEL_C: שם של רמת גישה בפורמט
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
-
DEFAULT_ACCESS_LEVEL: השם האופציונלי של רמת הגישה, בפורמט
שולחים את בקשת ה-PATCH.
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?updateMask=FIELD_MASKמחליפים את מה שכתוב בשדות הבאים:
-
הערך
ACCESS_BINDINGהוא בפורמטorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME. - FIELD_MASK: רשימה מופרדת בפסיקים של שדות שרוצים לעדכן. זהו שדה חובה. הפרמטר הזה מציין לממשק ה-API אילו חלקים בהגדרת כבילת הגישה צריך לשנות.
fieldMaskצריך להכיל את מפתחות ה-JSON ברמה העליונה בגוף הבקשה שרוצים לעדכן, שיכולים להכיל אתaccessLevels,dryRunAccessLevelsו-scopedAccessSettings.אם הפעולה בוצעה ללא שגיאות, תקבלו ייצוג של אובייקט ה-JSON. אם יש בעיה, מוצגת הודעת שגיאה.
-
הערך
מחיקת הרשאות גישה
המסוף
נכנסים לדף Access Context Manager במסוף Google Cloud .
אם מתבקשים, בוחרים פרויקט.
בדף 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) ותגובה ריקה.