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

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

לפני שמתחילים

התפקידים שצריך ב-IAM

בקטע הזה מתוארים התפקידים וההרשאות ב-IAM שנדרשים כדי לעבוד עם המלצות לתפקידים.

לצפייה בהמלצות

כדי לקבל את ההרשאות שדרושות לצפייה בהמלצות לתפקידים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים במשאב שרוצים לראות המלצות לגביו (פרויקט, תיקייה או ארגון):

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

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

ההרשאות הנדרשות

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

  • iam.roles.get
  • iam.roles.list
  • recommender.iamPolicyRecommendations.get
  • recommender.iamPolicyRecommendations.list
  • recommender.iamPolicyInsights.get
  • recommender.iamPolicyInsights.list
  • recommender.iamPolicyLateralMovementInsights.get
  • recommender.iamPolicyLateralMovementInsights.list
  • כדי לראות המלצות במסוף Google Cloud : ‫resourcemanager.RESOURCE.getIamPolicy, כאשר RESOURCE הוא סוג המשאב שרוצים לראות לגביו המלצות (projects,‏ folders או organizations)

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

יישום וסגירה של המלצות

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

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

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

ההרשאות הנדרשות

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

  • iam.roles.get
  • iam.roles.list
  • recommender.iamPolicyRecommendations.get
  • recommender.iamPolicyRecommendations.list
  • recommender.iamPolicyInsights.get
  • recommender.iamPolicyInsights.list
  • recommender.iamPolicyLateralMovementInsights.get
  • recommender.iamPolicyLateralMovementInsights.list
  • recommender.iamPolicyRecommendations.update
  • resourcemanager.RESOURCE.getIamPolicy, כאשר RESOURCE הוא סוג המשאב שעבורו רוצים לנהל המלצות (projects, ‏folders או organizations)
  • resourcemanager.RESOURCE.setIamPolicy, כאשר RESOURCE הוא סוג המשאב שעבורו רוצים לנהל המלצות (projects, ‏folders או organizations)

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

בדיקה ויישום של המלצות

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

אפשר גם לעיין בהמלצות וליישם אותן באמצעות Google Cloud CLI ו-Recommender API.

המסוף

  1. נכנסים לדף IAM במסוף Google Cloud .

    כניסה לדף IAM

  2. בוחרים פרויקט, תיקייה או ארגון.

  3. ברשימת הגורמים שיש להם גישה לפרויקט, מחפשים את העמודה Security insights.

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

    אם יש המלצה לטיפול בתובנה, הסמלGoogle Cloud Recommendation available יוצג במסוף.

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

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

    במקרים מסוימים, ההמלצה לתפקיד כוללת גם הצעה ליצור תפקיד חדש בהתאמה אישית ברמת הפרויקט. אם יש המלצה לתפקיד מותאם אישית, היא מוצגת במסוף Google Cloud כברירת מחדל. כדי לעבור להמלצה על תפקיד מוגדר מראש, לוחצים על הצגת התפקיד המוגדר מראש המומלץ.

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

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

    במאמר בדיקת המלצות שבדף הזה מוסבר איך בודקים המלצות במסוף.

  6. אופציונלי: אם ההמלצה היא ליצור תפקיד בהתאמה אישית, מעדכנים את השדות Title,‏ Description,‏ ID ו-Role launch stage לפי הצורך.

    אם צריך להוסיף הרשאות לתפקיד בהתאמה אישית, לוחצים על Add permissions.

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

  7. יוצרים קמפיינים בהתאם להמלצה.

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

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

  8. חוזרים על השלבים הקודמים עד שבודקים את כל ההמלצות.

gcloud

בדיקת ההמלצות:

כדי להציג את ההמלצות, מריצים את הפקודה gcloud recommender recommendations list:

gcloud recommender recommendations list \
    --location=global \
    --recommender=google.iam.policy.Recommender \
    --RESOURCE_TYPE=RESOURCE_ID \
    --format=json

מחליפים את הערכים הבאים:

  • RESOURCE_TYPE: סוג המשאב שלגביו רוצים להציג את ההמלצות. אפשר להשתמש ב-project, ב-folder או ב-organization.
  • RESOURCE_ID: המזהה של Google Cloud הפרויקט, התיקייה או הארגון שלגביהם רוצים לראות את ההמלצות. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל 123456789012.

התגובה אמורה להיראות כך: בדוגמה הזו, חשבון שירות לא השתמש באף הרשאה מהתפקיד 'אדמין Compute'‏ (roles/compute.admin) ב-90 הימים האחרונים. כתוצאה מכך, בהמלצה לגבי התפקיד מוצע לבטל את התפקיד:

[
  {
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839"
      }
    ],
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "remove",
              "path": "/iamPolicy/bindings/*/members/*",
              "pathFilter": {
                "/iamPolicy/bindings/*/condition/expression": "",
                "/iamPolicy/bindings/*/members/*": "serviceAccount:id-1234567890@example-project.iam.gserviceaccount.com",
                "/iamPolicy/bindings/*/role": "roles/compute.admin"
              },
              "resource": "//cloudresourcemanager.googleapis.com/projects/example-project",
              "resourceType": "cloudresourcemanager.googleapis.com/Project"
            }
          ]
        }
      ]
    },
    "description": "This role has not been used during the observation window.",
    "recommenderSubtype": "REMOVE_ROLE",
    "etag": "\"770237e2c0decf40\"",
    "lastRefreshTime": "2020-01-09T06:06:17Z",
    "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "primaryImpact": {
      "category": "SECURITY",
      "securityProjection": {
        "details": {
          "revokedIamPermissionsCount": 708
        }
      }
    },
    "priority": "P4",
    "stateInfo": {
      "state": "ACTIVE"
    }
  }
]

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

כדי ליישם המלצה:

  1. כדי לשנות את מצב ההמלצה ל-CLAIMED,, שמונע את שינוי ההמלצה בזמן שאתם מיישמים אותה, משתמשים בפקודה gcloud recommender recommendations mark-claimed:

    gcloud recommender recommendations mark-claimed \
        RECOMMENDATION_ID \
        --location=global \
        --recommender=google.iam.policy.Recommender \
        --RESOURCE_TYPE=RESOURCE_ID \
        --format=FORMAT \
        --etag=ETAG \
        --state-metadata=STATE_METADATA
    

    מחליפים את הערכים הבאים:

    • RECOMMENDATION_ID: המזהה הייחודי של ההמלצה. הערך הזה מופיע בסוף השדה name בהמלצה. בדוגמה שלמעלה, המזהה הוא fb927dc1-9695-4436-0000-f0f285007c0f.
    • RESOURCE_TYPE: סוג המשאב שרוצים לנהל את ההמלצות לגביו. אפשר להשתמש בערך project, folder או organization.
    • RESOURCE_ID: המזהה של Google Cloud הפרויקט, התיקייה או הארגון שרוצים לנהל את ההמלצות לגביהם. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל 123456789012.
    • FORMAT: הפורמט של התגובה. אפשר להשתמש ב-json או ב-yaml.
    • ETAG: הערך של השדה etag בהמלצה, למשל "dd0686e7136a4cbb". שימו לב שהערך הזה יכול לכלול מירכאות.
    • STATE_METADATA: אופציונלי. צמדי מפתח/ערך מופרדים בפסיקים שמכילים את המטא-נתונים שבחרתם לגבי ההמלצה. לדוגמה, --state-metadata=reviewedBy=alice,priority=high. המטא-נתונים מחליפים את השדה stateInfo.stateMetadata בהמלצה.

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

    [
      {
        "description": "This role has not been used during the observation window.",
        "recommenderSubtype": "REMOVE_ROLE",
        "etag": "\"df7308cca9719dcc\"",
        "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "stateInfo": {
          "state": "CLAIMED",
          "stateMetadata": {
            "reviewedBy": "alice",
            "priority": "high"
          }
        }
      }
    ]
  2. מאחזרים את מדיניות ההרשאות של הפרויקט, ואז משנים ומגדירים את מדיניות ההרשאות כך שתשקף את ההמלצה.

  3. עדכון המצב של ההמלצה ל-SUCCEEDED אם הצלחתם ליישם את ההמלצה, או ל-FAILED אם לא הצלחתם ליישם אותה:

    gcloud recommender recommendations COMMAND \
        RECOMMENDATION_ID \
        --location=global \
        --recommender=google.iam.policy.Recommender \
        --RESOURCE_TYPE=RESOURCE_ID \
        --format=FORMAT \
        --etag=ETAG \
        --state-metadata=STATE_METADATA
    

    מחליפים את הערכים הבאים:

    • COMMAND: משתמשים בערך mark-succeeded אם הצלחתם ליישם את ההמלצה, או בערך mark-failed אם לא הצלחתם ליישם את ההמלצה.
    • RECOMMENDATION_ID: המזהה הייחודי של ההמלצה. הערך הזה מופיע בסוף השדה name בהמלצה. בדוגמה שלמעלה, המזהה הוא fb927dc1-9695-4436-0000-f0f285007c0f.
    • RESOURCE_TYPE: סוג המשאב שרוצים לנהל את ההמלצות לגביו. אפשר להשתמש בערך project, folder או organization.
    • RESOURCE_ID: המזהה של Google Cloud הפרויקט, התיקייה או הארגון שרוצים לנהל את ההמלצות לגביהם. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל 123456789012.
    • FORMAT: הפורמט של התגובה. אפשר להשתמש ב-json או ב-yaml.
    • ETAG: הערך של השדה etag בהמלצה, למשל "dd0686e7136a4cbb". שימו לב שהערך הזה יכול לכלול מירכאות.
    • STATE_METADATA: אופציונלי. צמדי מפתח/ערך מופרדים בפסיקים שמכילים את המטא-נתונים שבחרתם לגבי ההמלצה. לדוגמה, --state-metadata=reviewedBy=alice,priority=high. המטא-נתונים מחליפים את השדה stateInfo.stateMetadata בהמלצה.

    לדוגמה, אם סימנתם שההמלצה יושמה בהצלחה, התגובה תציג את ההמלצה במצב SUCCEEDED. לשם הבהרה, בחרנו להשמיט את רוב השדות בדוגמה הזו:

    [
      {
        "description": "This role has not been used during the observation window.",
        "recommenderSubtype": "REMOVE_ROLE",
        "etag": "\"dd0686e7136a4cbb\"",
        "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "stateInfo": {
          "state": "SUCCEEDED",
          "stateMetadata": {
            "reviewedBy": "alice",
            "priority": "high"
          }
        }
      }
    ]

REST

בדיקת ההמלצות:

כדי לראות את כל ההמלצות שזמינות לפרויקט, לתיקייה או לארגון, משתמשים בשיטה recommendations.list ב-Recommender API.

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

  • RESOURCE_TYPE: סוג המשאב שרוצים לנהל את ההמלצות לגביו. אפשר להשתמש בערך projects,‏ folders או organizations.
  • RESOURCE_ID: המזהה שלGoogle Cloud הפרויקט, התיקייה או הארגון שרוצים לנהל את ההמלצות לגביהם. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל 123456789012.
  • PAGE_SIZE: אופציונלי. המספר המקסימלי של תוצאות שיוחזרו מהבקשה הזו. אם לא מציינים ערך, השרת יקבע את מספר התוצאות שיוחזרו. אם מספר ההמלצות לא נכנס בדף אחד, התשובה תכיל אסימון עימוד שמשמש לטעינת דף התוצאות הבא.
  • PAGE_TOKEN: אופציונלי. אסימון החלוקה לדפים שהוחזר בתשובה הקודמת בשיטה הזו. אם יש אסימון כזה, רשימת ההמלצות תתחיל מהמקום שבו הסתיימה הבקשה הקודמת.
  • FILTER: אופציונלי. ביטוי מסנן להגבלת ההמלצות שמוחזרות. אפשר לסנן את ההמלצות לפי השדה stateInfo.state. לדוגמה, stateInfo.state:"DISMISSED" או stateInfo.state:"FAILED".
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.

שיטת ה-HTTP וכתובת ה-URL:

GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

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

התגובה אמורה להיראות כך: בדוגמה הזו, חשבון שירות בפרויקט example-project לא השתמש בהרשאות מהתפקיד 'אדמין Compute'‏ (roles/compute.admin) ב-90 הימים האחרונים. כתוצאה מכך, Recommender מציע לבטל את התפקיד:

{
  "recommendations": [
    "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "description": "This role has not been used during the observation window.",
    "lastRefreshTime": "2020-01-09T06:06:17Z",
    "primaryImpact": {
      "category": "SECURITY",
      "securityProjection": {
        "details": {
          "revokedIamPermissionsCount": 708
        }
      }
    },
    "priority": "P4",
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "remove",
              "path": "/iamPolicy/bindings/*/members/*",
              "pathFilter": {
                "/iamPolicy/bindings/*/condition/expression": "",
                "/iamPolicy/bindings/*/members/*": "serviceAccount:id-1234567890@example-project.iam.gserviceaccount.com",
                "/iamPolicy/bindings/*/role": "roles/compute.admin"
              },
              "resource": "//cloudresourcemanager.googleapis.com/projects/example-project",
              "resourceType": "cloudresourcemanager.googleapis.com/Project"
            }
          ]
        }
      ]
    },
    "stateInfo": {
      "state": "ACTIVE"
    }
    "etag": "\"770237e2c0decf40\"",
    "recommenderSubtype": "REMOVE_ROLE",
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839"
      }
  ]
}

חשוב לבדוק היטב כל המלצה ולשים לב מתי היא עודכנה בפעם האחרונה ואיך היא תשנה את הגישה של חשבון המשתמש למשאבים של Google Cloud . במאמר בדיקת המלצות שבדף הזה מוסבר איך בודקים המלצות מ-API בארכיטקטורת REST.

כדי ליישם המלצה:

  1. מסמנים את ההמלצה כCLAIMED:

    כדי לסמן המלצה כCLAIMED, מה שמונע את השינוי של ההמלצה בזמן שמחילים אותה, משתמשים בשיטה recommendations.markClaimed של Recommender API. recommendations.markClaimed

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

    • RESOURCE_TYPE: סוג המשאב שרוצים לנהל את ההמלצות לגביו. אפשר להשתמש בערך projects,‏ folders או organizations.
    • RESOURCE_ID: המזהה שלGoogle Cloud הפרויקט, התיקייה או הארגון שרוצים לנהל את ההמלצות לגביהם. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל 123456789012.
    • RECOMMENDATION_ID: המזהה הייחודי של ההמלצה. הערך הזה מופיע בסוף השדה name בהמלצה. לדוגמה, אם השדה name הוא projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f, מזהה ההמלצה הוא fb927dc1-9695-4436-0000-f0f285007c0f.
    • ETAG: הערך של השדה etag בהמלצה, למשל "dd0686e7136a4cbb". משתמשים בלוכסנים הפוכים כדי לסמן בתו בריחה (escape) את המירכאות, לדוגמה, "\"df7308cca9719dcc\"".
    • STATE_METADATA: אופציונלי. אובייקט שמכיל צמדי מפתח-ערך עם מטא-נתונים לבחירתכם לגבי ההמלצה. לדוגמה, {"reviewedBy": "alice", "priority": "high"}. המטא-נתונים מחליפים את השדה stateInfo.stateMetadata בהמלצה.
    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.

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

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markClaimed

    תוכן בקשת JSON:

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

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

    התגובה מציגה את ההמלצה במצב CLAIMED, כמו בדוגמה הבאה. לשם הבהרה, בדוגמה הזו השמטנו את רוב השדות:

    {
      "description": "This role has not been used during the observation window.",
      "stateInfo": {
        "state": "CLAIMED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "etag": "\"dd0686e7136a4cbb\"",
      "recommenderSubtype": "REMOVE_ROLE"
    }
    

  2. מאחזרים את מדיניות ההרשאות של הפרויקט, ואז משנים את מדיניות ההרשאות כך שתשקף את ההמלצה.

  3. עדכון המצב של ההמלצה ל-SUCCEEDED אם הצלחתם ליישם את ההמלצה, או ל-FAILED אם לא הצלחתם ליישם אותה:

    SUCCEEDED

    כדי לסמן המלצה כSUCCEEDED, כלומר שהצלחתם ליישם אותה, משתמשים בשיטה recommendations.markSucceeded של Recommender API.

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

    • RESOURCE_TYPE: סוג המשאב שרוצים לנהל את ההמלצות לגביו. אפשר להשתמש בערך projects,‏ folders או organizations.
    • RESOURCE_ID: המזהה שלGoogle Cloud הפרויקט, התיקייה או הארגון שרוצים לנהל את ההמלצות לגביהם. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל 123456789012.
    • RECOMMENDATION_ID: המזהה הייחודי של ההמלצה. הערך הזה מופיע בסוף השדה name בהמלצה. לדוגמה, אם השדה name הוא projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f, מזהה ההמלצה הוא fb927dc1-9695-4436-0000-f0f285007c0f.
    • ETAG: הערך של השדה etag בהמלצה, למשל "dd0686e7136a4cbb". משתמשים בלוכסנים הפוכים כדי לסמן בתו בריחה (escape) את המירכאות, לדוגמה, "\"df7308cca9719dcc\"".
    • STATE_METADATA: אופציונלי. אובייקט שמכיל צמדי מפתח/ערך עם מטא-נתונים לפי בחירתכם לגבי ההמלצה. לדוגמה, {"reviewedBy": "alice", "priority": "high"}. המטא-נתונים מחליפים את השדה stateInfo.stateMetadata בהמלצה.
    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.

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

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markSucceeded

    תוכן בקשת JSON:

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

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

    התגובה מציגה את ההמלצה במצב SUCCEEDED, כמו בדוגמה הבאה. לשם הבהרה, בדוגמה הזו השמטנו את רוב השדות:

    {
      "description": "This role has not been used during the observation window.",
      "stateInfo": {
        "state": "SUCCEEDED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "etag": "\"dd0686e7136a4cbb\"",
      "recommenderSubtype": "REMOVE_ROLE"
    }
    

    FAILED

    כדי לסמן המלצה כFAILED, כלומר שלא הצלחתם ליישם אותה, משתמשים בשיטה recommendations.markFailed של Recommender API.

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

    • RESOURCE_TYPE: סוג המשאב שרוצים לנהל את ההמלצות לגביו. אפשר להשתמש בערך projects,‏ folders או organizations.
    • RESOURCE_ID: המזהה שלGoogle Cloud הפרויקט, התיקייה או הארגון שרוצים לנהל את ההמלצות לגביהם. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל 123456789012.
    • RECOMMENDATION_ID: המזהה הייחודי של ההמלצה. הערך הזה מופיע בסוף השדה name בהמלצה. לדוגמה, אם השדה name הוא projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f, מזהה ההמלצה הוא fb927dc1-9695-4436-0000-f0f285007c0f.
    • ETAG: הערך של השדה etag בהמלצה, למשל "dd0686e7136a4cbb". משתמשים בלוכסנים הפוכים כדי לסמן בתו בריחה (escape) את המירכאות, לדוגמה, "\"df7308cca9719dcc\"".
    • STATE_METADATA: אופציונלי. אובייקט שמכיל צמדי מפתח-ערך עם מטא-נתונים לבחירתכם לגבי ההמלצה. לדוגמה, {"reviewedBy": "alice", "priority": "high"}. המטא-נתונים מחליפים את השדה stateInfo.stateMetadata בהמלצה.
    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.

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

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markFailed

    תוכן בקשת JSON:

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

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

    התגובה מציגה את ההמלצה במצב FAILED, כמו בדוגמה הבאה. לשם הבהרה, בדוגמה הזו השמטנו את רוב השדות:

    {
      "description": "This role has not been used during the observation window.",
      "stateInfo": {
        "state": "FAILED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "etag": "\"dd0686e7136a4cbb\"",
      "recommenderSubtype": "REMOVE_ROLE"
    }
    

הסבר על ההמלצות

כל המלצה כוללת מידע שיעזור לכם להבין למה ההמלצה ניתנה.

המסוף

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

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

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

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

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

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

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

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

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

  • Service accounts that can be impersonated in this project: רשימה של כל חשבונות השירות בפרויקט הנוכחי שחשבון השירות עם הרשאות ההתחזות יכול להתחזות אליהם.

gcloud

פרטים על השדות של ההמלצה מופיעים בחומרי העזר של Recommendation.

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

  • מזהים אילו תובנות בשדה associatedInsights הן תובנות לגבי מדיניות. סוג התובנות לגבי מדיניות הוא google.iam.policy.insight. הסוג הזה מופיע אחרי insightTypes בשדה insight.
  • מעתיקים את מזהה התובנה לגבי המדיניות. המזהה כולל את כל מה שמופיע אחרי insights/ בשדה insight. בדוגמה שלמעלה, מזהה התובנה הוא 279ef748-408f-44db-9a4a-1ff8865b9839.
  • פועלים לפי ההוראות כדי לקבל תובנה לגבי מדיניות באמצעות מזהה התובנה שהעתקתם.

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

  • מזהים אילו תובנות בשדה associatedInsights הן תובנות לגבי תנועה רוחבית. סוג התובנה של תובנות לגבי תנועה רוחבית הוא google.iam.policy.LateralMovementInsight. הסוג הזה מופיע אחרי insightTypes בשדה insight.
  • מעתיקים את המזהה של תובנת המדיניות. המזהה כולל את כל מה שמופיע אחרי insights/ בשדה insight. בדוגמה שלמעלה, מזהה התובנה הוא 279ef748-408f-44db-9a4a-1ff8865b9839.
  • פועלים לפי ההוראות כדי לקבל תובנה לגבי תנועה רוחבית באמצעות מזהה התובנה שהעתקתם.

REST

פרטים על השדות של ההמלצה מופיעים בחומרי העזר של Recommendation.

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

  1. מזהים אילו תובנות בשדה associatedInsights הן תובנות לגבי מדיניות. סוג התובנות לגבי מדיניות הוא google.iam.policy.insight. הסוג הזה מופיע אחרי insightTypes בשדה insight.
  2. מעתיקים את המזהה של תובנת המדיניות. המזהה כולל את כל מה שמופיע אחרי insights/ בשדה insight. לדוגמה, אם בשדה insight מופיע הערך projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839, מזהה התובנה הוא 279ef748-408f-44db-9a4a-1ff8865b9839.
  3. פועלים לפי ההוראות כדי לקבל תובנה לגבי מדיניות באמצעות מזהה התובנה שהעתקתם.

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

  1. מזהים אילו תובנות בשדה associatedInsights הן תובנות לגבי תנועה רוחבית. סוג התובנה של תובנות לגבי תנועה רוחבית הוא google.iam.policy.LateralMovementInsight. הסוג הזה מופיע אחרי insightTypes בשדה insight.
  2. מעתיקים את המזהה של תובנת המדיניות. המזהה כולל את כל מה שמופיע אחרי insights/ בשדה insight. לדוגמה, אם בשדה insight מופיע הערך projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860, מזהה התובנה הוא 13088eec-9573-415f-81a7-46e1a260e860.
  3. פועלים לפי ההוראות כדי לקבל תובנה לגבי תנועה רוחבית באמצעות מזהה התובנה שהעתקתם.

צפייה בשינויים, חזרה לגרסה קודמת ושחזור

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

כדי לראות את היסטוריית ההמלצות:

  1. נכנסים לדף IAM במסוף Google Cloud .

    כניסה לדף IAM

  2. בוחרים פרויקט, תיקייה או ארגון.

  3. בחלק העליון של המסך, לוחצים על היסטוריית ההמלצות.

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

  4. כדי לראות את פרטי ההמלצה, לוחצים על החץ להרחבת השורה.

    Google Cloud במסוף מוצגים פרטים על הפעולה שבוצעה, כולל הגורם שביצע את הפעולה:

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

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

    אם מבטלים את ההמלצה להחלפת גישה קבועה בגישה זמנית על פי דרישה, המערכת משחזרת את הקישור המקורי של IAM ומוחקת את ההרשאה שנוצרה ב-Privileged Access Manager. אם תהליך החזרה לגרסה הקודמת נכשל, צריך למחוק את ההרשאה באופן ידני.

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

המאמרים הבאים