בדף הזה מוסבר איך לצפות בהמלצות למדיניות הארגון, להבין אותן וליישם אותן. ההמלצות לגבי מדיניות הארגון עוזרות לכם להגדיר את מדיניות הארגון הנכונה בלי לשבש את המערכות.
לפני שמתחילים
מפעילים את Organization Policy API ואת Recommender API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםמגדירים אימות.
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
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/recommender.orgPolicyViewer) -
כדי ליישם ולדחות המלצות למדיניות הארגון:
אדמין של Org Policy Recommender (
roles/recommender.orgPolicyAdmin) -
כדי לנהל את מדיניות הארגון:
אדמין של מדיניות הארגון (
roles/orgpolicy.policyAdmin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות לניהול המלצות למדיניות הארגון. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לנהל המלצות למדיניות הארגון, נדרשות ההרשאות הבאות:
-
כדי לראות המלצות למדיניות הארגון:
-
recommender.orgPolicyRecommendations.get -
recommender.orgPolicyRecommendations.list
-
-
כדי ליישם ולבטל המלצות למדיניות הארגון:
-
recommender.orgPolicyRecommendations.get -
recommender.orgPolicyRecommendations.list -
recommender.orgPolicyRecommendations.update
-
-
כדי לנהל את מדיניות הארגון:
-
orgpolicy.policy.get -
orgpolicy.policy.set -
orgpolicy.constraints.list -
orgpolicy.policies.create -
orgpolicy.policies.delete -
orgpolicy.policies.list -
orgpolicy.policies.update
-
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
מגבלות
לתצוגה המקדימה של הכלי להמלצות למדיניות ארגונית יש את המגבלות הבאות:
התובנות זמינות רק לפרויקטים, לתיקיות ולארגונים שיש להם המלצות.
ההמלצות מוצגות רק לגבי אילוצים שלא הוגדרו במשאב נתון או במשאבי הצאצאים שלו.
אילוצים נתמכים
ההמלצות זמינות רק לגבי המגבלות הבאות של מדיניות הארגון:
יצירת מפתחות לחשבונות שירות (
iam.managed.disableServiceAccountKeyCreation)העלאת מפתח לחשבון שירות (
iam.managed.disableServiceAccountKeyUpload)כללי העברת פרוטוקול (
compute.managed.restrictProtocolForwardingCreationForTypes)
בדיקה ויישום של המלצות
אפשר לעיין בהמלצות לגבי מדיניות הארגון וליישם אותן באמצעות Google Cloud CLI ו-Recommender API.
gcloud
בדיקת ההמלצות:
כדי להציג את ההמלצות, מריצים את הפקודה gcloud recommender recommendations list:
gcloud recommender recommendations list \
--location=global \
--recommender=google.orgpolicy.policy.Recommender \
--RESOURCE_TYPE=RESOURCE_ID \
--filter="recommenderSubtype:RECOMMENDER_SUBTYPE" \
--format=FORMAT
מחליפים את הערכים הבאים:
RESOURCE_TYPE: סוג המשאב שלגביו רוצים להציג את ההמלצות. אפשר להשתמש ב-project, ב-folderאו ב-organization.
RESOURCE_ID: המזהה של Google Cloud הפרויקט, התיקייה או הארגון שלגביהם רוצים לראות את ההמלצות. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012.
RECOMMENDER_SUBTYPE: אופציונלי. המזהה של סוג המשנה שרוצים לראות לגביו המלצות. אלה חלק מסוגי המשנה התקפים:ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATIONמספק המלצות לגבי האילוץiam.managed.disableServiceAccountKeyCreation.ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_UPLOADמספק המלצות לגבי האילוץiam.managed.disableServiceAccountKeyUpload
FORMAT: הפורמט של התגובה. אפשר להשתמש בערךjsonאוyaml.
התגובה אמורה להיראות כך: בדוגמה הזו, שני משאבים נותחו כדי לזהות מפתחות חיצוניים של חשבונות שירות, ולא זוהו הפרות.
לכן, ההמלצה היא להגדיר את iam.managed.disableServiceAccountKeyCreation כדי למנוע הפרות בעתיד.
[
{
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/fb927dc1-9695-4436-0000-f0f285007c0f"
}
],
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"path": "/",
"resource": "//orgpolicy.googleapis.com/projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
"resourceType": "orgpolicy.googleapis.com/Policy",
"value": {
"etag": "",
"name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
"spec": {
"etag": "",
"inheritFromParent": false,
"reset": false,
"rules": [
{
"enforce": true
}
]
}
}
}
]
}
],
"overview": {
"constraint": {
"id": "constraints/iam.managed.disableServiceAccountKeyCreation",
"name": "Disable service account key creation"
},
"enforcedResources": [
{
"numOfResources": "2",
"resourceType": "iam.googleapis.com/ServiceAccountKey"
},
{
"numOfResources": "1",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
}
},
"description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
"etag": "\"826e992a0f9793ff\"",
"lastRefreshTime": "2024-12-07T08:00:00Z",
"name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
"primaryImpact": {
"category": "SECURITY"
},
"priority": "P1",
"recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
"stateInfo": {
"state": "ACTIVE",
"stateMetadata": {
"reviewedBy": "alice",
"priority": "high"
}
},
"targetResources": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
]
}
]
כדי ליישם המלצה:
משתמשים בפקודה
gcloud recommender recommendations mark-claimedכדי לשנות את המצב של ההמלצה ל-CLAIMED. כך ההמלצה לא תשתנה בזמן שאתם מיישמים אותה:gcloud recommender recommendations mark-claimed \ RECOMMENDATION_ID \ --location=global \ --recommender=google.orgpolicy.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: מזהה של גרסת ההמלצה, למשל"7caf4103d7669e12". שימו לב שהערך הזה יכול לכלול מירכאות. -
STATE_METADATA: אופציונלי. צמדי מפתח/ערך מופרדים בפסיקים שמכילים את המטא-נתונים שבחרתם לגבי ההמלצה. לדוגמה,--state-metadata=reviewedBy=alice,priority=high. המטא-נתונים מחליפים את השדהstateInfo.stateMetadataבהמלצה.
אם הפקודה מצליחה, התגובה מציגה את ההמלצה במצב
CLAIMED, כמו בדוגמה הבאה. לשם הבהרה, בדוגמה הושמטו רוב השדות:{ "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.", "etag": "\"826e992a0f9793ff\"", "lastRefreshTime": "2024-12-07T08:00:00Z", "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f", "primaryImpact": { "category": "SECURITY" }, "priority": "P1", "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION", "stateInfo": { "state": "CLAIMED", "stateMetadata": {\ "reviewedBy": "alice", "priority": "high" } }, "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ] }-
מעדכנים ומחילים את מדיניות הארגון על הפרויקט, התיקייה או הארגון שצוינו באמצעות
RESOURCE_TYPEו-RESOURCE_ID, כך שהיא תשקף את ההמלצה.מעדכנים את מצב ההמלצה ל-
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: מזהה של גרסת ההמלצה, למשל"7caf4103d7669e12". שימו לב שהערך הזה יכול לכלול מירכאות. -
STATE_METADATA: אופציונלי. צמדי מפתח/ערך מופרדים בפסיקים שמכילים את המטא-נתונים שבחרתם לגבי ההמלצה. לדוגמה,--state-metadata=reviewedBy=alice,priority=high. המטא-נתונים מחליפים את השדהstateInfo.stateMetadataבהמלצה.
לדוגמה, אם סימנתם שההמלצה יושמה בהצלחה, התגובה תציג את ההמלצה במצב
SUCCEEDED. לשם הבהרה, בחרנו להשמיט את רוב השדות בדוגמה הזו:{ "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.", "etag": "\"826e992a0f9793ff\"", "lastRefreshTime": "2024-12-07T08:00:00Z", "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f", "primaryImpact": { "category": "SECURITY" }, "priority": "P1", "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION", "stateInfo": { "state": "SUCCEEDED", "stateMetadata": { "reviewedBy": "alice", "priority": "high" } }, "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ] }כדי לבטל את השינויים במדיניות הארגון, מגדירים את מדיניות הארגון לתצורה המקורית שלה, שמופיעה בשדה
configuredPolicyבתובנה המשויכת.-
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.orgpolicy.policy.Recommender/recommendations?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה אמורה להיראות כך: בדוגמה הזו, שני משאבים נבדקים לגבי מפתחות חיצוניים של חשבונות שירות, ולא מזוהות הפרות.
לכן, ההמלצה היא להגדיר את הערך iam.managed.disableServiceAccountKeyCreation כדי למנוע הפרות בעתיד.
[
{
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8"
}
],
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"path": "/",
"resource": "//orgpolicy.googleapis.com/projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
"resourceType": "orgpolicy.googleapis.com/Policy",
"value": {
"etag": "",
"name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
"spec": {
"etag": "",
"inheritFromParent": false,
"reset": false,
"rules": [
{
"enforce": true
}
]
}
}
}
]
}
],
"overview": {
"constraint": {
"id": "constraints/iam.managed.disableServiceAccountKeyCreation",
"name": "Disable service account key creation"
},
"enforcedResources": [
{
"numOfResources": "2",
"resourceType": "iam.googleapis.com/ServiceAccountKey"
},
{
"numOfResources": "1",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
}
},
"description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
"etag": "\"826e992a0f9793ff\"",
"lastRefreshTime": "2024-12-07T08:00:00Z",
"name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
"primaryImpact": {
"category": "SECURITY"
},
"priority": "P1",
"recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
"stateInfo": {
"state": "ACTIVE",
"stateMetadata": {
"reviewedBy": "alice",
"priority": "high"
}
},
"targetResources": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
]
}
]
כדי ליישם המלצה:
מסמנים את ההמלצה כ
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.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markClaimed
תוכן בקשת JSON:
{ "etag": "ETAG", "stateMetadata": { "STATE_METADATA" } }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מציגה את ההמלצה במצב
CLAIMED, כמו בדוגמה הבאה. לשם הבהרה, בדוגמה הזו השמטנו את רוב השדות:{ "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.", "etag": "\"826e992a0f9793ff\"", "lastRefreshTime": "2024-12-07T08:00:00Z", "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f", "primaryImpact": { "category": "SECURITY" }, "priority": "P1", "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION", "stateInfo": { "state": "CLAIMED", "stateMetadata": { "reviewedBy": "alice", "priority": "high" } }, "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ] }-
מעדכנים את מדיניות הארגון של הפרויקט, התיקייה או הארגון שצוינו באמצעות
RESOURCE_TYPEו-RESOURCE_IDכך שתשקף את ההמלצה.מעדכנים את מצב ההמלצה ל
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.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markSucceeded
תוכן בקשת JSON:
{ "etag": "ETAG", "stateMetadata": { "STATE_METADATA" } }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מציגה את ההמלצה במצב
SUCCEEDED, כמו בדוגמה הבאה. לשם הבהרה, בדוגמה הזו השמטנו את רוב השדות:{ "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.", "etag": "\"826e992a0f9793ff\"", "lastRefreshTime": "2024-12-07T08:00:00Z", "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f", "primaryImpact": { "category": "SECURITY" }, "priority": "P1", "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION", "stateInfo": { "state": "SUCCEEDED", "stateMetadata": { "reviewedBy": "alice", "priority": "high" } }, "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ] }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.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markFailed
תוכן בקשת JSON:
{ "etag": "ETAG", "stateMetadata": { "STATE_METADATA" } }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מציגה את ההמלצה במצב
FAILED, כמו בדוגמה הבאה. לשם הבהרה, בדוגמה הזו השמטנו את רוב השדות:{ "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.", "etag": "\"826e992a0f9793ff\"", "lastRefreshTime": "2024-12-07T08:00:00Z", "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f", "primaryImpact": { "category": "SECURITY" }, "priority": "P1", "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION", "stateInfo": { "state": "FAILED", "stateMetadata": { "reviewedBy": "alice", "priority": "high" } }, "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ] }-
הסבר על ההמלצות
כל המלצה כוללת מידע שיעזור לכם להבין למה ההמלצה ניתנה, והצעות לשינויים בהגדרות של מדיניות הארגון. המאפיינים העיקריים שלו כוללים:
description: סיכום של ההמלצה שקריא לאנשים.recommenderSubtype: המזהה של סוג משנה של המלצות. לכל אילוץ ישrecommenderSubtypeייחודי.
content: מכיל את השינויים המומלצים במדיניות הארגון.
overview: מידע תמציתי על ההמלצה.
constraint: מספק מידע על האילוץ.
enforced_resources: מספק מידע על המשאבים שמושפעים ממדיניות הארגון הזו אם מיישמים את ההמלצה.
operationGroups: קבוצה של פעולה אחת או יותר במדיניות הארגון כשמחילים המלצה.
associatedInsights: שם המשאב של התובנות שהובילו להמלצה הזו.
מידע נוסף על המאפיינים של ההמלצות מופיע במאמר בנושא המלצות.
תובנות והמלצות נוצרות לגבי משאבים שלא מוגדרים בהם מדיניות הארגון הנתמכת או במשאבי הצאצא שלהם. כדי לראות את הגדרת מדיניות הארגון שההמלצה הזו מבוססת עליה, אפשר לעיין בתובנות לגבי מדיניות הארגון שמשויכות להמלצה. התובנות האלה מפורטות בשדה associatedInsights. כדי לראות תובנה לגבי מדיניות הארגון שמשויכת להמלצה:
מזהים אילו תובנות בשדה
associatedInsightsהן תובנות לגבי מדיניות הארגון. תובנות לגבי מדיניות הארגון הן מסוג התובנותgoogle.orgpolicy.policy.Insight. הסוג הזה מופיע אחריinsightTypesבשדהinsight.מעתיקים את מזהה התובנה לגבי מדיניות הארגון. המזהה כולל את כל מה שמופיע אחרי
insights/בשדהinsight. לדוגמה, אם בשדה התובנה מופיע הערךprojects/123456789012/locations/us/insightTypes/google.orgpolicy.policy.Insight/insights/fb927dc1-9695-4436-0000-f0f285007c0f, מזהה התובנה הואfb927dc1-9695-4436-0000-f0f285007c0f.פועלים לפי ההוראות כדי לקבל תובנה לגבי מדיניות הארגון באמצעות מזהה התובנה שהעתקתם.
ייצוא המלצות אל BigQuery
כדי לראות תמונות מצב יומיות של כל ההמלצות לארגון, כולל המלצות למדיניות הארגון, אפשר לייצא את ההמלצות ל-BigQuery.
כדי לייצא את ההמלצות ל-BigQuery, צריך להגדיר העברת נתונים באמצעות שירות העברת נתונים ל-BigQuery. הוראות להגדרת העברת נתונים זמינות במאמר ייצוא המלצות אל BigQuery.