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

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

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

התפקידים שצריך ב-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.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • 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.

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