בדף הזה מוסבר איך להציג, להבין וליישם המלצות לגבי תפקידים בפרויקטים, בתיקיות ובארגונים. ההמלצות לתפקידים עוזרות לאכוף את העיקרון של הרשאות מינימליות, כי הן מוודאות שלחשבונות משתמשים יהיו רק ההרשאות שהם באמת צריכים.
לפני שמתחילים
מפעילים את ממשקי ה-API של IAM ו-Recommender.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםכדאי לעיין בשיטות המומלצות להמלצות לגבי תפקידים.
אופציונלי: אם רוצים לראות ולנהל המלצות לתפקידים לא בסיסיים ולתפקידים בהתאמה אישית, צריך לוודא שהפעלתם את רמת 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 יוצג במסוף.
אם יש המלצות לבדיקה, לוחצים על הסמל Recommendation available (המלצה זמינה) כדי לקבל פרטים על ההמלצה.
אם ההמלצה היא להחליף את התפקיד, ההמלצה תמיד תציע קבוצה של תפקידים מוגדרים מראש שאפשר להחיל.
במקרים מסוימים, ההמלצה לתפקיד כוללת גם הצעה ליצור תפקיד חדש בהתאמה אישית ברמת הפרויקט. אם יש המלצה לתפקיד מותאם אישית, היא מוצגת במסוף Google Cloud כברירת מחדל. כדי לעבור להמלצה על תפקיד מוגדר מראש, לוחצים על הצגת התפקיד המוגדר מראש המומלץ.
רק עבור קבוצות עם הרשאות מוגזמות, יש אפשרות להחליף את הגישה הקבועה בגישה זמנית על פי דרישה (גרסת Preview) באמצעות Privileged Access Manager. אם חברי קבוצה לא צריכים גישה קבועה להרשאות של תפקיד, אבל יכול להיות שיצטרכו אותן בעתיד מסיבות לא צפויות, אפשר להסיר את הגישה הקבועה שלהם ולהשתמש ב-Privileged Access Manager כדי לאפשר להם לבקש גישה זמנית כשהם צריכים אותה. במאמר תיקון הרשאות מוגזמות באמצעות Privileged Access Manager מוסבר איך לטפל בהרשאות מוגזמות באמצעות Privileged Access Manager.
חשוב לבדוק את ההמלצה בקפידה ולוודא שאתם מבינים מתי היא עודכנה לאחרונה ואיך היא תשנה את הגישה של חשבון המשתמש לGoogle Cloud משאבים. למעט במקרה של המלצות לסוכני שירות, ההמלצה אף פעם לא תגדיל את רמת הגישה של גורם מרכזי. מידע נוסף זמין במאמר איך נוצרות המלצות לתפקידים.
במאמר בדיקת המלצות שבדף הזה מוסבר איך בודקים המלצות במסוף.
אופציונלי: אם ההמלצה היא ליצור תפקיד בהתאמה אישית, מעדכנים את השדות Title, Description, ID ו-Role launch stage לפי הצורך.
אם צריך להוסיף הרשאות לתפקיד בהתאמה אישית, לוחצים על Add permissions.
אם אתם צריכים להסיר הרשאות מהתפקיד המותאם אישית, מבטלים את הסימון בתיבה שלצד כל הרשאה שרוצים להסיר.
יוצרים קמפיינים בהתאם להמלצה.
כדי ליישם את ההמלצה, לוחצים על החלת ההמלצה או על יצירה והחלה. אם תשנו את דעתכם ב-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 . במאמר הזה מוסבר איך לבדוק המלצות באמצעות gcloud CLI.
כדי ליישם המלצה:
כדי לשנות את מצב ההמלצה ל-
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.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" }-
מאחזרים את מדיניות ההרשאות של הפרויקט, ואז משנים את מדיניות ההרשאות כך שתשקף את ההמלצה.
עדכון המצב של ההמלצה ל-
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. כדי לראות תובנה לגבי מדיניות שמשויכת להמלצה:
- מזהים אילו תובנות בשדה
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 . לא משתנים תפקידים או הרשאות.
המאמרים הבאים
- מידע נוסף על שירות ההמלצות
- איך משתמשים בתובנות לגבי מדיניות ההרשאות
- איך משתמשים בתובנות לגבי תנועה רוחבית