פתרון בעיות שקשורות למדיניות

בדף הזה מוסבר איך לפתור בעיות במדיניות ההרשאות, הדחייה והגבלת הגישה לחשבונות משתמשים (PAB) של ניהול הזהויות והרשאות הגישה (IAM).

שימוש בפותר הבעיות שקשורות למדיניות

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

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

במאמר פתרון בעיות בהרשאות IAM מוסבר איך משתמשים בפותר הבעיות שקשורות למדיניות כדי לפתור בעיות שקשורות לכללי מדיניות הרשאה, לכללי מדיניות דחייה ולמדיניות לקביעת גבול הגישה לחשבונות משתמשים (PAB).

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות בשביל לראות את כללי מדיניות ההרשאות והדחייה, אתם צריכים לבקש מהאדמין לתת לכם את התפקיד Security Reviewer ‏ (roles/iam.securityReviewer) ב-IAM בארגון שכולל את המשאב. להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

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

ב- Google Cloud, כללי מדיניות ההרשאות והדחייה הבאים משפיעים על הגישה למשאב:

  • מדיניות ההרשאות של המשאב
  • מדיניות הדחייה של המשאב (אם יש)
  • מדיניות ההרשאות של הפרויקט, התיקייה והארגון שנמצאים מעל למשאב בהיררכיית המשאבים (אם יש)
  • מדיניות הדחייה של הפרויקט, התיקייה והארגון שנמצאים מעל למשאב בהיררכיית המשאבים (אם יש)

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

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

באותו האופן, אם מדיניות ההרשאות של הפרויקט נותנת לחשבון המשתמש הרשאה מסוימת, תהיה לו את ההרשאה בכל משאב בפרויקט (אלא אם ההרשאה תילקח באמצעות מדיניות הדחייה).

הצירוף של כל כללי המדיניות האלה נקרא המדיניות שחלה או המדיניות בפועל למשאב.

ב- Google Cloud, אתם יכולים להשתמש בפקודה gcloud beta projects get-ancestors-iam-policy עם הדגל --include-deny כדי לראות את רשימת כללי המדיניות של ההרשאות והדחיות שמשפיעים על הגישה לפרויקט. כל כללי המדיניות האלה ביחד הם המדיניות שחלה על הפרויקט. תוכלו לבחון כל כלל מדיניות בנפרד כדי לראות איך הוא משפיע על הגישה של חשבון המשתמש.

gcloud

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

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו 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": [
            "group:cloud-admins@example.com"
          ],
          "role": "roles/iam.denyAdmin"
        },
        {
          "members": [
            "user:raha@example.com"
          ],
          "role": "roles/iam.serviceAccountAdmin"
        }
      ],
      "etag": "BwXW6Eab7TI=",
      "version": 1
    },
    "type": "organization"
  },
  {
    "id": "my-project",
    "policy": {
      "bindings": [
        {
          "members": [
            "group:cloud-admins@example.com"
          ],
          "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": [
              "user: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, הבקשה תידחה.

בחלק מהמקרים תוכלו לבדוק רק את מדיניות ההרשאות בפועל של המשאב – לדוגמה, אם לא משתמשים במדיניות דחייה בארגון. באותם המקרים תוכלו לבדוק את המדיניות בפועל בדרכים הבאות:

  • תוכלו להשתמש במסוףGoogle Cloud כדי לראות את מדיניות ההרשאות של IAM למשאב. המדיניות בפועל של כל משאב מוצגת אוטומטית במסוף Google Cloud .

    במאמר הצגת הגישה הנוכחית מוסבר איך לראות את מדיניות ההרשאות של IAM למשאב בGoogle Cloud מסוף.

  • תוכלו להשתמש גם ב-Cloud Asset API כדי לראות את מדיניות ההרשאות בפועל של המשאב. למידע נוסף, קראו איך מציגים את המדיניות בפועל של IAM.

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

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

  • סוג המשאב
  • סוג חשבון המשתמש
  • תפקיד
  • פרויקט
  • תיקייה
  • ארגון

למידע נוסף קראו איך מחפשים במדיניות ההרשאות של IAM.