בדף הזה מוסבר איך להציג, להבין וליישם המלצות לגבי תפקידים בפרויקטים, בתיקיות ובארגונים. ההמלצות לתפקידים עוזרות לאכוף את העיקרון של הרשאות מינימליות, כי הן מבטיחות שלחשבונות משתמשים יהיו רק את ההרשאות שהם באמת צריכים.
לפני שמתחילים
מפעילים את ממשקי ה-API של IAM ושל Recommender, אם יש כאלה שלא מופעלים.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםכדאי לעיין בשיטות המומלצות להמלצות לגבי תפקידים.
אופציונלי: אם רוצים לראות ולנהל המלצות לתפקידים לא בסיסיים ולתפקידים בהתאמה אישית, צריך לוודא שהפעלתם את רמת Premium או Enterprise של Security Command Center ברמת הארגון או ברמת הפרויקט. מידע נוסף זמין במאמר שאלות בנושא חיוב.
מגדירים אימות.
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
gcloud
במסוף Google Cloud , מפעילים את 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/iam.roleViewer) - צפייה בשירות ההמלצות של IAM (
roles/recommender.iamViewer) -
כדי לראות המלצות ברמת הפרויקט במסוף Google Cloud :
אדמין IAM של פרויקט (
roles/resourcemanager.projectIamAdmin) -
כדי לראות המלצות ברמת התיקייה במסוף Google Cloud :
אדמין IAM של תיקיות (
roles/resourcemanager.folderIamAdmin) -
כדי לראות המלצות ברמת הארגון במסוף Google Cloud :
אדמין ארגוני (
roles/resourcemanager.organizationAdmin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות כדי לראות המלצות לתפקידים. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לראות את ההמלצות לתפקידים, נדרשות ההרשאות הבאות:
-
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 הבאים במשאב שאתם רוצים לנהל את ההמלצות לגביו (פרויקט, תיקייה או ארגון):
- צפייה בתפקידים (
roles/iam.roleViewer) - אדמין של שירות ההמלצות של IAM (
roles/recommender.iamAdmin) -
כדי לנהל המלצות ברמת הפרויקט: אדמין IAM של פרויקט (
roles/resourcemanager.projectIamAdmin) -
כדי לנהל המלצות ברמת התיקייה:
אדמין IAM בתיקייה (
roles/resourcemanager.folderIamAdmin) -
כדי לנהל המלצות ברמת הארגון:
אדמין של ארגון (
roles/resourcemanager.organizationAdmin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות כדי לראות המלצות לתפקידים, להחיל אותן ולבטל אותן. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לראות, ליישם ולבטל המלצות לתפקידים, נדרשות ההרשאות הבאות:
-
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.
המסוף
נכנסים לדף IAM במסוף Google Cloud .
בוחרים פרויקט, תיקייה או ארגון.
ברשימת הגורמים שיש להם גישה לפרויקט, מחפשים את העמודה Security insights.
בכל תפקיד שמוקצה לחשבון משתמש, העמודה הזו מציגה תובנות שקשורות לאבטחה. התובנות האלה מדגישות דפוסים של אופן הגישה של החשבונות הראשיים למשאבים. לדוגמה, חלק מהתובנות מדגישות הרשאות עודפות, או הרשאות שגורם מרכזי לא צריך. תובנות אחרות מדגישות חשבונות שירות עם יכולות תנועה רוחבית:

אם יש המלצה לפתרון בעיה שזוהתה בתובנה, הסמלGoogle Cloud המלצה זמינה יוצג במסוף.
אם יש המלצות לבדיקה, לוחצים על הסמל Recommendation available (המלצה זמינה) כדי לראות פרטים על ההמלצה.
אם ההמלצה היא להחליף את התפקיד, ההמלצה תמיד תציע קבוצה של תפקידים מוגדרים מראש שאפשר להחיל.
במקרים מסוימים, ההמלצה לתפקיד כוללת גם הצעה ליצור תפקיד בהתאמה אישית ברמת הפרויקט. אם יש המלצה לתפקיד בהתאמה אישית, היא מוצגת במסוף Google Cloud כברירת מחדל. כדי לעבור להמלצה על תפקיד מוגדר מראש, לוחצים על הצגת התפקיד המוגדר מראש המומלץ.
רק לגבי קבוצות עם הרשאות מוגזמות, יש אפשרות להחליף את הגישה הקבועה בגישה זמנית על פי דרישה (תצוגה מקדימה) באמצעות Privileged Access Manager. אם חברים בקבוצה לא צריכים גישה קבועה להרשאות של תפקיד, אבל יכול להיות שיצטרכו אותן בעתיד מסיבות לא צפויות, אפשר להסיר את הגישה הקבועה שלהם ולהשתמש ב-Privileged Access Manager כדי לאפשר להם לבקש גישה זמנית כשהם צריכים אותה. במאמר תיקון הרשאות מוגזמות באמצעות Privileged Access Manager מוסבר איך לטפל בהרשאות מוגזמות באמצעות Privileged Access Manager.
חשוב לבדוק את ההמלצה בקפידה ולוודא שאתם מבינים מתי היא עודכנה לאחרונה ואיך היא תשנה את הגישה של חשבון המשתמש לGoogle Cloud משאבים. למעט במקרה של המלצות לסוכני שירות, ההמלצה אף פעם לא תגדיל את רמת הגישה של גורם מרכזי. מידע נוסף זמין במאמר איך נוצרות המלצות לתפקידים.
במאמר בדיקת המלצות שבדף הזה מוסבר איך בודקים המלצות במסוף.
אופציונלי: אם ההמלצה היא ליצור תפקיד בהתאמה אישית, מעדכנים את השדות Title, Description, ID ו-Role launch stage לפי הצורך.
אם צריך להוסיף הרשאות לתפקיד בהתאמה אישית, לוחצים על Add permissions.
אם אתם צריכים להסיר הרשאות מהתפקיד המותאם אישית, מבטלים את הסימון בתיבה שלצד כל הרשאה שרוצים להסיר.
יוצרים קמפיינים בהתאם להמלצה.
כדי ליישם את ההמלצה, לוחצים על Apply (החלה) או על Create and apply (יצירה והחלה). אם תשנו את דעתכם ב-90 הימים הבאים, תוכלו להשתמש בהיסטוריית ההמלצות כדי לבטל את הבחירה.
כדי לסגור את ההמלצה, לוחצים על סגירה ומאשרים את הבחירה. אתם יכולים לשחזר המלצה שדחיתם כל עוד ההמלצה עדיין תקפה.
חוזרים על השלבים הקודמים עד שבודקים את כל ההמלצות.
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.
כדי ליישם המלצה:
כדי לשנות את הסטטוס של ההמלצה ל-
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" } } } ]-
מאחזרים את מדיניות ההרשאות של הפרויקט, ואז משנים ומגדירים את מדיניות ההרשאות כך שתשקף את ההמלצה.
מעדכנים את הסטטוס של ההמלצה ל-
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.
כדי ליישם המלצה:
מסמנים את ההמלצה כ
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" }-
מאחזרים את מדיניות ההרשאות של הפרויקט, ואז משנים את מדיניות ההרשאות כך שתשקף את ההמלצה.
מעדכנים את הסטטוס של ההמלצה ל-
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. כדי לראות תובנה לגבי מדיניות שמשויכת להמלצה:
- מזהים אילו תובנות בשדה
associatedInsightsהן תובנות לגבי מדיניות. סוג התובנות לגבי מדיניות הואgoogle.iam.policy.insight. הסוג הזה מופיע אחריinsightTypesבשדהinsight. - מעתיקים את המזהה של תובנת המדיניות. המזהה כולל את כל מה שמופיע אחרי
insights/בשדהinsight. לדוגמה, אם בשדהinsightמופיע הערךprojects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839, אז מזהה התובנה הוא279ef748-408f-44db-9a4a-1ff8865b9839. - פועלים לפי ההוראות כדי לקבל תובנה לגבי מדיניות באמצעות מזהה התובנה שהעתקתם.
חלק מההמלצות משויכות גם לתובנות לגבי תנועה רוחבית, שמזהות תפקידים שמאפשרים לחשבונות שירות בפרויקט אחד להתחזות לחשבונות שירות בפרויקט אחר. התובנות האלה מופיעות גם בשדה associatedInsights. כדי לראות תובנה לגבי תנועה רוחבית שמשויכת להמלצה:
- מזהים אילו תובנות בשדה
associatedInsightsהן תובנות לגבי תנועה רוחבית. סוג התובנה של תובנות לגבי תנועה רוחבית הואgoogle.iam.policy.LateralMovementInsight. הסוג הזה מופיע אחריinsightTypesבשדהinsight. - מעתיקים את המזהה של תובנת המדיניות. המזהה כולל את כל מה שמופיע אחרי
insights/בשדהinsight. לדוגמה, אם בשדהinsightמופיע הערךprojects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860, אז מזהה התובנה הוא13088eec-9573-415f-81a7-46e1a260e860. - פועלים לפי ההוראות כדי לקבל תובנה לגבי תנועה רוחבית באמצעות מזהה התובנה שהעתקתם.
צפייה בשינויים, ביטול שלהם ושחזור שלהם
אחרי שמיישמים או דוחים המלצה לקישור תפקיד ברמת הפרויקט, הפעולה הזו מופיעה בהיסטוריית ההמלצות.
כדי לראות את היסטוריית ההמלצות:
נכנסים לדף IAM במסוף Google Cloud .
בוחרים פרויקט, תיקייה או ארגון.
סמוך לחלק העליון של המסך, לוחצים על היסטוריית ההמלצות.
במסוף Google Cloud מוצגת רשימה של פעולות קודמות שבוצעו בהמלצות לתפקידים.
כדי לראות את פרטי ההמלצה, לוחצים על החץ להרחבת הפרטים.
Google Cloud במסוף מוצגים פרטים על הפעולה שבוצעה, כולל הגורם שביצע את הפעולה:

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