בדיקת תובנות לגבי מדיניות בקטגוריות של Cloud Storage

בדף הזה מוסבר איך לנהל תובנות לגבי מדיניות ברמת הקטגוריה, שהן ממצאים מבוססי-למידת מכונה לגבי השימוש בהרשאות בקטגוריות של Cloud Storage. תובנות לגבי מדיניות יכולות לעזור לכם לזהות אילו חשבונות משתמשים קיבלו הרשאות שהם לא צריכים.

הדף הזה מתמקד בתובנות לגבי מדיניות בנושא קטגוריות. בנוסף, הכלי Recommender מציע תובנות לגבי מדיניות לסוגי המשאבים הבאים:

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

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

התפקידים הנדרשים

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

  • אדמין באחסון (roles/storage.admin)
  • ניהול תובנות לגבי מדיניות ברמת הקטגוריה באמצעות ה-CLI של gcloud או API בארכיטקטורת REST: Service Usage Consumer (roles/serviceusage.serviceUsageConsumer)

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

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

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

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

  • כדי לראות תובנות לגבי מדיניות ברמת הקטגוריה:
    • recommender.iamPolicyInsights.get
    • recommender.iamPolicyInsights.list
  • כדי לשנות את התובנות לגבי מדיניות ברמת הקטגוריה: recommender.iamPolicyInsights.update
  • כדי לנהל תובנות לגבי מדיניות ברמת ה-bucket במסוף Google Cloud :
    • resourcemanager.projects.get
    • storage.buckets.list
  • אפשר לנהל תובנות לגבי מדיניות ברמת הקטגוריה באמצעות ה-CLI של gcloud או API בארכיטקטורת REST: serviceusage.services.use

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

הצגת תובנות לגבי מדיניות ברמת הקטגוריה

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

המסוף

  1. נכנסים לדף Buckets במסוף Google Cloud .

    כניסה לדף Buckets

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

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

  3. מוצאים את הקטגוריה שרוצים לראות את התובנות לגביה ולוחצים על סיכום התובנות לגבי המדיניות באותה השורה. הפעולה הזו פותחת את החלונית Security recommendations, שבה מפורטים כל החשבונות הראשיים שיש להם תפקיד בדלי, התפקידים שלהם ותובנות לגבי מדיניות שקשורות לתפקידים האלה.

    בטבלה הזו, תובנות לגבי מדיניות הן מהצורה EXCESS/TOTAL excess permissions, כאשר EXCESS הוא מספר ההרשאות בתפקיד שחשבון המשתמש לא צריך, ו-TOTAL הוא המספר הכולל של ההרשאות בתפקיד.

gcloud

משתמשים בפקודה gcloud recommender insights list כדי לראות את כל התובנות לגבי מדיניות ברמת הקטגוריה בפרויקט.

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

  • PROJECT_ID: המזהה של הפרויקט שרוצים לראות את התובנות לגביו.
  • LOCATION: המיקום של הקטגוריות שרוצים להציג את התובנות לגביהן.
gcloud recommender insights list --insight-type=google.iam.policy.Insight \
    --project=PROJECT_ID \
    --location=LOCATION\
    --filter="insightSubtype:PERMISSIONS_USAGE_STORAGE_BUCKET"

בפלט מפורטים כל התובנות לגבי המדיניות ברמת ה-bucket בפרויקט במיקום שצוין. לדוגמה:

INSIGHT_ID                            CATEGORY  INSIGHT_STATE  LAST_REFRESH_TIME     SEVERITY  INSIGHT_SUBTYPE                   DESCRIPTION
00dd7eb5-15c2-4fb3-a9b2-1a85f842462b  SECURITY  ACTIVE         2022-05-24T07:00:00Z  CRITICAL  PERMISSIONS_USAGE_STORAGE_BUCKET  2 of the permissions in this role binding were used in the past 90 days.
04307297-f57c-416d-9323-38abac450db0  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       PERMISSIONS_USAGE_STORAGE_BUCKET  2 of the permissions in this role binding were used in the past 90 days.
04845da5-74ba-46b4-a0f3-47d83095c261  SECURITY  ACTIVE         2022-05-24T07:00:00Z  CRITICAL  PERMISSIONS_USAGE_STORAGE_BUCKET  1 of the permissions in this role binding were used in the past 90 days.
0a39f643-d7a8-4c11-b490-fecd74290fb5  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       PERMISSIONS_USAGE_STORAGE_BUCKET  2 of the permissions in this role binding were used in the past 90 days.
0a4cee48-777b-4dea-a2b0-702b70da4b6f  SECURITY  ACTIVE         2022-05-24T07:00:00Z  CRITICAL  PERMISSIONS_USAGE_STORAGE_BUCKET  0 of the permissions in this role binding were used in the past 90 days.
0b2d147c-b26e-4afe-8fab-449c6e793750  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       PERMISSIONS_USAGE_STORAGE_BUCKET  0 of the permissions in this role binding were used in the past 90 days.
0b5eacc5-ba9a-45f6-aea2-bcdc33ce2a2d  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       PERMISSIONS_USAGE_STORAGE_BUCKET  1 of the permissions in this role binding were used in the past 90 days.
0bb3032d-721c-44e8-b464-5293f235281c  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       PERMISSIONS_USAGE_STORAGE_BUCKET  3 of the permissions in this role binding were used in the past 90 days.

REST

ה-method insights.list של Recommender API מפרטת את כל התובנות לגבי מדיניות ברמת הקטגוריה בפרויקט.

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

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

ה-method של ה-HTTP וכתובת ה-URL:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights?filter=insightSubtype%20%3D%20PERMISSIONS_USAGE_STORAGE_BUCKET

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

בתגובה מוצגים כל התובנות לגבי מדיניות ברמת ה-bucket בפרויקט במיקום שצוין. לדוגמה:

{
  "insights": [
    {
      "name": "projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b",
      "description": "2 of the permissions in this role binding were used in the past 90 days.",
      "content": {
        "role": "roles/storage.legacyBucketReader",
        "member": "allUsers",
        "condition": {
          "expression": "",
          "title": "",
          "description": "",
          "location": ""
        },
        "exercisedPermissions": [
          {
            "permission": "storage.buckets.get"
          },
          {
            "permission": "storage.objects.list"
          }
        ],
        "inferredPermissions": [],
        "currentTotalPermissionsCount": "3"
      },
      "lastRefreshTime": "2022-05-24T07:00:00Z",
      "observationPeriod": "7772400s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "associatedRecommendations": [
        {
          "recommendation": "projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883"
        }
      ],
      "targetResources": [
        "//storage.googleapis.com/bucket-1"
      ],
      "insightSubtype": "PERMISSIONS_USAGE_STORAGE_BUCKET",
      "etag": "\"2a8784e529b80aea\"",
      "severity": "CRITICAL"
    },
    {
      "name": "projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/04307297-f57c-416d-9323-38abac450db0",
      "description": "2 of the permissions in this role binding were used in the past 90 days.",
      "content": {
        "role": "roles/storage.legacyBucketReader",
        "member": "projectViewer:my-project",
        "condition": {
          "expression": "",
          "title": "",
          "description": "",
          "location": ""
        },
        "exercisedPermissions": [
          {
            "permission": "storage.buckets.get"
          },
          {
            "permission": "storage.objects.list"
          }
        ],
        "inferredPermissions": [],
        "currentTotalPermissionsCount": "3"
      },
      "lastRefreshTime": "2022-05-24T07:00:00Z",
      "observationPeriod": "7772400s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "associatedRecommendations": [
        {
          "recommendation": "projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/f3198e63-7f76-462e-a980-8e6370ff32d6"
        }
      ],
      "targetResources": [
        "//storage.googleapis.com/bucket-2"
      ],
      "insightSubtype": "PERMISSIONS_USAGE_STORAGE_BUCKET",
      "etag": "\"5b60b935f27caf2c\"",
      "severity": "LOW"
    }
  ]
}

מידע נוסף על הרכיבים של תובנה זמין בקטע בדיקת תובנות לגבי מדיניות ברמת מאגר בדף הזה.

קבלת תובנה יחידה לגבי מדיניות ברמת הקטגוריה

כדי לקבל מידע נוסף על תובנה ספציפית, כולל תיאור התובנה, הסטטוס שלה והמלצות שמשויכות אליה, אפשר להשתמש באחת מהשיטות הבאות:

המסוף

  1. נכנסים לדף Buckets במסוף Google Cloud .

    כניסה לדף Buckets

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

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

  4. מוצאים את הקטגוריה שרוצים לראות את התובנות לגביה ולוחצים על סיכום התובנות לגבי המדיניות באותה השורה. ייפתח חלונית עם רשימה של כל החשבונות הראשיים שיש להם תפקיד בקטגוריה, התפקידים שלהם ותובנות לגבי מדיניות שמשויכות לתפקידים האלה.
  5. בעמודה תובנות לגבי אבטחה, לוחצים על תובנה לגבי מדיניות. תובנות לגבי מדיניות הן מהצורה EXCESS/TOTAL excess permissions, כאשר EXCESS הוא מספר ההרשאות בתפקיד שחשבון המשתמש לא צריך ו-TOTAL הוא המספר הכולל של ההרשאות בתפקיד.

במסוף Google Cloud תיפתח חלונית עם פרטי התובנה.

gcloud

משתמשים בפקודה gcloud recommender insights describe עם מזהה התובנה כדי לראות מידע על תובנה ספציפית.

  • INSIGHT_ID: המזהה של התובנה שרוצים להציג. כדי למצוא את המזהה, מציגים את רשימת התובנות של הפרויקט.
  • PROJECT_ID: המזהה של הפרויקט שרוצים לנהל את התובנות לגביו.
  • LOCATION: המיקום של הקטגוריה שרוצים לקבל לגביה תובנה.
gcloud recommender insights describe INSIGHT_ID \
    --insight-type=google.iam.policy.Insight \
    --project=PROJECT_ID \
    --location=LOCATION

הפלט מציג את התובנה בפירוט. לדוגמה, התובנה הבאה מציינת שלכל המשתמשים (allUsers) יש את התפקיד Storage Legacy Bucket Reader (roles/storage.legacyBucketReader) בקטגוריה bucket-1, אבל רק שתי הרשאות בתפקיד הזה שימשו ב-90 הימים האחרונים:

associatedRecommendations:
- recommendation: projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883
category: SECURITY
content:
  condition:
    description: ''
    expression: ''
    location: ''
    title: ''
  currentTotalPermissionsCount: '3'
  exercisedPermissions:
  - permission: storage.buckets.get
  - permission: storage.objects.list
  inferredPermissions: []
  member: allUsers
  role: roles/storage.legacyBucketReader
description: 2 of the permissions in this role binding were used in the past 90 days.
etag: '"2a8784e529b80aea"'
insightSubtype: PERMISSIONS_USAGE_STORAGE_BUCKET
lastRefreshTime: '2022-05-24T07:00:00Z'
name: projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b
observationPeriod: 7772400s
severity: CRITICAL
stateInfo:
  state: ACTIVE
targetResources:
- //storage.googleapis.com/bucket-1

מידע נוסף על הרכיבים של תובנה זמין בקטע בדיקת תובנות לגבי מדיניות ברמת מאגר בדף הזה.

REST

ה-method insights.get של Recommender API מחזירה תובנה אחת.

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

  • PROJECT_ID: המזהה של הפרויקט שרוצים לנהל את התובנות לגביו.
  • LOCATION: המיקום של הקטגוריה שרוצים לקבל לגביה תובנה.
  • INSIGHT_ID: המזהה של התובנה שרוצים להציג. אם אתם לא יודעים מהו מזהה התובנה, תוכלו לראות את רשימת התובנות בפרויקט שלכם. המזהה של תובנה הוא כל מה שמופיע אחרי insights/ בשדה name של התובנה.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

התשובה מכילה את התובנה. לדוגמה, התובנה הבאה מציינת שלכל המשתמשים (allUsers) יש את התפקיד Storage Legacy Bucket Reader (roles/storage.legacyBucketReader) בקטגוריה bucket-1, אבל רק שתי הרשאות בתפקיד הזה שימשו ב-90 הימים האחרונים:

{
  "name": "projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b",
  "description": "2 of the permissions in this role binding were used in the past 90 days.",
  "content": {
    "role": "roles/storage.legacyBucketReader",
    "member": "allUsers",
    "condition": {
      "expression": "",
      "title": "",
      "description": "",
      "location": ""
    },
    "exercisedPermissions": [
      {
        "permission": "storage.buckets.get"
      },
      {
        "permission": "storage.objects.list"
      }
    ],
    "inferredPermissions": [],
    "currentTotalPermissionsCount": "3"
  },
  "lastRefreshTime": "2022-05-24T07:00:00Z",
  "observationPeriod": "7772400s",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883"
    }
  ],
  "targetResources": [
    "//storage.googleapis.com/bucket-1"
  ],
  "insightSubtype": "PERMISSIONS_USAGE_STORAGE_BUCKET",
  "etag": "\"2a8784e529b80aea\"",
  "severity": "CRITICAL"
}

מידע נוסף על הרכיבים של תובנה זמין בקטע בדיקת תובנות לגבי מדיניות ברמת מאגר בדף הזה.

בדיקת תובנות לגבי מדיניות ברמת הקטגוריה

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

המסוף

כשלוחצים על תובנה לגבי מדיניות במסוף Google Cloud , נפתחת חלונית במסוף Google Cloud עם פרטי התובנה. הפרטים האלה מוצגים רק אם התובנה משויכת להמלצה.

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

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

gcloud

התוכן של תובנה נקבע לפי סוגי המשנה שלה. תובנות לגבי מדיניות ברמת ה-Bucket (google.iam.policy.Insight) הן תובנות עם סוג המשנה PERMISSIONS_USAGE_STORAGE_BUCKET.

תובנות PERMISSIONS_USAGE_STORAGE_BUCKET כוללות את הרכיבים הבאים, לא בהכרח בסדר הזה:

  • associatedRecommendations: המזהים של כל ההמלצות שמשויכות לתובנה. אם אין המלצות שמשויכות לתובנה, השדה הזה ריק.
  • category: הקטגוריה של תובנות IAM היא תמיד SECURITY.
  • content: מדווח על השימוש בהרשאות של חשבון משתמש בתפקיד ספציפי. השדה הזה מכיל את הרכיבים הבאים:

    • condition: תנאים כלשהם שמצורפים לקישור שמעניק לחשבון המשתמש את התפקיד. אם אין תנאים, השדה הזה מכיל תנאי ריק.
    • exercisedPermissions: ההרשאות בתפקיד שחשבון המשתמש השתמש בהן במהלך תקופת הבדיקה.
    • inferredPermissions: ההרשאות בתפקיד ששירות Recommender קבע באמצעות ML, שסביר להניח שהחשבון הראשי יזדקק להן על סמך ההרשאות שהופעלו.
    • member: חשבון המשתמש שהשימוש שלו בהרשאות נותח.
    • role: התפקיד שעבורו נותח השימוש בהרשאה.
  • description: סיכום של התובנה שקריא לאנשים.
  • etag: מזהה ייחודי של המצב הנוכחי של התובנה. בכל פעם שהתובנה משתנה, מוקצה לה ערך etag חדש.

    כדי לשנות את המצב של תובנה, צריך לציין את etag של התובנה הקיימת. השימוש ב-etag עוזר לוודא שכל הפעולות יתבצעו רק אם התובנה לא השתנתה מאז הפעם האחרונה שאחזרתם אותה.

  • insightSubtype: תת-הסוג של התובנה.
  • lastRefreshTime: התאריך שבו התובנה עודכנה לאחרונה, שמציין את עדכניות הנתונים ששימשו ליצירת התובנה.
  • name: השם של התובנה, בפורמט הבא:

    projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID

    מחליפים את ה-placeholders בערכים הבאים:

    • PROJECT_ID: המזהה של הפרויקט שבו נוצר התובנה.
    • LOCATION: המיקום של הקטגוריה שהתובנה מתייחסת אליה.
    • INSIGHT_ID: מזהה ייחודי של התובנה.
  • observationPeriod: תקופת הזמן שקדמה לתובנה. הנתונים מהמקור ששימשו ליצירת התובנה מסתיימים בתאריך lastRefreshTime ומתחילים בתאריך lastRefreshTime פחות observationPeriod.
  • stateInfo: אחרי שהתובנות מוצעות, הן עוברות כמה שינויי סטטוס:

    • ACTIVE: התובנה נוצרה, אבל לא בוצעה פעולה או שבוצעה פעולה בלי לעדכן את מצב התובנה. תובנות פעילות מתעדכנות כשיש שינויים בנתוני הבסיס.
    • ACCEPTED: בוצעה פעולה מסוימת על סמך התובנה. התובנות מתקבלות כשסימנתם המלצה משויכת כCLAIMED,‏ SUCCEEDED או FAILED, או כשאישרתם את התובנה ישירות. כשמצב התובנה הוא ACCEPTED, אי אפשר לשנות את התוכן שלה. תובנות שאושרו נשמרות למשך 90 יום אחרי האישור.
  • targetResources: שם המשאב המלא של הקטגוריה שאליה מתייחס התובנה. לדוגמה, //storage.googleapis.com/my-bucket.

REST

התוכן של תובנה נקבע לפי סוגי המשנה שלה. תובנות לגבי מדיניות ברמת ה-Bucket (google.iam.policy.Insight) הן תובנות עם סוג המשנה PERMISSIONS_USAGE_STORAGE_BUCKET.

תובנות PERMISSIONS_USAGE_STORAGE_BUCKET כוללות את הרכיבים הבאים, לא בהכרח בסדר הזה:

  • associatedRecommendations: המזהים של כל ההמלצות שמשויכות לתובנה. אם אין המלצות שמשויכות לתובנה, השדה הזה ריק.
  • category: הקטגוריה של תובנות IAM היא תמיד SECURITY.
  • content: מדווח על השימוש בהרשאות של חשבון משתמש בתפקיד ספציפי. השדה הזה מכיל את הרכיבים הבאים:

    • condition: תנאים כלשהם שמצורפים לקישור שמעניק לחשבון המשתמש את התפקיד. אם אין תנאים, השדה הזה מכיל תנאי ריק.
    • exercisedPermissions: ההרשאות בתפקיד שחשבון המשתמש השתמש בהן במהלך תקופת הבדיקה.
    • inferredPermissions: ההרשאות בתפקיד ששירות Recommender קבע באמצעות ML, שסביר להניח שהחשבון הראשי יזדקק להן על סמך ההרשאות שהופעלו.
    • member: חשבון המשתמש שהשימוש שלו בהרשאות נותח.
    • role: התפקיד שעבורו נותח השימוש בהרשאה.
  • description: סיכום של התובנה שקריא לאנשים.
  • etag: מזהה ייחודי של המצב הנוכחי של התובנה. בכל פעם שהתובנה משתנה, מוקצה לה ערך etag חדש.

    כדי לשנות את המצב של תובנה, צריך לציין את etag של התובנה הקיימת. השימוש ב-etag עוזר לוודא שכל הפעולות יתבצעו רק אם התובנה לא השתנתה מאז הפעם האחרונה שאחזרתם אותה.

  • insightSubtype: תת-הסוג של התובנה.
  • lastRefreshTime: התאריך שבו התובנה עודכנה לאחרונה, שמציין את עדכניות הנתונים ששימשו ליצירת התובנה.
  • name: השם של התובנה, בפורמט הבא:

    projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID

    מחליפים את ה-placeholders בערכים הבאים:

    • PROJECT_ID: המזהה של הפרויקט שבו נוצר התובנה.
    • LOCATION: המיקום של הקטגוריה שהתובנה מתייחסת אליה.
    • INSIGHT_ID: מזהה ייחודי של התובנה.
  • observationPeriod: תקופת הזמן שקדמה לתובנה. הנתונים מהמקור ששימשו ליצירת התובנה מסתיימים בתאריך lastRefreshTime ומתחילים בתאריך lastRefreshTime פחות observationPeriod.
  • stateInfo: אחרי שהתובנות מוצעות, הן עוברות כמה שינויי סטטוס:

    • ACTIVE: התובנה נוצרה, אבל לא בוצעה פעולה או שבוצעה פעולה בלי לעדכן את מצב התובנה. תובנות פעילות מתעדכנות כשיש שינויים בנתוני הבסיס.
    • ACCEPTED: בוצעה פעולה מסוימת על סמך התובנה. התובנות מתקבלות כשסימנתם המלצה משויכת כCLAIMED,‏ SUCCEEDED או FAILED, או כשאישרתם את התובנה ישירות. כשמצב התובנה הוא ACCEPTED, אי אפשר לשנות את התוכן שלה. תובנות שאושרו נשמרות למשך 90 יום אחרי האישור.
  • targetResources: שם המשאב המלא של הקטגוריה שאליה מתייחס התובנה. לדוגמה, //storage.googleapis.com/my-bucket.

סימון תובנה לגבי מדיניות ברמת הקטגוריה כACCEPTED

אם אתם מבצעים פעולה על סמך תובנה פעילה, אתם יכולים לסמן את התובנה הזו כACCEPTED. הסטטוס ACCEPTED מציין ל-Recommender API שפעלתם על סמך התובנה הזו, וכך הוא יכול לשפר את ההמלצות.

תובנות שאושרו נשמרות למשך 90 ימים אחרי שהן מסומנות כACCEPTED.

המסוף

אם תובנה משויכת להמלצה, יישום ההמלצה משנה את המצב של התובנה ל-ACCEPTED.

כדי לסמן תובנה כACCEPTED בלי להחיל המלצה, משתמשים ב-CLI של gcloud או ב-API בארכיטקטורת REST.

gcloud

משתמשים בפקודה gcloud recommender insights mark-accepted עם מזהה התובנה כדי לסמן תובנה כACCEPTED.

  • INSIGHT_ID: המזהה של התובנה שרוצים להציג. כדי למצוא את המזהה, מציגים את רשימת התובנות של הפרויקט.
  • PROJECT_ID: המזהה של הפרויקט שרוצים לנהל את התובנות לגביו.
  • LOCATION: המיקום של הקטגוריה שרוצים לסמן את התובנה שלה כ-ACCEPTED.
  • ETAG: מזהה של גרסת התובנה. כדי לקבל את etag, מבצעים את הפעולות הבאות:

    1. מקבלים את התובנה באמצעות הפקודה gcloud recommender insights describe.
    2. מוצאים ומעתיקים את הערך etag מהפלט, כולל המירכאות שמקיפות אותו. לדוגמה, "d3cdec23cc712bd0".
gcloud recommender insights mark-accepted INSIGHT_ID \
    --insight-type=google.iam.policy.Insight \
    --project=PROJECT_ID \
    --location=LOCATION \
    --etag=ETAG

הפלט מציג את התובנה, ועכשיו הסטטוס הוא ACCEPTED:

associatedRecommendations:
- recommendation: projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883
category: SECURITY
content:
  condition:
    description: ''
    expression: ''
    location: ''
    title: ''
  currentTotalPermissionsCount: '3'
  exercisedPermissions:
  - permission: storage.buckets.get
  - permission: storage.objects.list
  inferredPermissions: []
  member: allUsers
  role: roles/storage.legacyBucketReader
description: 2 of the permissions in this role binding were used in the past 90 days.
etag: '"0187c0362e4bcea7"'
insightSubtype: PERMISSIONS_USAGE_STORAGE_BUCKET
lastRefreshTime: '2022-05-24T07:00:00Z'
name: projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b
observationPeriod: 7772400s
severity: CRITICAL
stateInfo:
  state: ACCEPTED
targetResources:
- //storage.googleapis.com/bucket-1

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

REST

ה-method insights.markAccepted של Recommender API מסמנת תובנה כ-ACCEPTED.

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

  • PROJECT_ID: המזהה של הפרויקט שרוצים לנהל את התובנות לגביו.
  • LOCATION: המיקום של הקטגוריה שרוצים לסמן את התובנה שלה כ-ACCEPTED.
  • INSIGHT_ID: המזהה של התובנה שרוצים להציג. אם אתם לא יודעים מהו מזהה התובנה, תוכלו לראות את רשימת התובנות בפרויקט שלכם. המזהה של תובנה הוא כל מה שמופיע אחרי insights/ בשדה name של התובנה.
  • ETAG: מזהה של גרסת התובנה. כדי לקבל את etag, מבצעים את הפעולות הבאות:
    1. קבלת התובנה באמצעות השיטה insights.get.
    2. מאתרים את הערך etag בתשובה ומעתיקים אותו.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID:markAccepted

תוכן בקשת JSON:

{
  "etag": "ETAG"
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

התשובה מכילה את התובנה, ועכשיו הסטטוס שלה הוא ACCEPTED:

{
  "name": "projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b",
  "description": "2 of the permissions in this role binding were used in the past 90 days.",
  "content": {
    "role": "roles/storage.legacyBucketReader",
    "member": "allUsers",
    "condition": {
      "expression": "",
      "title": "",
      "description": "",
      "location": ""
    },
    "exercisedPermissions": [
      {
        "permission": "storage.buckets.get"
      },
      {
        "permission": "storage.objects.list"
      }
    ],
    "inferredPermissions": [],
    "currentTotalPermissionsCount": "3"
  },
  "lastRefreshTime": "2022-05-24T07:00:00Z",
  "observationPeriod": "7772400s",
  "stateInfo": {
    "state": "ACCEPTED"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883"
    }
  ],
  "targetResources": [
    "//storage.googleapis.com/bucket-1"
  ],
  "insightSubtype": "PERMISSIONS_USAGE_STORAGE_BUCKET",
  "etag": "\"9a5485cdc1f05b58\"",
  "severity": "CRITICAL"
}

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

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