בדיקה ויישום של המלצות למדיניות הארגון

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

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

  • מפעילים את Organization Policy API ואת Recommender API.

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

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

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

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

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

    gcloud

    במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

    REST

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

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

  • הסבר על המלצות למדיניות הארגון.

התפקידים שצריך ב-IAM

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

כדי לקבל את ההרשאות שדרושות לניהול המלצות למדיניות הארגון, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים במשאב שרוצים לנהל את ההמלצות לגביו (פרויקט, תיקייה או ארגון):

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

ההרשאות הנדרשות

כדי לנהל המלצות למדיניות הארגון, נדרשות ההרשאות הבאות:

  • כדי לראות המלצות למדיניות הארגון:
    • 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

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

מגבלות

לתצוגה המקדימה של הכלי להמלצות למדיניות ארגונית יש את המגבלות הבאות:

  • התובנות זמינות רק לפרויקטים, לתיקיות ולארגונים שיש להם המלצות.

  • ההמלצות מוצגות רק לגבי אילוצים שלא הוגדרו במשאב נתון או במשאבי הצאצאים שלו.

אילוצים נתמכים

ההמלצות זמינות רק לגבי המגבלות הבאות של מדיניות הארגון:

בדיקה ויישום של המלצות

אפשר לעיין בהמלצות לגבי מדיניות הארגון וליישם אותן באמצעות 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"
    ]
  }
]

מידע נוסף על רכיבי ההמלצות

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

  1. משתמשים בפקודה 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"
        ]
      }
    
  2. מעדכנים ומחילים את מדיניות הארגון על הפרויקט, התיקייה או הארגון שצוינו באמצעות RESOURCE_TYPE ו-RESOURCE_ID, כך שהיא תשקף את ההמלצה.

  3. מעדכנים את מצב ההמלצה ל-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"
    ]
  }
]

מידע נוסף על רכיבי ההמלצות

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

  1. מסמנים את ההמלצה כ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"
      ]
    }
    

  2. מעדכנים את מדיניות הארגון של הפרויקט, התיקייה או הארגון שצוינו באמצעות RESOURCE_TYPE ו-RESOURCE_ID כך שתשקף את ההמלצה.

  3. מעדכנים את מצב ההמלצה ל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. כדי לראות תובנה לגבי מדיניות הארגון שמשויכת להמלצה:

  1. מזהים אילו תובנות בשדה associatedInsights הן תובנות לגבי מדיניות הארגון. תובנות לגבי מדיניות הארגון הן מסוג התובנות google.orgpolicy.policy.Insight. הסוג הזה מופיע אחרי insightTypes בשדה insight.

  2. מעתיקים את מזהה התובנה לגבי מדיניות הארגון. המזהה כולל את כל מה שמופיע אחרי insights/ בשדה insight. לדוגמה, אם בשדה התובנה מופיע הערך projects/123456789012/locations/us/insightTypes/google.orgpolicy.policy.Insight/insights/fb927dc1-9695-4436-0000-f0f285007c0f, מזהה התובנה הוא fb927dc1-9695-4436-0000-f0f285007c0f.

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

ייצוא המלצות אל BigQuery

כדי לראות תמונות מצב יומיות של כל ההמלצות לארגון, כולל המלצות למדיניות הארגון, אפשר לייצא את ההמלצות ל-BigQuery.

כדי לייצא את ההמלצות ל-BigQuery, צריך להגדיר העברת נתונים באמצעות שירות העברת נתונים ל-BigQuery. הוראות להגדרת העברת נתונים זמינות במאמר ייצוא המלצות אל BigQuery.

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