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

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

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

  • מפעילים את ממשקי ה-API של IAM ושל Recommender, אם יש כאלה שלא מופעלים.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    הפעלת ממשקי ה-API

  • הסבר על המלצות לגבי תפקידים

  • כדאי לעיין בשיטות המומלצות להמלצות לגבי תפקידים.

  • אופציונלי: אם רוצים לראות ולנהל המלצות לתפקידים לא בסיסיים ולתפקידים בהתאמה אישית, צריך לוודא שהפעלתם את רמת Premium או Enterprise של Security Command Center ברמת הארגון או ברמת הפרויקט. מידע נוסף זמין במאמר שאלות בנושא חיוב.

  • מגדירים אימות.

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

    gcloud

    במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

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

    REST

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

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

התפקידים שצריך ב-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 המלצה זמינה יוצג במסוף.

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

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

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

    רק לגבי קבוצות עם הרשאות מוגזמות, יש אפשרות להחליף את הגישה הקבועה בגישה זמנית על פי דרישה (תצוגה מקדימה) באמצעות 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. יוצרים קמפיינים בהתאם להמלצה.

    כדי ליישם את ההמלצה, לוחצים על Apply (החלה) או על Create and apply (יצירה והחלה). אם תשנו את דעתכם ב-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 משאבים. במאמר הזה מוסבר איך לבדוק המלצות באמצעות ה-CLI של gcloud.

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

  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.

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

    • ‫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 console מוצגת גם רשימה של הרשאות עם קידוד צבעים וסמלים. הרשימה הזו מראה איך ההרשאות של החשבון הראשי ישתנו אם תפעילו את ההמלצה. לדוגמה, יכול להיות שתוצג רשימה כמו הבאה:

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

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

  • אדום עם סימן מינוס : הרשאות שנכללות בתפקיד הנוכחי של חשבון המשתמש, אבל לא בתפקידים המומלצים כי חשבון המשתמש לא השתמש בהן ב-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 . לא חלים שינויים בתפקידים או בהרשאות.

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