בדף הזה מוסבר איך לפתור בעיות במדיניות ההרשאות, הדחייה והגבלת הגישה לחשבונות משתמשים (PAB) של ניהול הזהויות והרשאות הגישה (IAM).
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות בשביל לראות את כללי מדיניות ההרשאות והדחייה, אתם צריכים לבקש מהאדמין לתת לכם את התפקיד Security Reviewer (בודק אבטחה) (roles/iam.securityReviewer) ב-IAM בארגון שכולל את המשאב.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
בדיקת כל כללי מדיניות ההרשאות והדחייה שחלים על המשאב
ב- Cloud de Confiance, כללי מדיניות ההרשאות והדחייה הבאים משפיעים על הגישה למשאב:
- מדיניות ההרשאות של המשאב
- מדיניות הדחייה של המשאב (אם יש)
- מדיניות ההרשאות של הפרויקט, התיקייה והארגון שנמצאים מעל למשאב בהיררכיית המשאבים (אם יש)
- מדיניות הדחייה של הפרויקט, התיקייה והארגון שנמצאים מעל למשאב בהיררכיית המשאבים (אם יש)
מדיניות ההרשאות והדחייה של פרויקטים, תיקיות וארגונים שנמצאים מעל למשאב בהיררכיה משפיעה על הגישה למשאב כי המדיניות עוברת בירושה. כשמצרפים מדיניות הרשאות או דחייה לפרויקט, לתיקייה או לארגון, היא חלה גם על כל המשאבים שבתוך הפרויקט, התיקייה או הארגון.
לדוגמה, אם לפי מדיניות הדחייה בארגון למשתמש אין הרשאה מסוימת, היא לא תהיה לו באף משאב בארגון. הכלל הזה חל גם אם לתיקיות ולפרויקטים שבאותו ארגון יש מדיניות דחייה מתירנית יותר, או מדיניות הרשאות שנותנת לחשבון המשתמש את ההרשאה הזו.
באותו האופן, אם מדיניות ההרשאות של הפרויקט נותנת לחשבון המשתמש הרשאה מסוימת, תהיה לו את ההרשאה בכל משאב בפרויקט (אלא אם ההרשאה תילקח באמצעות מדיניות הדחייה).
הצירוף של כל כללי המדיניות האלה נקרא המדיניות שחלה או המדיניות בפועל על המשאב.
ב- Cloud de Confiance, אתם יכולים להשתמש בפקודה gcloud beta projects
get-ancestors-iam-policy עם הדגל --include-deny כדי לראות את רשימת כללי המדיניות של ההרשאות והדחיות שמשפיעים על הגישה לפרויקט. כל כללי המדיניות האלה ביחד הם המדיניות שחלה על הפרויקט. תוכלו לבחון כל כלל מדיניות בנפרד כדי לראות איך הוא משפיע על הגישה של חשבון המשתמש.
gcloud
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project.
מריצים את הפקודה gcloud beta projects get-ancestors-iam-policy:
Linux, macOS או Cloud Shell
gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json
Windows (PowerShell)
gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json
Windows (cmd.exe)
gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json
התשובה תכיל את מדיניות ההרשאות והדחייה של הפרויקט, את תיקיות האב של הפרויקט ואת הארגון. בדוגמה הבאה תוכלו לראות את מדיניות ההרשאות של הארגון 1234567890123 והפרויקט my-project, וגם את מדיניות הדחייה של הפרויקט my-project:
[
{
"id": "1234567890123",
"policy": {
"bindings": [
{
"members": [
"principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/cloud-admins"
],
"role": "roles/iam.denyAdmin"
},
{
"members": [
"principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/raha@example.com"
],
"role": "roles/iam.serviceAccountAdmin"
}
],
"etag": "BwXW6Eab7TI=",
"version": 1
},
"type": "organization"
},
{
"id": "my-project",
"policy": {
"bindings": [
{
"members": [
"principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/cloud-admins"
],
"role": "roles/owner"
}
],
"etag": "BwXXjOM7L6M=",
"type": "project"
}
},
{
"id": "my-project",
"policy": {
"createTime": "2022-02-14T21:46:35.865279Z",
"displayName": "My deny policy",
"etag": "MTgyMzg2ODcwNTEyMjMxMTM3Mjg=",
"kind": "DenyPolicy",
"name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F123456789012/denypolicies/my-deny-policy",
"rules": [
{
"denyRule": {
"deniedPermissions": [
"iam.googleapis.com/serviceAccounts.create"
],
"deniedPrincipals": [
"principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/raha@example.com"
]
},
"description": "Prevent service account creation"
}
],
"uid": "c83e3dc3-d8a6-6f51-4018-814e9f200b05",
"updateTime": "2022-02-14T21:46:35.865279Z"
},
"type": "project"
}
]
בדוגמה הזו, ל-Raha יש את התפקיד 'אדמין של חשבון שירות' (roles/iam.serviceAccountAdmin) ברמת הארגון, אבל לפרויקט יש מדיניות דחייה שמונעת מ-Raha להשתמש בהרשאה iam.googleapis.com/serviceAccounts.create. כתוצאה מכך, אם Raha ינסה ליצור חשבון שירות בפרויקט my-project, הבקשה תידחה.
בחלק מהמקרים תוכלו לבדוק רק את מדיניות ההרשאות בפועל של המשאב – לדוגמה, אם לא משתמשים במדיניות דחייה בארגון. באותם המקרים תוכלו לבדוק את המדיניות בפועל בדרכים הבאות:
תוכלו להשתמש במסוףCloud de Confiance כדי לראות את מדיניות ההרשאות של IAM למשאב. המדיניות בפועל של כל משאב מוצגת אוטומטית במסוף Cloud de Confiance .
במאמר הצגת הגישה הנוכחית מוסבר איך לראות את מדיניות ההרשאות של IAM למשאב בCloud de Confiance מסוף.
תוכלו להשתמש גם ב-Cloud Asset API כדי לראות את מדיניות ההרשאות בפועל של המשאב. למידע נוסף, קראו איך מציגים את המדיניות בפועל של IAM.