בדיקה ויישום של המלצות לגבי תפקידים בקטגוריות של Cloud Storage

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

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

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

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

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

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

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

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

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

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

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.

    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.roles.get
    • iam.roles.list
    • recommender.iamPolicyRecommendations.get
    • recommender.iamPolicyRecommendations.list
    • recommender.iamPolicyInsights.get
    • recommender.iamPolicyInsights.list
    • storage.buckets.getIamPolicy
  • כדי ליישם או לדחות המלצות:
    • recommender.iamPolicyRecommendations.update
    • storage.buckets.setIamPolicy

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

עיון בהמלצות ויישום שלהן

אתם יכולים לבדוק ולהחיל המלצות לתפקידים ברמת המאגר באמצעות Google Cloud CLI ו-Recommender API.

המסוף

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. מאתרים את העמודה תובנות לגבי אבטחה. אם העמודה לא מוצגת, לוחצים על Column display options ובוחרים באפשרות Security insights.

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

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

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

  4. כדי לקבל פרטים על ההמלצה, לוחצים על הסמל המלצה זמינה .

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

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

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

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

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

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

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

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

    כדי ליישם את ההמלצה, לוחצים על Apply (החלה) או על Create and apply (יצירה והחלה). אם תשנו את דעתכם ב-90 הימים הבאים, תוכלו להשתמש בהיסטוריית ההמלצות כדי לבטל את הבחירה.

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

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

gcloud

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

כדי להציג את ההמלצות ברמת הקטגוריה, מריצים את הפקודה gcloud recommender recommendations list ומסננים רק את ההמלצות לקטגוריות של Cloud Storage:

gcloud recommender recommendations list \
    --location=LOCATION \
    --recommender=google.iam.policy.Recommender \
    --project=PROJECT_ID \
    --format=json \
    --filter="recommenderSubtype:REMOVE_ROLE_STORAGE_BUCKET OR recommenderSubtype:REPLACE_ROLE_STORAGE_BUCKET"

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

  • ‫LOCATION: האזור שבו נמצאות הקטגוריות של Cloud Storage – לדוגמה, us או us-central1.
  • ‫PROJECT_ID: המזהה של Google Cloud הפרויקט שמכיל את דלי ה-Cloud Storage. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.

התגובה אמורה להיראות כך: בדוגמה הזו, לכל המשתמשים המאומתים (allAuthenticatedUsers) יש את התפקיד "קריאה באובייקט באחסון מדור קודם" (roles/storage.legacyObjectReader) בקטגוריה mybucket. עם זאת, לא נעשה שימוש בתפקיד הזה ב-90 הימים האחרונים. כתוצאה מכך, ההמלצה לגבי התפקיד היא לבטל את התפקיד:

[
  {
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/7849add9-73c0-419e-b169-42b3671173fb"
      }
    ],
    "associatedResourceNames": [
      "//storage.googleapis.com/my-bucket"
    ],
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "remove",
              "path": "/iamPolicy/bindings/*/members/*",
              "pathFilters": {
                "/iamPolicy/bindings/*/condition/expression": "",
                "/iamPolicy/bindings/*/members/*": "allAuthenticatedUsers",
                "/iamPolicy/bindings/*/role": "roles/storage.legacyObjectReader"
              },
              "resource": "//storage.googleapis.com/my-bucket",
              "resourceType": "storage.googleapis.com/Bucket"
            }
          ]
        }
      ]
    },
    "description": "This role has not been used during the observation window.",
    "etag": "\"7caf4103d7669e12\"",
    "lastRefreshTime": "2022-05-24T07:00:00Z",
    "name": "projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/fbc885b7-f0a8-47e6-90fe-6141aa2c4257",
    "primaryImpact": {
      "category": "SECURITY",
      "securityProjection": {
        "details": {
          "revokedIamPermissionsCount": 1
        }
      }
    },
    "priority": "P1",
    "recommenderSubtype": "REMOVE_ROLE_STORAGE_BUCKET",
    "stateInfo": {
      "state": "ACTIVE"
    }
  }
]

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

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

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

    gcloud recommender recommendations mark-claimed \
        RECOMMENDATION_ID \
        --location=LOCATION \
        --recommender=google.iam.policy.Recommender \
        --project=PROJECT_ID \
        --format=FORMAT \
        --etag=ETAG \
        --state-metadata=STATE_METADATA
    

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

    • ‫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.
    • ‫LOCATION: האזור שבו נמצאת הקטגוריה של Cloud Storage – לדוגמה, us או us-central1.
    • ‫PROJECT_ID: המזהה של Google Cloud הפרויקט שמכיל את הקטגוריות של Cloud Storage. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.
    • FORMAT: הפורמט של התשובה. אפשר להשתמש ב-json או ב-yaml.
    • ‫ETAG: הערך של השדה etag בהמלצה, למשל "dd0686e7136a4cbb". שימו לב שהערך הזה יכול לכלול מירכאות.
    • ‫STATE_METADATA: אופציונלי. צמדי מפתח/ערך מופרדים בפסיקים שמכילים את המטא-נתונים שבחרתם לגבי ההמלצה. לדוגמה, --state-metadata=reviewedBy=alice,priority=high. המטא-נתונים מחליפים את השדה stateInfo.stateMetadata בהמלצה.

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

    ...
    "priority": "P1",
    "recommenderSubtype": "REMOVE_ROLE_STORAGE_BUCKET",
    "stateInfo": {
      "state": "CLAIMED"
    }
    ...
  2. מבקשים את מדיניות ההרשאות של הקטגוריה, ואז משנים ומגדירים את מדיניות ההרשאות כך שתשקף את ההמלצה.

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

    gcloud recommender recommendations COMMAND \
        RECOMMENDATION_ID \
        --location=LOCATION \
        --recommender=google.iam.policy.Recommender \
        --project=PROJECT_ID \
        --format=FORMAT \
        --etag=ETAG \
        --state-metadata=STATE_METADATA
    

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

    • ‫COMMAND: משתמשים ב-mark-succeeded אם הצלחתם ליישם את ההמלצה, או ב-mark-failed אם לא הצלחתם ליישם את ההמלצה.
    • ‫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.
    • ‫LOCATION: האזור שבו נמצאת הקטגוריה של Cloud Storage – לדוגמה, us או us-central1.
    • ‫PROJECT_ID: המזהה של Google Cloud הפרויקט שמכיל את הקטגוריות של Cloud Storage. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.
    • FORMAT: הפורמט של התשובה. אפשר להשתמש ב-json או ב-yaml.
    • ‫ETAG: הערך של השדה etag בהמלצה, למשל "dd0686e7136a4cbb". שימו לב שהערך הזה יכול לכלול מירכאות.
    • ‫STATE_METADATA: אופציונלי. צמדי מפתח/ערך מופרדים בפסיקים שמכילים את המטא-נתונים שבחרתם לגבי ההמלצה. לדוגמה, --state-metadata=reviewedBy=alice,priority=high. המטא-נתונים מחליפים את השדה stateInfo.stateMetadata בהמלצה.

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

    ...
    "priority": "P1",
    "recommenderSubtype": "REMOVE_ROLE_STORAGE_BUCKET",
    "stateInfo": {
      "state": "SUCCEEDED"
    }
    ...

REST

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

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

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

  • ‫PROJECT_ID: המזהה שלGoogle Cloud הפרויקט שמכיל את הקטגוריות של Cloud Storage. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.
  • ‫LOCATION: האזור שבו נמצאות הקטגוריות של Cloud Storage – לדוגמה, us או us-central1.
  • ‫PAGE_SIZE: אופציונלי. המספר המקסימלי של תוצאות שיוחזרו מהבקשה הזו. אם לא מציינים ערך, השרת יקבע את מספר התוצאות שיוחזרו. אם מספר ההמלצות לא נכנס בדף אחד, התשובה תכיל אסימון עימוד שמשמש לטעינת דף התוצאות הבא.
  • ‫PAGE_TOKEN: אופציונלי. אסימון החלוקה לדפים שהוחזר בתשובה הקודמת בשיטה הזו. אם יש אסימון כזה, רשימת ההמלצות תתחיל מהמקום שבו הסתיימה הבקשה הקודמת.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.

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

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.iam.policy.Recommender/recommendations?filter=recommenderSubtype%20%3D%20REMOVE_ROLE_STORAGE_BUCKET%20OR%20recommenderSubtype%20%3D%20REPLACE_ROLE_STORAGE_BUCKET&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN

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

התגובה אמורה להיראות כך: בדוגמה הזו, לכל המשתמשים המאומתים (allAuthenticatedUsers) יש את התפקיד "קריאת אובייקטים באחסון מדור קודם" (roles/storage.legacyObjectReader) בקטגוריה mybucket. עם זאת, לא נעשה שימוש בתפקיד הזה ב-90 הימים האחרונים. לכן, ההמלצה לגבי התפקיד היא לבטל את התפקיד:

{
  "recommendations": [
    "name": "projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/fbc885b7-f0a8-47e6-90fe-6141aa2c4257",
    "description": "This role has not been used during the observation window.",
    "lastRefreshTime": "2022-05-24T07:00:00Z",
    "primaryImpact": {
      "category": "SECURITY",
      "securityProjection": {
        "details": {
          "revokedIamPermissionsCount": 1
        }
      }
    },
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "remove",
              "resourceType": "storage.googleapis.com/Bucket",
              "resource": "//storage.googleapis.com/my-bucket",
              "path": "/iamPolicy/bindings/*/members/*",
              "pathFilters": {
                "/iamPolicy/bindings/*/condition/expression": "",
                "/iamPolicy/bindings/*/members/*": "allAuthenticatedUsers",
                "/iamPolicy/bindings/*/role": "roles/storage.legacyObjectReader"
              }
            }
          ]
        }
      ]
    },
    "stateInfo": {
      "state": "ACTIVE"
    },
    "etag": "\"7caf4103d7669e12\"",
    "recommenderSubtype": "REMOVE_ROLE_STORAGE_BUCKET",
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/7849add9-73c0-419e-b169-42b3671173fb"
      }
    ],
    "priority": "P1"
  ]
}

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

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

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

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

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

    • ‫PROJECT_ID: המזהה שלGoogle Cloud הפרויקט שמכיל את הקטגוריות של Cloud Storage. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.
    • ‫LOCATION: האזור שבו נמצאת הקטגוריה של Cloud Storage, לדוגמה us או us-central1.
    • ‫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 בהמלצה.

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

    POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markClaimed

    תוכן בקשת JSON:

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

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

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

    ...
    "stateInfo": {
      "state": "CLAIMED"
    },
    "etag": "\"7caf4103d7669e12\"",
    "recommenderSubtype": "REMOVE_ROLE_STORAGE_BUCKET",
    ...
    

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

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

    SUCCEEDED

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

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

    • ‫PROJECT_ID: המזהה שלGoogle Cloud הפרויקט שמכיל את הקטגוריות של Cloud Storage. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.
    • ‫LOCATION: האזור שבו נמצאת הקטגוריה של Cloud Storage, לדוגמה us או us-central1.
    • ‫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 בהמלצה.

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

    POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markSucceeded

    תוכן בקשת JSON:

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

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

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

    ...
    "stateInfo": {
      "state": "SUCCEEDED"
    },
    "etag": "\"7caf4103d7669e12\"",
    "recommenderSubtype": "REMOVE_ROLE_STORAGE_BUCKET",
    ...
    

    FAILED

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

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

    • ‫PROJECT_ID: המזהה שלGoogle Cloud הפרויקט שמכיל את הקטגוריות של Cloud Storage. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו my-project.
    • ‫LOCATION: האזור שבו נמצאת הקטגוריה של Cloud Storage, לדוגמה us או us-central1.
    • ‫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 בהמלצה.

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

    POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markFailed

    תוכן בקשת JSON:

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

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

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

    ...
    "stateInfo": {
      "state": "FAILED"
    },
    "etag": "\"7caf4103d7669e12\"",
    "recommenderSubtype": "REMOVE_ROLE_STORAGE_BUCKET",
    ...
    

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

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

המסוף

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

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

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

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

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

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

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

gcloud

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

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

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

  1. מעתיקים את המזהה של התובנה המשויכת. המזהה כולל את כל מה שמופיע אחרי insights/ בשדה insight. לדוגמה, אם בשדה insight מופיע הערך projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/7849add9-73c0-419e-b169-42b3671173fb, מזהה התובנה הוא 7849add9-73c0-419e-b169-42b3671173fb.
  2. פועלים לפי ההוראות לקבלת תובנה לגבי מדיניות, באמצעות מזהה התובנה שהעתקתם.

REST

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

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

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

  1. מעתיקים את המזהה של התובנה המשויכת. המזהה כולל את כל מה שמופיע אחרי insights/ בשדה insight. לדוגמה, אם בשדה insight מופיע הערך projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/7849add9-73c0-419e-b169-42b3671173fb, מזהה התובנה הוא 7849add9-73c0-419e-b169-42b3671173fb.
  2. פועלים לפי ההוראות כדי לקבל תובנה לגבי מדיניות באמצעות מזהה התובנה שהעתקתם.

צפייה בשינויים, ביטול שלהם ושחזור שלהם

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

אפשר לראות את היסטוריית ההמלצות של באקט במסוףGoogle Cloud :

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

    כניסה לדף Buckets

  2. מוצאים את העמודה תובנות אבטחה. אם העמודה לא מוצגת, לוחצים על Column display options ובוחרים באפשרות Security insights.

  3. מחפשים את ה-bucket שרוצים לראות את היסטוריית ההמלצות שלו, ואז לוחצים על סיכום תובנות האבטחה בשורה הזו.

  4. בחלונית Security recommendations שמופיעה, לוחצים על הכרטיסייה Recommendations history.

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

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

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

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

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

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

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