בדף הזה מוסבר איך להציג, להבין ולהחיל המלצות לתפקידי IAM במערכי נתונים של BigQuery. ההמלצות לתפקידים עוזרות לכם לאכוף את העיקרון של הרשאות מינימליות, כדי שלחשבונות משתמשים יהיו רק ההרשאות שהם צריכים בפועל.
לפני שמתחילים
מפעילים את ממשקי ה-API של IAM ושל Recommender, אם יש כאלה שלא מופעלים.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (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 הבאים:
- Role Viewer (
roles/iam.roleViewer) בפרויקט - אדמין של שירות ההמלצות של IAM (
roles/recommender.iamAdmin) בפרויקט - BigQuery Data Owner (
roles/bigquery.dataOwner) בקבוצת הנתונים
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות כדי לנהל המלצות לתפקידים ברמת מערך הנתונים. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לנהל המלצות לתפקידים ברמת מערך הנתונים, נדרשות ההרשאות הבאות:
-
כדי לראות את ההמלצות:
-
iam.roles.getבפרויקט -
iam.roles.listבפרויקט -
recommender.iamPolicyRecommendations.getבפרויקט -
recommender.iamPolicyRecommendations.listבפרויקט -
recommender.iamPolicyInsights.getבפרויקט -
recommender.iamPolicyInsights.listבפרויקט -
bigquery.datasets.getIamPolicyבמערך הנתונים
-
-
כדי ליישם או לדחות המלצות:
-
recommender.iamPolicyRecommendations.updateבפרויקט -
bigquery.datasets.setIamPolicyבמערך הנתונים שלך
-
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
עיון בהמלצות ויישום שלהן
אתם יכולים לבדוק ולהחיל המלצות לתפקידים ברמת מערך הנתונים באמצעות Google Cloud CLI ו-Recommender API.
gcloud
בדיקת ההמלצות:
כדי להציג את ההמלצות ברמת מערך הנתונים, מריצים את הפקודה gcloud recommender recommendations list ומסננים רק את ההמלצות למערכי נתונים ב-BigQuery:
gcloud recommender recommendations list \
--location=LOCATION \
--recommender=google.iam.policy.Recommender \
--project=PROJECT_ID \
--format=json \
--filter="recommenderSubtype:REMOVE_ROLE_BIGQUERY_DATASET OR recommenderSubtype:REPLACE_ROLE_BIGQUERY_DATASET"
מחליפים את הערכים הבאים:
-
LOCATION: האזור שבו נמצאים מערכי הנתונים של Cloud Storage – לדוגמה,usאוus-central1. -
PROJECT_ID: המזהה של Google Cloud הפרויקט שמכיל את מערכי הנתונים שלכם ב-BigQuery. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project.
התגובה אמורה להיראות כך: בדוגמה הזו, לכל המשתמשים עם התפקיד "עריכה" בפרויקט my-project (projectEditor:my-project) יש את התפקיד "עריכת נתונים ב-BigQuery" (roles/bigquery.dataEditor) במערך הנתונים dataset-1.
עם זאת, התפקיד הזה לא היה בשימוש ב-90 הימים האחרונים. לכן, ההמלצה לגבי התפקיד היא לבטל את התפקיד:
[ { "associatedInsights": [ { "insight": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/984eccca-0241-472f-baab-2557dd0d7282" } ], "content": { "operationGroups": [ { "operations": [ { "action": "remove", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "projectEditor:my-project", "/iamPolicy/bindings/*/role": "roles/bigquery.dataEditor" }, "resource": "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1", "resourceType": "bigquery.googleapis.com/Dataset" } ] } ], "overview": { "addedRoles": [], "member": "projectEditor:my-project", "minimumObservationPeriodInDays": "0", "removedRole": "roles/bigquery.dataEditor", "resource": "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" } }, "description": "This role has not been used during the observation window.", "etag": "\"3b123bc08d028128\"", "lastRefreshTime": "2024-02-04T08:00:00Z", "name": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/0e9831fe-6810-476b-b14d-2b64bda17288", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 37 } } }, "priority": "P4", "recommenderSubtype": "REMOVE_ROLE_BIGQUERY_DATASET", "stateInfo": { "state": "ACTIVE" }, "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" ] }, { "associatedInsights": [ { "insight": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/9d11057e-9c71-410f-ad55-fc82d87761d0" } ], "content": { "operationGroups": [ { "operations": [ { "action": "remove", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "user:alicexz@google.com", "/iamPolicy/bindings/*/role": "roles/bigquery.dataOwner" }, "resource": "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1", "resourceType": "bigquery.googleapis.com/Dataset" } ] } ], "overview": { "addedRoles": [], "member": "user:alicexz@google.com", "minimumObservationPeriodInDays": "0", "removedRole": "roles/bigquery.dataOwner", "resource": "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" } }, "description": "This role has not been used during the observation window.", "etag": "\"1da285f7aa6438f1\"", "lastRefreshTime": "2024-02-04T08:00:00Z", "name": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/56013294-cf81-402a-8cde-25489545777c", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 64 } } }, "priority": "P4", "recommenderSubtype": "REMOVE_ROLE_BIGQUERY_DATASET", "stateInfo": { "state": "ACTIVE" }, "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" ] } ]
חשוב לבדוק היטב כל המלצה ולשים לב מתי היא עודכנה בפעם האחרונה ואיך היא תשנה את הגישה של חשבון המשתמש למשאבים Google Cloud . במאמר הזה מוסבר איך לבדוק המלצות באמצעות ה-CLI של gcloud.
כדי ליישם המלצה:
כדי לשנות את הסטטוס של ההמלצה ל-
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: האזור שבו נמצא מערך הנתונים שלכם ב-BigQuery – למשל,usאוus-central1. -
PROJECT_ID: המזהה של הפרויקט ב- Google Cloud שמכיל את מערכי הנתונים שלכם ב-BigQuery. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. -
FORMAT: הפורמט של התשובה. אפשר להשתמש ב-jsonאו ב-yaml. -
ETAG: הערך של השדהetagבהמלצה, למשל"dd0686e7136a4cbb". שימו לב שהערך הזה יכול לכלול מירכאות. -
STATE_METADATA: אופציונלי. צמדי מפתח/ערך מופרדים בפסיקים שמכילים את המטא-נתונים שבחרתם לגבי ההמלצה. לדוגמה,--state-metadata=reviewedBy=alice,priority=high. המטא-נתונים מחליפים את השדהstateInfo.stateMetadataבהמלצה.
אם הפקודה מצליחה, התגובה מציגה את ההמלצה במצב
CLAIMED, כמו בדוגמה הבאה. לשם הבהרה, בחרנו להשמיט את רוב השדות בדוגמה:... "priority": "P1", "recommenderSubtype": "REMOVE_ROLE_BIGQUERY_DATASET", "stateInfo": { "state": "CLAIMED" } ...
-
מאחזרים את מדיניות ההרשאות של מערך הנתונים, ואז משנים ומגדירים את מדיניות ההרשאות כך שתשקף את ההמלצה.
מעדכנים את מצב ההמלצה ל-
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: האזור שבו נמצא מערך הנתונים שלכם ב-BigQuery – למשל,usאוus-central1. -
PROJECT_ID: המזהה של הפרויקט ב- Google Cloud שמכיל את מערכי הנתונים שלכם ב-BigQuery. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. -
FORMAT: הפורמט של התשובה. אפשר להשתמש ב-jsonאו ב-yaml. -
ETAG: הערך של השדהetagבהמלצה, למשל"dd0686e7136a4cbb". שימו לב שהערך הזה יכול לכלול מירכאות. -
STATE_METADATA: אופציונלי. צמדי מפתח/ערך מופרדים בפסיקים שמכילים את המטא-נתונים שבחרתם לגבי ההמלצה. לדוגמה,--state-metadata=reviewedBy=alice,priority=high. המטא-נתונים מחליפים את השדהstateInfo.stateMetadataבהמלצה.
לדוגמה, אם סימנתם את ההמלצה כהמלצה שיושמה, בתגובה ההמלצה תופיע במצב
SUCCEEDED. לשם הבהרה, בדוגמה הזו הושמטו רוב השדות:... "priority": "P1", "recommenderSubtype": "REMOVE_ROLE_BIGQUERY_DATASET", "stateInfo": { "state": "SUCCEEDED" } ...
-
REST
בדיקת ההמלצות:
כדי להציג את כל ההמלצות הזמינות למערכי הנתונים ב-BigQuery, משתמשים ב-method recommendations.list של Recommender API.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: המזהה שלGoogle Cloud הפרויקט שמכיל את מערכי הנתונים שלכם ב-BigQuery. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. -
LOCATION: האזור שבו נמצאים מערכי הנתונים ב-BigQuery – למשל,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_BIGQUERY_DATASET%20OR%20recommenderSubtype%20%3D%20REPLACE_ROLE_BIGQUERY_DATASET&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה אמורה להיראות כך: בדוגמה הזו, לכל המשתמשים עם תפקיד העריכה בפרויקט my-project (projectEditor:my-project) יש את התפקיד BigQuery Data Editor (roles/bigquery.dataEditor) במערך הנתונים dataset-1.
עם זאת, לא נעשה שימוש בתפקיד הזה ב-90 הימים האחרונים. כתוצאה מכך, ההמלצה לגבי התפקיד היא לבטל את התפקיד:
{
"recommendations": [
{
"name": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/0e9831fe-6810-476b-b14d-2b64bda17288",
"description": "This role has not been used during the observation window.",
"lastRefreshTime": "2024-02-02T08:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 37
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"resourceType": "bigquery.googleapis.com/Dataset",
"resource": "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "projectEditor:my-project",
"/iamPolicy/bindings/*/role": "roles/bigquery.dataEditor"
}
}
]
}
],
"overview": {
"resource": "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1",
"member": "projectEditor:my-project",
"removedRole": "roles/bigquery.dataEditor",
"addedRoles": [],
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "\"d008ad3780bad5e0\"",
"recommenderSubtype": "REMOVE_ROLE_BIGQUERY_DATASET",
"associatedInsights": [
{
"insight": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/984eccca-0241-472f-baab-2557dd0d7282"
}
],
"priority": "P4",
"targetResources": [
"//bigquery.googleapis.com/projects/my-project/datasets/dataset-1"
]
}
]
}
חשוב לבדוק היטב כל המלצה ולראות מתי היא עודכנה בפעם האחרונה ואיך היא תשנה את הגישה של חשבון המשתמש ל Google Cloud משאבים. כדי ללמוד איך לבדוק המלצות מ-API בארכיטקטורת REST, ראו בדיקת המלצות בדף הזה.
כדי ליישם המלצה:
מסמנים את ההמלצה כ
CLAIMED:כדי לסמן המלצה כ
CLAIMED, מה שמונע את השינוי של ההמלצה בזמן שאתם מיישמים אותה, משתמשים בשיטהrecommendations.markClaimedשל Recommender API.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: המזהה של הפרויקט ב-Google Cloud שמכיל את מערכי הנתונים שלכם ב-BigQuery. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. -
LOCATION: האזור שבו נמצא מערך הנתונים ב-BigQuery, למשל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_BIGQUERY_DATASET", ...-
מאחזרים את מדיניות ההרשאות של הפרויקט, ואז משנים את מדיניות ההרשאות כך שתשקף את ההמלצה.
מעדכנים את הסטטוס של ההמלצה ל-
SUCCEEDEDאם הצלחתם ליישם את ההמלצה, או ל-FAILEDאם לא הצלחתם ליישם אותה:SUCCEEDEDכדי לסמן המלצה כ-
SUCCEEDED, כלומר שהצלחתם ליישם אותה, השתמשו ב-methodrecommendations.markSucceededשל Recommender API.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: המזהה של הפרויקט ב-Google Cloud שמכיל את מערכי הנתונים שלכם ב-BigQuery. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. -
LOCATION: האזור שבו נמצא מערך הנתונים ב-BigQuery, למשל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_BIGQUERY_DATASET", ...FAILEDכדי לסמן המלצה כ
FAILED, כלומר שלא הצלחתם ליישם אותה, משתמשים בשיטהrecommendations.markFailedשל Recommender API.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: המזהה שלGoogle Cloud הפרויקט שמכיל את מערכי הנתונים שלכם ב-BigQuery. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. -
LOCATION: האזור שבו נמצא מערך הנתונים ב-BigQuery, למשל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_BIGQUERY_DATASET", ...-
הסבר על ההמלצות
כל המלצה כוללת מידע שיעזור לכם להבין למה היא ניתנה.
פרטים על השדות של ההמלצה מופיעים בחומרי העזר של Recommendation.
כדי לראות את השימוש בהרשאות שעליו מבוססת ההמלצה, אפשר לעיין בתובנות המדיניות שמשויכות להמלצה.
התובנות האלה מפורטות בשדה associatedInsights. כדי לראות תובנה לגבי מדיניות שמשויכת להמלצה:
- מעתיקים את המזהה של התובנה המשויכת. המזהה כולל את כל מה שמופיע אחרי
insights/בשדהinsight. לדוגמה, אם בשדהinsightמופיע הערךprojects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/7849add9-73c0-419e-b169-42b3671173fb, מזהה התובנה הוא7849add9-73c0-419e-b169-42b3671173fb. - פועלים לפי ההוראות כדי לקבל תובנה לגבי מדיניות באמצעות מזהה התובנה שהעתקתם.