השתקת ממצאים ב-Security Command Center

בדף הזה מוסבר איך לצמצם את נפח הממצאים שמתקבלים ב-Security Command Center באמצעות השתקה של ממצאים.

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

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

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

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

הרשאות

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

  • צפייה בכללים להשתקת ממצאים:
    • צפייה באדמין ב-Security Center (roles/securitycenter.adminViewer)
    • בעל הרשאת צפייה בהגדרות מרכז האבטחה (roles/securitycenter.settingsViewer)
    • צפייה בהגדרות השתקה במרכז האבטחה (roles/securitycenter.muteConfigsViewer)
  • צפייה, יצירה, עדכון ומחיקה של כללי השתקה:
    • אדמין ב-Security Center (roles/securitycenter.admin)
    • עריכה של אדמין ב-Security Center (roles/securitycenter.adminEditor)
    • עורך ההגדרות של מרכז האבטחה (roles/securitycenter.settingsEditor)
    • עורך ההגדרות להשתקה במרכז האבטחה (roles/securitycenter.muteConfigsEditor)
  • השתקת ממצאים באופן ידני:
    • עריכת ממצאים במרכז האבטחה (roles/securitycenter.findingsEditor)

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

  • הרשאות קריאה של כלל להשתקת ממצאים
    • securitycenter.muteconfigs.get
    • securitycenter.muteconfigs.list
  • הרשאות כתיבה של כלל להשתקת משתמשים
    • securitycenter.muteconfigs.create
    • securitycenter.muteconfigs.update
    • securitycenter.muteconfigs.delete
  • איך מוצאים הרשאות כתיבה
    • securitycenter.findings.setMute
    • securitycenter.findings.bulkMuteUpdate

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

מידע נוסף על התפקידים ב-Security Command Center זמין במאמר בנושא בקרת גישה.

יצירה וניהול של כללים להשתקת שיחות

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

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

סוגים של כללי השתקה

ב-Security Command Center יש תמיכה בהגדרות סטטיות ודינמיות של כללים להשתקת ממצאים. אפשר להשתמש בכללי השתקה סטטיים ודינמיים בו-זמנית, אבל לא מומלץ לעשות את זה. כללי השתקה סטטיים מבטלים כללי השתקה דינמיים כשהם מוחלים על אותה תוצאת סריקה. כתוצאה מכך, כללי השתקה דינמיים לא יפעלו כמצופה, וזה עלול ליצור בלבול כשמנהלים את הממצאים. לכן מומלץ להשתמש רק בסוג אחד של כלל להשתקת ממצאים.

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

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

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

כללי השתקה סטטיים

  • כללי השתקה סטטיים פועלים ללא הגבלת זמן. אם ממצא תואם להגדרת ההשתקה הסטטית, Security Command Center מגדיר באופן אוטומטי את המאפיין mute של הממצא לערך MUTED עד שתשנו אותו באופן ידני.
  • לכללי השתקה סטטיים אין השפעה על ממצאים קיימים, אלא אם הם נוצרו באמצעות מסוף Google Cloud . במקרה כזה, הכלל ישתיק באופן רטרואקטיבי ממצאים קיימים. אחרת, הם חלים רק על ממצאים שנוצרו או עודכנו אחרי שהוגדר הכלל. אם רוצים להשתיק גם ממצאים קיימים דומים בלי להשתמש במסוף Google Cloud , אפשר להשתמש באותם מסננים כדי להשתיק ממצאים בכמות גדולה.
  • כללי השתקה סטטיים מקבלים עדיפות על פני כללי השתקה דינמיים. לכן, כל הממצאים החדשים שתואמים לכלל להשתקת ממצאים סטטי מוגדר נחשבים כמושתקים, גם אם הם תואמים גם לכלל להשתקת ממצאים דינמי מוגדר.

כללי השתקה דינמיים

  • כללי השתקה דינמיים יכולים לפעול על ממצא באופן זמני עם תאריך תפוגה, או ללא הגבלת זמן אם לא מוגדר תאריך תפוגה. כשממצא קיים או חדש תואם להגדרת ההשתקה הדינמית, Security Command Center מגדיר באופן אוטומטי את המאפיין mute של הממצא לערך MUTED עד לתאריך התפוגה שצוין או עד שיחולו שינויים בממצא או בהגדרה עצמה. כשכלל להשתקת ממצאים דינמי פג תוקף, Security Command Center מסיר את הכלל מהממצא. אם הממצא לא תואם לאף כלל אחר של השתקה דינמית, הנכס mute מאופס אוטומטית לערך UNDEFINED.
  • כללי השתקה דינמיים חלים באופן אוטומטי על ממצאים קיימים שתואמים להגדרה שלכם, וגם על ממצאים שנוצרו או עודכנו לאחרונה.
  • העדיפות של כללי השתקה דינמיים נמוכה יותר, והם מוחלפים בכללי השתקה סטטיים אם שני סוגי הכללים חלים על ממצא.

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

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

ההיקף של כללי השתקה

כשיוצרים מסננים, חשוב לקחת בחשבון את היקף הכלל להשתקת ממצאים.

לדוגמה, אם כותבים מסנן כדי להשתיק ממצאים ב-Project A, אבל המסנן עצמו נוצר ב-Project B, יכול להיות שהמסנן לא יתאים לאף ממצא.

באופן דומה, אם מופעלת שמירת נתונים באזור גיאוגרפי, ההיקף של כלל להשתקת ממצאים מוגבל למיקום של Security Command Center שבו נוצר כלל להשתקת ממצאים. לדוגמה, אם יוצרים כלל השתקה במיקום ארצות הברית (us), הכלל לא ישתיק ממצאים שמאוחסנים במיקום האיחוד האירופי (eu).

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

הגבלות על כללים להשתקת ממצאים

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

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

ב-Security Command Center Premium אפשר לתת תפקידים ברמת הארגון, התיקייה והפרויקט. ב-Security Command Center Standard אפשר להקצות תפקידים רק ברמת הארגון. מידע נוסף זמין במאמר בנושא בקרת גישה.

‫Security Command Center משתמש בממצאים פעילים ובממצאים שהושתקו כדי לחשב את אחוזי התאימות לאמצעי הבקרה בדף תאימות ובדוחות התאימות. השתקת ממצא לא גורמת להחרגה שלו מהדף תאימות או מדוחות התאימות.

המיקום של נתונים וכללי השתקה

אם data residency מופעל, ההגדרות שמגדירות כללי השתקה – משאבי muteConfig – כפופות לבקרות של data residency ונשמרות במיקום ב-Security Command Center שאתם בוחרים.

כדי להחיל כלל להשתקת ממצאים על הממצאים במיקום מסוים ב-Security Command Center, צריך ליצור את כלל להשתקת הממצאים באותו מיקום שבו נמצאים הממצאים שעליהם רוצים להחיל את הכלל.

המסננים שמשמשים בכללי השתקה יכולים להכיל נתונים שחלים עליהם אמצעי בקרה על מיקום הנתונים, ולכן חשוב לציין את המיקום הנכון לפני שיוצרים אותם. ב-Security Command Center אין הגבלה על המיקום שבו אפשר ליצור כללי השתקה או ייצוא בסטרימינג.

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

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

הנחיות לשימוש ב-Security Command Center כשמפעילים את התכונה 'שמירת נתונים באזור מסוים' מופיעות במאמר נקודות קצה אזוריות של Security Command Center.

יצירת כלל להשתקת ממצאים

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

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

כדי ליצור כלל להשתקה, לוחצים על הכרטיסייה של ההליך שרוצים להשתמש בו:

המסוף

  1. נכנסים לדף Findings ב-Security Command Center במסוף Google Cloud .

כניסה לדף Findings

  1. אם צריך, בוחרים את Google Cloud הפרויקט או הארגון.
  2. לוחצים על אפשרויות השתקה ואז על ניהול כללי השתקה.
  3. לוחצים על יצירת כלל להשתקת ממצאים.
  4. מזינים מזהה כלל להשתקת ממצאים. חובה לציין את הערך הזה.
  5. מזינים תיאור של כלל להשתקת ממצאים שכולל הקשר להשתקת הממצאים. הוספת הערך הזה היא אופציונלית אבל מומלצת.
  6. כדי לוודא מהו ההיקף של כלל להשתקת ממצאים, בודקים את הערך של Parent resource.
  7. אם אתם יוצרים כלל להשתקת מילים ללא תאריך תפוגה, ממשיכים לשלב הבא. אם אתם יוצרים כלל של השתקה דינמית כדי להשתיק זמנית ממצאים, אתם צריכים לבצע את השלבים הבאים:
    1. מסמנים את תיבת הסימון השתקת ממצאים תואמים באופן זמני.
    2. בוחרים או מזינים את תאריך התפוגה של כלל להשתקת ממצאים דינמי. הערך הזה מציין לכמה זמן הכלל ישתיק ממצאים תואמים.
  8. בשדה Findings query (שאילתת ממצאים), לוחצים על Add filter (הוספת מסנן) כדי ליצור את הצהרות השאילתה. אפשר גם להקליד את הצהרות השאילתה באופן ידני.

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

    1. בוחרים מאפיין של ממצא או מקלידים את השם שלו בתיבה Search finding attributes. תוצג רשימה של מאפייני המשנה הזמינים.
    2. בוחרים מאפיין משנה. מוצג שדה בחירה שבו אפשר ליצור את הצהרת השאילתה באמצעות מאפיין המשנה שבחרתם, אופרטור שאילתה וערך אחד או יותר למאפיין המשנה.
    3. בוחרים את האופרטור וערך אחד או יותר של מאפיין המשנה בחלונית. מידע נוסף על אופרטורים של שאילתות ועל הפונקציות שבהן הם משתמשים זמין במאמר בנושא אופרטורים של שאילתות בתפריט 'הוספת מסננים'.
    4. לוחצים על אישור.

      תיבת הדו-שיח תיסגר והשאילתה תתעדכן.

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

  10. לוחצים על Save.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. כדי ליצור כללי השתקה, מריצים את הפקודה gcloud scc muteconfigs create:

    gcloud scc muteconfigs create CONFIG_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --description="RULE_DESCRIPTION" \
      --filter="FILTER" \
      --type=MUTE_TYPE \
      --expiry-time=TIMESTAMP

    מחליפים את מה שכתוב בשדות הבאים:

    • CONFIG_ID: השם של כלל להשתקת ממצאים. המזהה צריך להכיל תווים אלפאנומריים ומקפים, והאורך שלו צריך להיות בין תו אחד ל-63 תווים.
    • PARENT: ההיקף בהיררכיית המשאבים שאליו חל כלל להשתקת ממצאים, organization,‏ folder או project.
    • PARENT_ID: המזהה המספרי של הארגון, התיקייה או הפרויקט ברמת ההורה, או המזהה האלפאנומרי של הפרויקט ברמת ההורה.
    • LOCATION: המיקום של Security Command Center שבו רוצים ליצור כלל להשתקת ממצאים. אם מופעלת שמירת נתונים באזור מסוים, צריך להשתמש בערך eu, sa או us. אחרת, צריך להשתמש בערך global.
    • RULE_DESCRIPTION: תיאור של כלל ההשתקה, באורך של עד 1,024 תווים.
    • FILTER: הביטוי שאתם מגדירים כדי לסנן את הממצאים. לדוגמה, כדי להשתיק ממצאים של OPEN_FIREWALL, המסנן יכול להיות FILTER="category=\"OPEN_FIREWALL\"".
    • MUTE_TYPE: סוג כלל ההשתקה שרוצים ליצור. סוגי הכללים להשתקת ממצאים שניתן להשתמש בהם הם DYNAMIC ו-STATIC. סוג כלל להשתקת ממצאים שמוגדר כברירת מחדל הוא STATIC. אי אפשר לשנות את הסוג של כלל להשתקת ממצאים אחרי שיוצרים אותו.
    • TIMESTAMP: רלוונטי רק אם יוצרים כלל השתקה דינמי. מחרוזת של תאריך ושעה שמציינת מתי פג התוקף של כלל להשתקת ממצאים דינמי. הערך חייב להיות לפחות יום אחד בעתיד, אחרת הבקשה תידחה. מידע על פורמטים של שעות זמין במאמר gcloud topic datetimes. כשכלל השתקה דינמי פג תוקף, הוא מוסר מכל הממצאים שתואמים לו. אם רוצים שכלל להשתקת ממצאים דינמי יפעל ללא הגבלת זמן על ממצאים תואמים, צריך להשמיט את השדה הזה.

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

  3. Terraform

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

    resource "google_scc_v2_organization_mute_config" "default" {
      mute_config_id    = "my-config"
      organization = "123456789"
      location     = "global"
      description  = "My custom Cloud Security Command Center Finding Organization mute Configuration"
      filter = "severity = \"HIGH\""
      type = "STATIC"
    }
    

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

    resource "google_folder" "folder" {
      parent       = "organizations/123456789"
      display_name = "folder-name"
    }
    
    resource "google_scc_v2_folder_mute_config" "default" {
      mute_config_id    = "my-config"
      folder = google_folder.folder.folder_id
      location     = "global"
      description  = "My custom Cloud Security Command Center Finding Folder mute Configuration"
      filter = "severity = \"HIGH\""
      type = "STATIC"
    }
    

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

    resource "google_scc_v2_project_mute_config" "default" {
      mute_config_id    = "my-config"
      project = "my-project-name"
      location     = "global"
      description  = "My custom Cloud Security Command Center Finding Project mute Configuration"
      filter = "severity = \"HIGH\""
      type = "STATIC"
    }
    

    Go

    
    import (
    	"context"
    	"fmt"
    	"io"
    
    	securitycenter "cloud.google.com/go/securitycenter/apiv2"
    	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
    )
    
    // createMuteRule: Creates a mute configuration under a given scope that will mute
    // all new findings that match a given filter.
    // Existing findings will not be muted.
    func createMuteRule(w io.Writer, parent string, muteConfigId string) error {
    	// parent: Use any one of the following options:
    	//             - organizations/{organization_id}
    	//             - folders/{folder_id}
    	//             - projects/{project_id}
    	// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
    	// muteConfigId: Set a random id; max of 63 chars.
    	// muteConfigId := "random-mute-id-" + uuid.New().String()
    	ctx := context.Background()
    	client, err := securitycenter.NewClient(ctx)
    	if err != nil {
    		return fmt.Errorf("securitycenter.NewClient: %w", err)
    	}
    	defer client.Close()
    
    	muteConfig := &securitycenterpb.MuteConfig{
    		Description: "Mute low-medium IAM grants excluding 'compute' ",
    		// Set mute rule(s).
    		// To construct mute rules and for supported properties, see:
    		// https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
    		Filter: "severity=\"LOW\" OR severity=\"MEDIUM\" AND " +
    			"category=\"Persistence: IAM Anomalous Grant\" AND " +
    			"-resource.type:\"compute\"",
    		Type: securitycenterpb.MuteConfig_STATIC,
    	}
    
    	req := &securitycenterpb.CreateMuteConfigRequest{
    		Parent:       parent,
    		MuteConfigId: muteConfigId,
    		MuteConfig:   muteConfig,
    	}
    
    	response, err := client.CreateMuteConfig(ctx, req)
    	if err != nil {
    		return fmt.Errorf("failed to create mute rule: %w", err)
    	}
    	fmt.Fprintf(w, "Mute rule created successfully: %s", response.Name)
    	return nil
    }
    

    Java

    
    import com.google.cloud.securitycenter.v2.LocationName;
    import com.google.cloud.securitycenter.v2.MuteConfig;
    import com.google.cloud.securitycenter.v2.MuteConfig.MuteConfigType;
    import com.google.cloud.securitycenter.v2.SecurityCenterClient;
    import java.io.IOException;
    import java.util.UUID;
    
    public class CreateMuteRule {
    
      public static void main(String[] args) throws IOException {
        // TODO: Replace the following variables.
        // projectId: Google Cloud Project id.
        String projectId = "google-cloud-project-id";
    
        // Specify the location of the mute config.
        String location = "global";
    
        // muteConfigId: Set a random id; max of 63 chars.
        String muteConfigId = "random-mute-id-" + UUID.randomUUID();
    
        createMuteRule(projectId, location, muteConfigId);
      }
    
      // Creates a mute configuration in a project under a given location.
      public static void createMuteRule(String projectId, String location, String muteConfigId)
          throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests.
        try (SecurityCenterClient client = SecurityCenterClient.create()) {
    
          MuteConfig muteConfig =
              MuteConfig.newBuilder()
                  .setDescription("Mute low-medium IAM grants excluding 'compute' ")
                  // Set mute rule(s).
                  // To construct mute rules and for supported properties, see:
                  // https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
                  .setFilter(
                      "severity=\"LOW\" OR severity=\"MEDIUM\" AND "
                          + "category=\"Persistence: IAM Anomalous Grant\" AND "
                          + "-resource.type:\"compute\"")
                  .setType(MuteConfigType.STATIC)
                  .build();
    
          // You can also create mute rules in an organization/ folder.
          // Construct the parameters according to the parent resource.
          //  * Organization -> client.createMuteConfig(OrganizationLocationName.of(...
          //  * Folder -> client.createMuteConfig(FolderLocationName.of(...
          MuteConfig response = client.createMuteConfig(
              LocationName.of(projectId, location), muteConfig, muteConfigId);
          System.out.println("Mute rule created successfully: " + response.getName());
        }
      }
    }

    Python

    def create_mute_rule(parent_path: str, location_id: str, mute_config_id: str) -> Dict:
        """
        Creates a mute configuration under a given scope that will mute
        all new findings that match a given filter.
        Existing findings will NOT BE muted.
        Args:
            parent_path: use any one of the following options:
                         - organizations/{organization_id}
                         - folders/{folder_id}
                         - projects/{project_id}
            location_id: Gcp location id; example: 'global'
            mute_config_id: Set a unique id; max of 63 chars.
        Returns:
            Dict: returns the mute rule details
        """
    
        from google.cloud import securitycenter_v2
    
        client = securitycenter_v2.SecurityCenterClient()
    
        mute_config = securitycenter_v2.MuteConfig()
        mute_config.description = "Mute low-medium IAM grants excluding 'compute' "
        # Set mute rule(s).
        # To construct mute rules and for supported properties, see:
        # https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
        mute_config.filter = (
            'severity="LOW" OR severity="MEDIUM" AND '
            'category="Persistence: IAM Anomalous Grant" AND '
            '-resource.type:"compute"'
        )
        mute_config.type = "STATIC"
    
        request = securitycenter_v2.CreateMuteConfigRequest()
        request.parent = parent_path + "/locations/" + location_id
        request.mute_config_id = mute_config_id
        request.mute_config = mute_config
    
        mute_config = client.create_mute_config(request=request)
        print(f"Mute rule created successfully: {mute_config.name}")
        return mute_config
    
    

    REST

    ב-Security Command Center API, משתמשים ב-method‏ muteConfigs.create כדי ליצור כלל להשתקת ממצאים. גוף הבקשה הוא מופע של MuteConfig:

    POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs?muteConfigId=MUTE_CONFIG_ID -d
    
      {
        "description": "RULE_DESCRIPTION",
        "filter": "FILTER",
        "type": "MUTE_TYPE",
        "expiryTime": "TIMESTAMP"
      }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PARENT: משאב האב של כלל להשתקת ממצאים (organizations,‏ folders או projects)
    • PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט
    • LOCATION: המיקום של Security Command Center שבו רוצים ליצור כלל להשתקת ממצאים. אם מופעלת שמירת נתונים באזור מסוים, צריך להשתמש בערך eu,‏ sa או us. אחרת, צריך להשתמש בערך global.
    • MUTE_CONFIG_ID: השם של כלל להשתקת ממצאים (בין 1 ל-63 תווים)
    • RULE_DESCRIPTION: תיאור של כלל ההשתקה (מקסימום: 1,024 תווים)
    • FILTER: הביטוי שאתם מגדירים כדי לסנן את הממצאים

      לדוגמה, כדי להשתיק ממצאים של OPEN_FIREWALL, המסנן יכול להיות "category=\"OPEN_FIREWALL\"".

    • MUTE_TYPE: סוג כלל ההשתקה שרוצים ליצור. סוגי הכללים להשתקת ממצאים שניתן להשתמש בהם הם DYNAMIC ו-STATIC. אי אפשר לשנות את הסוג של כלל להשתקת ממצאים אחרי שיוצרים אותו.

    • TIMESTAMP: רלוונטי רק אם יוצרים כלל השתקה דינמי. מחרוזת של תאריך ושעה שמציינת מתי פג התוקף של כלל להשתקת ממצאים דינמי. הערך חייב להיות לפחות יום אחד בעתיד, אחרת הבקשה תידחה. מידע על פורמטים של שעות זמין במאמר gcloud topic datetimes. כשכלל השתקה דינמי פג תוקף, הוא מוסר מכל הממצאים שתואמים לו. אם רוצים שכלל להשתקת ממצאים דינמי יפעל ללא הגבלת זמן על ממצאים תואמים, צריך להשמיט את השדה הזה.

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

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

מאפייני ממצאים שלא נתמכים בכללי השתקה

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

מאפייני ממצאים שלא נתמכים

  • caiResource
  • canonicalName
  • createTime
  • description
  • eventTime
  • externalUri
  • gcpMetadata.folders1
  • libraryPaths
  • mute
  • muteAnnotation
  • muteInfo
  • muteInitiator
  • muteUpdateTime
  • name
  • nextSteps
  • originalProviderId
  • parent
  • processes.binaryPath
  • processes.libraryPaths
  • propertyDataTypes
  • resource.tags
  • resourceName
  • securityMarks
  • sourceProperties
  • state
  • workflowState
  • ‫1המאפיין gcpMetadata.folders מכיל שדות משנה שנתמכים במסנני השתקה.

הצגת כללי ההשתקה

אפשר לרשום את כללי ההשתקה בארגון, בתיקייה או בפרויקט באמצעות מסוף Google Cloud , ה-CLI של gcloud או Security Command Center API.

היכולת שלכם לראות את רשימת כללי ההשתקה בהיקף מסוים תלויה בהרשאות שניתנו לתפקידים שלכם ב-IAM.

אם הפעלתם את התכונה 'שמירת נתונים באזור מסוים' ב-Security Command Center, ההיקף של פקודת הרשימה מוגבל גם למיקום של Security Command Center שבחרתם.

לקוד לדוגמה שמפרט כללים להשתקת ממצאים, ראה רשימת כללים להשתקת ממצאים.

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

המסוף

  1. במסוף Google Cloud , עוברים לכרטיסייה Mute rules בדף Settings של Security Command Center.

    מעבר לכללי השתקה

  2. אם צריך, בוחרים את Google Cloud הפרויקט או הארגון.

  3. בקטע כללי השתקה מוצגים פרטים על כללי השתקה פעילים, כולל:

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

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. כדי להציג רשימה של כללי השתקה, מריצים את הפקודה gcloud scc muteconfigs list:

    gcloud scc muteconfigs list --PARENT=PARENT_ID \
      --location=LOCATION

    מחליפים את מה שכתוב בשדות הבאים:

    • PARENT: organization,‏ folder או project של ההורה שלגביו רוצים להציג את כללי ההשתקה
    • PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט
    • LOCATION: המיקום של Security Command Center שבו רוצים להציג את כללי ההשתקה. אם מופעלת שמירת נתונים באזור מסוים, צריך להשתמש בערך eu,‏ sa או us. אחרת, צריך להשתמש בערך global.
  3. Go

    import (
    	"context"
    	"fmt"
    	"io"
    
    	securitycenter "cloud.google.com/go/securitycenter/apiv2"
    	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
    	"google.golang.org/api/iterator"
    )
    
    // listMuteRules lists mute configs at the organization level will return all the configs
    // at the org, folder, and project levels.
    // Similarly, listing configs at folder level will list all the configs
    // at the folder and project levels.
    func listMuteRules(w io.Writer, parent string) error {
    	// Use any one of the following resource paths to list mute configurations:
    	//         - organizations/{organization_id}
    	//         - folders/{folder_id}
    	//         - projects/{project_id}
    	// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
    	ctx := context.Background()
    	client, err := securitycenter.NewClient(ctx)
    	if err != nil {
    		return fmt.Errorf("securitycenter.NewClient: %w", err)
    	}
    	defer client.Close()
    
    	req := &securitycenterpb.ListMuteConfigsRequest{Parent: parent}
    
    	// List all mute configs present in the resource.
    	it := client.ListMuteConfigs(ctx, req)
    	for {
    		muteconfig, err := it.Next()
    		if err == iterator.Done {
    			break
    		}
    		if err != nil {
    			return fmt.Errorf("it.Next: %w", err)
    		}
    		fmt.Fprintf(w, "Muteconfig Name: %s, ", muteconfig.Name)
    	}
    	return nil
    }
    

    Java

    
    import com.google.cloud.securitycenter.v2.ListMuteConfigsRequest;
    import com.google.cloud.securitycenter.v2.MuteConfig;
    import com.google.cloud.securitycenter.v2.SecurityCenterClient;
    import java.io.IOException;
    
    public class ListMuteRules {
    
      public static void main(String[] args) throws IOException {
        // TODO: Replace variables enclosed within {}
        // projectId: Google Cloud Project id.
        String projectId = "google-cloud-project-id";
    
        // Specify the location to list mute configs.
        String location = "global";
    
        listMuteRules(projectId, location);
      }
    
      // Lists all mute rules present under the resource type in the given location.
      public static void listMuteRules(String projectId, String location) throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests.
        try (SecurityCenterClient client = SecurityCenterClient.create()) {
    
          // Parent can also be one of:
          //  * "organizations/{org_id}/locations/{location}"
          //  * "folders/{folder_id}/locations/{location}"
          ListMuteConfigsRequest listMuteConfigsRequest = ListMuteConfigsRequest.newBuilder()
              .setParent(String.format("projects/%s/locations/%s", projectId, location))
              .build();
    
          // List all mute configs present in the resource.
          for (MuteConfig muteConfig : client.listMuteConfigs(listMuteConfigsRequest).iterateAll()) {
            System.out.println(muteConfig.getName());
          }
        }
      }
    }

    Python

    def list_mute_rules(parent: str, location_id: str) -> Dict:
        """
        Listing mute configs at organization level will return all the configs
        at the org, folder and project levels.
        Similarly, listing configs at folder level will list all the configs
        at the folder and project levels.
        Args:
            parent: Use any one of the following resource paths to list mute configurations:
                    - organizations/{organization_id}
                    - folders/{folder_id}
                    - projects/{project_id}
            location_id: Gcp location id; example: 'global'
        Returns:
             Dict: returns the mute rule details
        """
        from google.cloud import securitycenter_v2
    
        client = securitycenter_v2.SecurityCenterClient()
    
        request = securitycenter_v2.ListMuteConfigsRequest()
        request.parent = parent + "/locations/" + location_id
        response = client.list_mute_configs(request)
        # List all Mute Configs present in the resource.
        for mute_config in response:
            print(mute_config.name)
        return response
    
    

    REST

    ב-Security Command Center API, משתמשים בשיטה muteConfigs.list כדי להציג את רשימת כללי ההשתקה:

    GET https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PARENT: משאב האב של כלל להשתקת ממצאים (organizations,‏ folders או projects)
    • PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט
    • LOCATION: המיקום של Security Command Center שבו רוצים להציג את כללי ההשתקה. אם מופעלת שמירת נתונים באזור מסוים, צריך להשתמש בערך eu,‏ sa או us. אחרת, צריך להשתמש בערך global.

    התשובה כוללת את השמות, התיאורים ומזהי ההגדרות של השתקת הכללים.

איך רואים את ההגדרות של כלל להשתקת ממצאים

אפשר לראות את ההגדרה של כלל להשתקת ממצאים באמצעות Google Cloud המסוף, ה-CLI של gcloud או Security Command Center API.

לדוגמאות קוד לאחזור הגדרה של כלל להשתקת ממצאים, ראו הצגת כלל להשתקה.

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

המסוף

  1. במסוף Google Cloud , עוברים לכרטיסייה Mute rules בדף Settings של Security Command Center.

    מעבר לכללי השתקה

  2. אם צריך, בוחרים את Google Cloud הפרויקט או הארגון.

  3. בקטע כללי השתקה מוצגת רשימה של כללי השתקה.

  4. לוחצים על שם הכלל שרוצים להציג.

    ייפתח דף עם ההגדרה של כלל ההשתקה.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. כדי להציג את ההגדרה של כלל להשתקת ממצאים, מריצים את הפקודה gcloud scc muteconfigs get:

    gcloud scc muteconfigs get MUTE_CONFIG_ID \
      --PARENT=PARENT_ID --location=LOCATION

    מחליפים את מה שכתוב בשדות הבאים:

    • MUTE_CONFIG_ID: המזהה של כלל להשתקת ממצאים
    • PARENT: משאב האב של כלל להשתקת ממצאים (organization,‏ folder או project)
    • PARENT_ID: המזהה של הארגון, התיקייה או הפרויקט
    • LOCATION: the Security Command Center location in which to view the mute rule's configuration; if data residency is enabled, use eu, sa, or us; otherwise, use the value global
  3. Go

    import (
    	"context"
    	"fmt"
    	"io"
    
    	securitycenter "cloud.google.com/go/securitycenter/apiv2"
    	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
    )
    
    // getMuteRule retrieves a mute configuration given its resource name.
    func getMuteRule(w io.Writer, parent string, muteConfigId string) error {
    	// Use any one of the following resource paths to get mute configuration:
    	//         - organizations/{organization_id}
    	//         - folders/{folder_id}
    	//         - projects/{project_id}
    	// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
    	//
    	// Name of the mute config to retrieve.
    	// muteConfigId := "mute-config-id"
    	ctx := context.Background()
    	client, err := securitycenter.NewClient(ctx)
    	if err != nil {
    		return fmt.Errorf("securitycenter.NewClient: %w", err)
    	}
    	defer client.Close()
    
    	req := &securitycenterpb.GetMuteConfigRequest{
    		Name: fmt.Sprintf("%s/muteConfigs/%s", parent, muteConfigId),
    	}
    
    	muteconfig, err := client.GetMuteConfig(ctx, req)
    	if err != nil {
    		return fmt.Errorf("Failed to retrieve Muteconfig: %w", err)
    	}
    	fmt.Fprintf(w, "Muteconfig Name: %s ", muteconfig.Name)
    	return nil
    }
    

    Java

    
    import com.google.cloud.securitycenter.v2.MuteConfig;
    import com.google.cloud.securitycenter.v2.MuteConfigName;
    import com.google.cloud.securitycenter.v2.SecurityCenterClient;
    import java.io.IOException;
    
    public class GetMuteRule {
    
      public static void main(String[] args) throws IOException {
        // TODO(Developer): Replace the following variables
        // projectId: Google Cloud Project id.
        String projectId = "google-cloud-project-id";
    
        // Specify the location of the mute config. If the mute config was
        // created with v1 API, it can be accessed with "global".
        String location = "global";
    
        // muteConfigId: Name of the mute config to retrieve.
        String muteConfigId = "mute-config-id";
    
        getMuteRule(projectId, location, muteConfigId);
      }
    
      // Retrieves a mute configuration given its resource name.
      public static MuteConfig getMuteRule(String projectId, String location, String muteConfigId)
          throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests.
        try (SecurityCenterClient client = SecurityCenterClient.create()) {
          // Use appropriate `MuteConfigName` methods depending on the parent type.
          //  * organization -> MuteConfigName.ofOrganizationLocationMuteConfigName()
          //  * folder -> MuteConfigName.ofFolderLocationMuteConfigName()
    
          MuteConfigName muteConfigName = MuteConfigName.ofProjectLocationMuteConfigName(projectId,
              location, muteConfigId);
          return client.getMuteConfig(muteConfigName);
        }
      }
    }

    Python

    def get_mute_rule(parent_path: str, location_id: str, mute_config_id: str) -> Dict:
        """
        Retrieves a mute configuration given its resource name.
        Args:
            parent_path: use any one of the following options:
                         - organizations/{organization_id}
                         - folders/{folder_id}
                         - projects/{project_id}
            location_id: Gcp location id; example: 'global'
            mute_config_id: Set a unique id; max of 63 chars.
        Returns:
             Dict: returns the mute rule details
        """
        from google.cloud import securitycenter_v2
    
        client = securitycenter_v2.SecurityCenterClient()
    
        request = securitycenter_v2.GetMuteConfigRequest()
        request.name = (
            parent_path + "/locations/" + location_id + "/muteConfigs/" + mute_config_id
        )
    
        mute_config = client.get_mute_config(request)
        print(f"Retrieved the mute rule: {mute_config.name}")
        return mute_config
    
    

    REST

    ב-Security Command Center API, משתמשים בשיטה muteConfigs.get כדי להחזיר את ההגדרה של כלל להשתקת ממצאים:

    GET https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs/CONFIG_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PARENT: משאב האב של כלל להשתקת ממצאים (organizations,‏ folders או projects)
    • PARENT_ID: המזהה של הארגון, התיקייה או הפרויקט
    • LOCATION: the Security Command Center location in which to view the mute rule's configuration; if data residency is enabled, use eu, sa, or us; otherwise, use the value global
    • CONFIG_ID: המזהה המספרי של כלל ההשתקה

עדכון כללי ההשתקה

אפשר לעדכן את התיאור או את מסנן הממצאים של כלל להשתקת ממצאים באמצעות Google Cloud המסוף, ה-CLI של gcloud או Security Command Center API.

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

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

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

כדי לעדכן כלל להשתקה, לוחצים על הכרטיסייה של הפעולה שרוצים לבצע:

המסוף

  1. במסוף Google Cloud , עוברים לכרטיסייה Mute rules בדף Settings של Security Command Center.

    מעבר לכללי השתקה

  2. בוחרים את Google Cloud הפרויקט או הארגון שמהווים את משאב האב של כלל ההשתקה שרוצים לשנות.

  3. לוחצים על השם של כלל ההשתקה שרוצים לשנות.

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

  4. מבצעים שינויים בכלל להשתקת ממצאים.

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

  6. לוחצים על Save.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. כדי לעדכן את כללי ההשתקה, מריצים את הפקודה gcloud scc muteconfigs update:

    gcloud scc muteconfigs update MUTE_CONFIG_ID \
        --PARENT=PARENT_ID \
        --location=LOCATION \
        --description=RULE_DESCRIPTION \
        --filter=FILTER \
        --type=MUTE_TYPE \
        --expiry-time=TIMESTAMP
    

    מחליפים את מה שכתוב בשדות הבאים:

    • MUTE_CONFIG_ID: המזהה של כלל להשתקת ממצאים.
    • PARENT: משאב האב של כלל להשתקת ממצאים (organization,‏ folder או project).
    • PARENT_ID: המזהה של הארגון, התיקייה או הפרויקט.
    • LOCATION: המיקום של Security Command Center שבו רוצים לעדכן את כלל להשתקת ממצאים. אם מופעלת שמירת נתונים במיקום גיאוגרפי מסוים, צריך להשתמש בערך eu,‏ sa או us. אחרת, צריך להשתמש בערך global.
    • RULE_DESCRIPTION: תיאור של כלל ההשתקה (מקסימום 1,024 תווים).
    • FILTER: הביטוי שאתם מגדירים כדי לסנן את הממצאים.

      לדוגמה, כדי להשתיק ממצאים מסוג OPEN_FIREWALL, המסנן יכול להיות FILTER="category=\"OPEN_FIREWALL\"".

    • MUTE_TYPE: סוג כלל ההשתקה שרוצים לעדכן. סוגי הכללים להשתקת ממצאים שניתן להשתמש בהם הם DYNAMIC ו-STATIC. אחרי שיוצרים כלל להשתקת ממצאים, אי אפשר לשנות את הסוג שלו.

    • TIMESTAMP: רלוונטי רק אם מעדכנים כלל להשתקת ממצאים דינמי. מחרוזת של תאריך ושעה שמציינת מתי פג התוקף של כלל להשתקת ממצאים דינמי. הערך חייב להיות לפחות יום אחד בעתיד, אחרת הבקשה תידחה. מידע על פורמטים של שעות זמין במאמר gcloud topic datetimes. כשכלל השתקה דינמי פג תוקף, הוא מוסר מכל הממצאים שתואמים לו. אם רוצים שכלל להשתקת ממצאים דינמי יפעל ללא הגבלת זמן על ממצאים תואמים, צריך להשמיט את השדה הזה.

  3. Go

    
    import (
    	"context"
    	"fmt"
    	"io"
    
    	securitycenter "cloud.google.com/go/securitycenter/apiv2"
    	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
    	"google.golang.org/protobuf/types/known/fieldmaskpb"
    )
    
    // updateMuteRule Updates an existing mute configuration.
    // The following can be updated in a mute config: description and filter.
    func updateMuteRule(w io.Writer, muteConfigName string) error {
    	// Specify the name of the mute config to delete.
    	// muteConfigName: Use any one of the following formats:
    	//                 - organizations/{organization}/muteConfigs/{config_id}
    	//                 - folders/{folder}/muteConfigs/{config_id}
    	//                 - projects/{project}/muteConfigs/{config_id}
    	// muteConfigName := fmt.Sprintf("projects/%s/muteConfigs/%s", "project-id", "mute-config")
    	ctx := context.Background()
    	client, err := securitycenter.NewClient(ctx)
    	if err != nil {
    		return fmt.Errorf("securitycenter.NewClient: %w", err)
    	}
    	defer client.Close()
    
    	updateMuteConfig := &securitycenterpb.MuteConfig{
    		Name:        muteConfigName,
    		Description: "Updated mute config description",
    	}
    
    	req := &securitycenterpb.UpdateMuteConfigRequest{
    		MuteConfig: updateMuteConfig,
    		// Set the update mask to specify which properties of the mute config should be
    		// updated.
    		// If empty, all mutable fields will be updated.
    		// Make sure that the mask fields match the properties changed in 'updateMuteConfig'.
    		// For more info on constructing update mask path, see the proto or:
    		// https://cloud.google.com/security-command-center/docs/reference/rest/v1/folders.muteConfigs/patch?hl=en#query-parameters
    		UpdateMask: &fieldmaskpb.FieldMask{
    			Paths: []string{
    				"description",
    			},
    		},
    	}
    
    	response, err := client.UpdateMuteConfig(ctx, req)
    	if err != nil {
    		return fmt.Errorf("mute rule update failed! %w", err)
    	}
    	fmt.Fprintf(w, "Mute rule updated %s", response.Name)
    	return nil
    }
    

    Java

    
    import com.google.cloud.securitycenter.v2.MuteConfig;
    import com.google.cloud.securitycenter.v2.SecurityCenterClient;
    import com.google.cloud.securitycenter.v2.UpdateMuteConfigRequest;
    import com.google.protobuf.FieldMask;
    import java.io.IOException;
    
    public class UpdateMuteRule {
    
      public static void main(String[] args) throws IOException {
        // TODO: Replace the variables within {}
        // projectId: Google Cloud Project id.
        String projectId = "google-cloud-project-id";
    
        // Specify the location of the mute config to update. If the mute config was
        // created with v1 API, it can be accessed with "global".
        String location = "global";
    
        // muteConfigId: Name of the mute config to update.
        String muteConfigId = "mute-config-id";
    
        updateMuteRule(projectId, location, muteConfigId);
      }
    
      // Updates an existing mute configuration.
      // The following can be updated in a mute config: description and filter.
      public static void updateMuteRule(String projectId, String location, String muteConfigId)
          throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests.
        try (SecurityCenterClient securityCenterClient = SecurityCenterClient.create()) {
    
          MuteConfig updateMuteConfig =
              MuteConfig.newBuilder()
                  // Construct the name according to the parent type of the mute rule.
                  // Parent can also be one of:
                  //  * "organizations/{org_id}/locations/{location}/muteConfigs/{muteConfig_id}"
                  //  * "folders/{folder_id}/locations/{location}/muteConfigs/{muteConfig_id}"
                  .setName(String.format("projects/%s/locations/%s/muteConfigs/%s", projectId, location,
                      muteConfigId))
                  .setDescription("Updated mute config description")
                  .build();
    
          UpdateMuteConfigRequest updateMuteConfigRequest =
              UpdateMuteConfigRequest.newBuilder()
                  .setMuteConfig(updateMuteConfig)
                  // Make sure that the mask fields match the properties changed in
                  // 'updateMuteConfig' object.
                  // For more info on constructing update mask path, see the proto or:
                  // https://cloud.google.com/security-command-center/docs/reference/rest/v2/folders.muteConfigs/patch?hl=en#query-parameters
                  .setUpdateMask(FieldMask.newBuilder().addPaths("description").build())
                  .build();
    
          MuteConfig response = securityCenterClient.updateMuteConfig(updateMuteConfigRequest);
          System.out.println(response);
        }
      }
    }

    Python

    def update_mute_rule(parent_path: str, location_id: str, mute_config_id: str) -> Dict:
        """
        Updates an existing mute configuration.
        The following can be updated in a mute config: description, and filter/ mute rule.
        Args:
            parent: Use any one of the following resource paths to list mute configurations:
                    - organizations/{organization_id}
                    - folders/{folder_id}
                    - projects/{project_id}
            location_id: Gcp location id; example: 'global'
            mute_config_id: Set a unique id; max of 63 chars.
        Returns:
             Dict: returns the mute rule details
        """
        from google.cloud import securitycenter_v2
        from google.protobuf import field_mask_pb2
    
        client = securitycenter_v2.SecurityCenterClient()
    
        update_mute_config = securitycenter_v2.MuteConfig()
        update_mute_config.name = (
            parent_path + "/locations/" + location_id + "/muteConfigs/" + mute_config_id
        )
        update_mute_config.description = "Updated mute config description"
    
        field_mask = field_mask_pb2.FieldMask(paths=["description"])
    
        request = securitycenter_v2.UpdateMuteConfigRequest()
        request.mute_config = update_mute_config
        # Set the update mask to specify which properties of the Mute Config should be updated.
        # If empty, all mutable fields will be updated.
        # Make sure that the mask fields match the properties changed in 'update_mute_config'.
        # For more info on constructing update mask path, see the proto or:
        # https://cloud.google.com/security-command-center/docs/reference/rest/v1/folders.muteConfigs/patch?hl=en#query-parameters
        request.update_mask = field_mask
    
        mute_config = client.update_mute_config(request)
        print(f"Updated mute rule : {mute_config}")
        return mute_config
    
    

    REST

    ב-Security Command Center API, משתמשים ב-method ‏muteConfigs.patch כדי לעדכן כלל להשתקת ממצאים. גוף הבקשה הוא מופע של MuteConfig:

    PATCH https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs/CONFIG_ID
    
      {
        "description": "RULE_DESCRIPTION",
        "filter": "FILTER",
        "type": "MUTE_TYPE",
        "expiryTime": "TIMESTAMP"
      }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PARENT: משאב האב של כלל להשתקת ממצאים (organizations,‏ folders או projects)
    • PARENT_ID: המזהה של הארגון, התיקייה או הפרויקט
    • LOCATION: המיקום של Security Command Center שבו רוצים לעדכן את כלל להשתקת ממצאים. אם מופעלת שמירת נתונים באזור מסוים, צריך להשתמש בערך eu,‏ sa או us. אחרת, צריך להשתמש בערך global.
    • CONFIG_ID: המזהה המספרי של כלל ההשתקה
    • RULE_DESCRIPTION: תיאור של כלל להשתקת ממצאים (עד 1,024 תווים)
    • FILTER: הביטוי שמגדירים כדי לסנן את הממצאים

      לדוגמה, כדי להשתיק ממצאים של OPEN_FIREWALL, המסנן יכול להיות "category=\"OPEN_FIREWALL\"".

    • MUTE_TYPE: סוג כלל ההשתקה שרוצים לעדכן. סוגי הכללים להשתקת ממצאים שניתן להשתמש בהם הם DYNAMIC ו-STATIC. אחרי שיוצרים כלל להשתקת ממצאים, אי אפשר לשנות את הסוג שלו.

    • TIMESTAMP: רלוונטי רק אם מעדכנים כלל להשתקת ממצאים דינמי. מחרוזת של תאריך ושעה שמציינת מתי פג התוקף של כלל ההשתקה הדינמי. הערך חייב להיות תאריך עתידי, אחרת הבקשה תידחה. מידע על פורמטים של שעות זמין במאמר gcloud topic datetimes. כשכלל להשתקת ממצאים דינמי פג תוקף, הוא מוסר מכל הממצאים התואמים. אם רוצים שכלל להשתקת ממצאים דינמי יפעל ללא הגבלת זמן על ממצאים תואמים, לא צריך לציין ערך בשדה הזה.

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

מחיקת כללי השתקה

אפשר למחוק כלל להשתקת ממצאים באמצעות Google Cloud המסוף, ה-CLI של gcloud או Security Command Center API.

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

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

קוד לדוגמה למחיקת כלל להשתקת משתמשים זמין במאמר בנושא מחיקת כלל להשתקת משתמשים.

כדי למחוק כלל השתקה, לוחצים על הכרטיסייה של ההליך שרוצים להשתמש בו:

המסוף

  1. במסוף Google Cloud , עוברים לכרטיסייה Mute rules בדף Settings של Security Command Center.

    מעבר לכללי השתקה

  2. אם צריך, בוחרים את Google Cloud הפרויקט או הארגון.

  3. לוחצים על השם של כלל ההשתקה שרוצים למחוק.

  4. לוחצים על מחיקה.

  5. קוראים את ההודעה בתיבת הדו-שיח, ואם היא מקובלת עליכם, לוחצים על מחיקה.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. כדי למחוק כללי השתקה, מריצים את הפקודה gcloud scc muteconfigs delete:

    gcloud scc muteconfigs delete MUTE_CONFIG_ID \
      --PARENT=PARENT_ID --location=LOCATION

    מחליפים את מה שכתוב בשדות הבאים:

    • MUTE_CONFIG_ID: המזהה של הגדרת ההשתקה
    • PARENT: משאב האב של כלל להשתקת ממצאים (organization,‏ folder או project)
    • PARENT_ID: המזהה של הארגון, התיקייה או הפרויקט
    • LOCATION: the Security Command Center location in which to delete the כלל להשתקת ממצאים; if data residency is enabled, use eu, sa, or us; otherwise, use the value global
  3. מאשרים את הבקשה למחיקת כלל להשתקת ממצאים.

  4. Go

    
    import (
    	"context"
    	"fmt"
    	"io"
    
    	securitycenter "cloud.google.com/go/securitycenter/apiv2"
    	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
    )
    
    // deleteMuteRule deletes a mute configuration given its resource name.
    // Note: Previously muted findings are not affected when a mute config is deleted.
    func deleteMuteRule(w io.Writer, parent string, muteConfigId string) error {
    	// parent: Use any one of the following options:
    	//             - organizations/{organization_id}
    	//             - folders/{folder_id}
    	//             - projects/{project_id}
    	// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
    	//
    	// muteConfigId: Specify the name of the mute config to delete.
    	// muteConfigId := "mute-config-id"
    	ctx := context.Background()
    	client, err := securitycenter.NewClient(ctx)
    	if err != nil {
    		return fmt.Errorf("securitycenter.NewClient: %w", err)
    	}
    	defer client.Close()
    
    	req := &securitycenterpb.DeleteMuteConfigRequest{
    		Name: fmt.Sprintf("%s/muteConfigs/%s", parent, muteConfigId),
    	}
    
    	if err := client.DeleteMuteConfig(ctx, req); err != nil {
    		return fmt.Errorf("failed to delete Muteconfig: %w", err)
    	}
    	fmt.Fprintf(w, "Mute rule deleted successfully: %s", muteConfigId)
    	return nil
    }
    

    Java

    
    import com.google.cloud.securitycenter.v2.MuteConfigName;
    import com.google.cloud.securitycenter.v2.SecurityCenterClient;
    import java.io.IOException;
    
    public class DeleteMuteRule {
    
      public static void main(String[] args) throws IOException {
        // TODO(Developer): Replace the following variables
        // projectId: Google Cloud Project id.
        String projectId = "google-cloud-project-id";
    
        // Specify the location of the mute config. If the mute config was
        // created with v1 API, it can be accessed with "global".
        String location = "global";
    
        // muteConfigId: Specify the name of the mute config to delete.
        String muteConfigId = "mute-config-id";
    
        deleteMuteRule(projectId, location, muteConfigId);
      }
    
      // Deletes a mute configuration given its resource name.
      // Note: Previously muted findings are not affected when a mute config is deleted.
      public static void deleteMuteRule(String projectId, String location, String muteConfigId)
          throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests.
        try (SecurityCenterClient client = SecurityCenterClient.create()) {
          // Use appropriate `MuteConfigName` methods depending on the parent type.
          // folder -> MuteConfigName.ofFolderLocationMuteConfigName()
          // organization -> MuteConfigName.ofOrganizationLocationMuteConfigName()
          client.deleteMuteConfig(
              MuteConfigName.ofProjectLocationMuteConfigName(projectId, location, muteConfigId));
    
          System.out.println("Mute rule deleted successfully: " + muteConfigId);
        }
      }
    }

    Python

    def delete_mute_rule(parent_path: str, location_id: str, mute_config_id: str) -> None:
        """
        Deletes a mute configuration given its resource name.
        Note: Previously muted findings are not affected when a mute config is deleted.
        Args:
             parent_path: use any one of the following options:
                         - organizations/{organization_id}
                         - folders/{folder_id}
                         - projects/{project_id}
            location_id: Gcp location id; example: 'global'
            mute_config_id: Set a unique id; max of 63 chars.
        Returns:
             None: returns none mute rule is deleted
        """
        from google.cloud import securitycenter_v2
    
        client = securitycenter_v2.SecurityCenterClient()
    
        request = securitycenter_v2.DeleteMuteConfigRequest()
        request.name = (
            parent_path + "/locations/" + location_id + "/muteConfigs/" + mute_config_id
        )
    
        client.delete_mute_config(request)
        print(f"Mute rule deleted successfully: {mute_config_id}")
    
    

    REST

    ב-Security Command Center API, משתמשים ב-method ‏muteConfigs.delete כדי למחוק כלל להשתקת ממצאים:

    DELETE https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs/CONFIG_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PARENT: משאב האב של כלל להשתקת ממצאים (organizations,‏ folders או projects)
    • PARENT_ID: המזהה של הארגון, התיקייה או הפרויקט
    • LOCATION: the Security Command Center location in which to delete the כלל להשתקת ממצאים; if data residency is enabled, use eu, sa, or us; otherwise, use the value global
    • CONFIG_ID: המזהה המספרי של כלל ההשתקה

השתקת ממצא ספציפי

אפשר להשתיק ממצא ספציפי באופן סטטי באמצעות מסוףGoogle Cloud ,‏ ה-CLI של gcloud או Security Command Center API.

השתקת ממצא באופן סטטי לא משפיעה על הסטטוס שלו (פעיל או לא פעיל). אם משתיקים ממצא פעיל, ערך המאפיין state נשאר ללא שינוי: state="ACTIVE". הממצא מוסתר, אבל הוא נשאר פעיל עד שהפגיעות, הטעות בהגדרה או האיום הבסיסיים נפתרים. בנוסף, השתקה סטטית של ממצא מבטלת את כל כללי ההשתקה הדינמיים שחלים על הממצא.

השתקת שילוב רעיל סוגרת את המקרה המתאים של השילוב הרעיל.

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

לקוד לדוגמה להשתקת ממצא, ראו השתקת ממצא.

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

המסוף

  1. נכנסים לדף Findings ב-Security Command Center במסוף Google Cloud .

    כניסה לדף Findings

  2. אם צריך, בוחרים את Google Cloud הפרויקט או הארגון.
  3. אם הממצא שרוצים להשתיק לא מופיע בחלונית Findings query results, בוחרים את הקטגוריה של הממצא בקטע Category בחלונית Quick filters.
  4. מסמנים את התיבה לצד הממצא שרוצים להשתיק. אפשר לבחור ממצא אחד או יותר.
  5. בסרגל הפעולות תוצאות השאילתה של הממצאים, לוחצים על אפשרויות השתקה ואז בוחרים באפשרות החלת ביטול השתקה.

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

  6. בחלונית Finding query results בדף Findings, בעמודה Category, לוחצים על השם של ממצא ספציפי. חלונית הפרטים של הממצא נפתחת.

  7. לוחצים על צריך לפעול בהתאם.

  8. בתפריט פעולה, בוחרים באפשרות החלת ביטול השתקה.

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

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. כדי להגדיר את מצב ההשתקה של ממצא לערך MUTED, משתמשים בפקודה set-mute ב-CLI של gcloud:

    gcloud scc findings set-mute FINDING_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --source=SOURCE_ID \
      --mute=MUTED

    מחליפים את מה שכתוב בשדות הבאים:

    • FINDING_ID: המזהה של הממצא שרוצים להשתיק

      כדי לאחזר מזהי ממצאים, משתמשים ב-Security Command Center API כדי לרשום ממצאים. מזהה הממצא הוא החלק האחרון של מאפיין canonicalName, לדוגמה, projects/123456789012/sources/1234567890123456789/findings`/5ee30aa342e799e4e1700826de053aa9.

    • PARENT: משאב האב (project,‏ folder או organization), תלוי אותיות רישיות

    • PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט

    • LOCATION: the Security Command Center location in which to mute the finding; if data residency is enabled, use eu, sa, or us; otherwise, use the value global

    • SOURCE_ID: מזהה המקור

      הוראות לאחזור מזהה מקור מפורטות במאמר איך מאחזרים את מזהה המקור.

  3. Go

    import (
    	"context"
    	"fmt"
    	"io"
    
    	securitycenter "cloud.google.com/go/securitycenter/apiv2"
    	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
    )
    
    // setMute mutes an individual finding.
    // If a finding is already muted, muting it again has no effect.
    // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
    func setMute(w io.Writer, findingPath string) error {
    	// findingPath: The relative resource name of the finding. See:
    	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
    	// Use any one of the following formats:
    	//  - organizations/{organization_id}/sources/{source_id}/finding/{finding_id}
    	//  - folders/{folder_id}/sources/{source_id}/finding/{finding_id}
    	//  - projects/{project_id}/sources/{source_id}/finding/{finding_id}
    	// findingPath := fmt.Sprintf("projects/%s/sources/%s/finding/%s", "your-google-cloud-project-id", "source", "finding-id")
    	ctx := context.Background()
    	client, err := securitycenter.NewClient(ctx)
    	if err != nil {
    		return fmt.Errorf("securitycenter.NewClient: %w", err)
    	}
    	defer client.Close()
    
    	req := &securitycenterpb.SetMuteRequest{
    		Name: findingPath,
    		Mute: securitycenterpb.Finding_MUTED}
    
    	finding, err := client.SetMute(ctx, req)
    	if err != nil {
    		return fmt.Errorf("failed to set the specified mute value: %w", err)
    	}
    	fmt.Fprintf(w, "Mute value for the finding: %s is %s", finding.Name, finding.Mute)
    	return nil
    }
    

    Java

    
    import com.google.cloud.securitycenter.v2.Finding;
    import com.google.cloud.securitycenter.v2.Finding.Mute;
    import com.google.cloud.securitycenter.v2.SecurityCenterClient;
    import com.google.cloud.securitycenter.v2.SetMuteRequest;
    import java.io.IOException;
    
    public class SetMuteFinding {
    
      public static void main(String[] args) throws IOException {
        // TODO: Replace the variables within {}
        // findingPath: The relative resource name of the finding. See:
        // https://cloud.google.com/apis/design/resource_names#relative_resource_name
        // Use any one of the following formats:
        //  - organizations/{org_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
        //  - folders/{folder_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
        //  - projects/{project_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
        //
        String findingPath = "{path-to-the-finding}";
    
        setMute(findingPath);
      }
    
      // Mute an individual finding.
      // If a finding is already muted, muting it again has no effect.
      // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
      public static Finding setMute(String findingPath) throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests.
        try (SecurityCenterClient client = SecurityCenterClient.create()) {
    
          SetMuteRequest setMuteRequest =
              SetMuteRequest.newBuilder()
                  // Relative path for the finding.
                  .setName(findingPath)
                  .setMute(Mute.MUTED)
                  .build();
    
          Finding finding = client.setMute(setMuteRequest);
          System.out.println(
              "Mute value for the finding " + finding.getName() + " is: " + finding.getMute());
          return finding;
        }
      }
    }

    Python

    def set_mute_finding(finding_path: str) -> None:
        """
          Mute an individual finding.
          If a finding is already muted, muting it again has no effect.
          Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
        Args:
            finding_path: The relative resource name of the finding. See:
            https://cloud.google.com/apis/design/resource_names#relative_resource_name
            Use any one of the following formats:
            - organizations/{organization_id}/sources/{source_id}/finding/{finding_id},
            - folders/{folder_id}/sources/{source_id}/finding/{finding_id},
            - projects/{project_id}/sources/{source_id}/finding/{finding_id}.
        """
        from google.cloud import securitycenter_v2
    
        client = securitycenter_v2.SecurityCenterClient()
    
        request = securitycenter_v2.SetMuteRequest()
        request.name = finding_path
        request.mute = securitycenter_v2.Finding.Mute.MUTED
    
        finding = client.set_mute(request)
        print(f"Mute value for the finding: {finding.mute.name}")
        return finding
    
    

    REST

    ב-Security Command Center API, משתמשים ב-method‏ findings.setMute כדי להשתיק ממצא. גוף הבקשה הוא enum שמציין את מצב ההשתקה שיתקבל:

    POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_ID:setMute
    
    {
      "mute": "MUTED"
    }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PARENT: משאב האב (organizations,‏ folders או projects).
    • PARENT_ID: המזהה של הארגון, התיקייה או הפרויקט ברמת ההורה.
    • LOCATION: the Security Command Center location in which to mute the finding; if data residency is enabled, use eu, sa, or us; otherwise, use the value global
    • SOURCE_ID: המזהה המספרי של המקור.

      הוראות לאחזור מזהה מקור מפורטות במאמר איך מאחזרים את מזהה המקור.

    • FINDING_ID: המזהה של הממצא שרוצים להשתיק.

      כדי לאחזר מזהי ממצאים, משתמשים ב-Security Command Center API כדי לרשום ממצאים. מזהה הממצא הוא החלק האחרון של מאפיין canonicalName, לדוגמה, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

אחרי שמשתיקים ממצא, המאפיין mute שלו מוגדר לערך MUTED.

ביטול השתקה של ממצאים ספציפיים

אפשר לבטל השתקה של ממצא בודד באופן סטטי באמצעות מסוף Google Cloud , ה-CLI של gcloud או Security Command Center API.

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

ממצאים שההשתקה שלהם בוטלה מושתקים שוב רק אם משתיקים אותם ידנית. כללי השתקה שנוצרו באמצעות ה-CLI של gcloud או Security Command Center API לא ישפיעו על ממצאים שהמשתמשים ביטלו את ההשתקה שלהם.

לקוד לדוגמה לביטול ההשתקה של ממצא, ראה ביטול ההשתקה של ממצא.

המסוף

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

  1. נכנסים לדף Findings ב-Security Command Center במסוף Google Cloud .

    כניסה לדף Findings

  2. אם צריך, בוחרים את Google Cloud הפרויקט או הארגון. הדף ממצאים נפתח עם השאילתה שמוגדרת כברירת מחדל שמוצגת בקטע תצוגה מקדימה של השאילתה. השאילתה שמוגדרת כברירת מחדל מסננת ממצאים שהושתקו, ולכן צריך לערוך את השאילתה כדי שהממצאים שהושתקו יופיעו בחלונית Findings query results.
  3. משמאל לקטע תצוגה מקדימה של השאילתה, לוחצים על עריכת השאילתה כדי לפתוח את עורך השאילתות.
  4. בשדה עורך השאילתות, מחליפים את הצהרת ההשתקה הקיימת בהצהרה הבאה:
    mute="MUTED"
  5. לוחצים על אישור. הממצאים בחלונית Findings query results מתעדכנים וכוללים רק ממצאים שהושתקו.
  6. במקרה הצורך, מסננים את שאר הממצאים שהושתקו. לדוגמה, בחלונית Quick filters (מסננים מהירים) בקטע Category (קטגוריה), בוחרים את השם של הממצא שרוצים לבטל את ההשתקה שלו כדי לסנן את כל הקטגוריות האחרות של הממצאים.
  7. מסמנים את התיבה לצד הממצא שרוצים לבטל את ההשתקה שלו. אפשר לבחור ממצא אחד או יותר.
  8. בסרגל הפעולות Findings query results (תוצאות של שאילתת ממצאים), לוחצים על Mute Options (אפשרויות השתקה) ואז על Apply unmute override (החלת ביטול השתקה). המאפיין mute של הממצאים שנבחרו מוגדר לערך UNMUTED, והממצא מוסר מהחלונית תוצאות השאילתה של הממצאים. אפשר גם לבטל את ההשתקה של ממצא מחלונית הפרטים שלו:
  9. בחלונית Finding query results בדף Findings, בעמודה Category, לוחצים על השם של ממצא ספציפי. חלונית הפרטים של הממצא נפתחת.
  10. לוחצים על צריך לפעול בהתאם.
  11. בתפריט פעולה, בוחרים באפשרות החלת ביטול השתקה.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. כדי להגדיר את מצב ההשתקה של ממצא לערך UNMUTED, משתמשים בפקודה set-mute ב-CLI של gcloud:

    gcloud scc findings set-mute FINDING_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --source=SOURCE_ID \
      --mute=UNMUTED

    מחליפים את מה שכתוב בשדות הבאים:

    • FINDING_ID: המזהה של הממצא שרוצים להשתיק

      כדי לאחזר מזהי ממצאים, משתמשים ב-Security Command Center API כדי לרשום ממצאים. מזהה הממצא הוא החלק האחרון של מאפיין canonicalName, לדוגמה, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

    • PARENT: משאב האב (project,‏ folder או organization), תלוי אותיות רישיות

    • PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט

    • LOCATION: the Security Command Center location in which to unmute the finding; if data residency is enabled, use eu, sa, or us; otherwise, use the value global

    • SOURCE_ID: מזהה המקור

      הוראות לאחזור מזהה מקור מפורטות במאמר איך מאחזרים את מזהה המקור.

  3. Go

    
    import (
    	"context"
    	"fmt"
    	"io"
    
    	securitycenter "cloud.google.com/go/securitycenter/apiv2"
    	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
    )
    
    // setUnmute unmutes an individual finding.
    // Unmuting a finding that isn't muted has no effect.
    // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
    func setUnmute(w io.Writer, findingPath string) error {
    	// findingPath: The relative resource name of the finding. See:
    	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
    	// Use any one of the following formats:
    	//  - organizations/{organization_id}/sources/{source_id}/finding/{finding_id}
    	//  - folders/{folder_id}/sources/{source_id}/finding/{finding_id}
    	//  - projects/{project_id}/sources/{source_id}/finding/{finding_id}
    	// findingPath := fmt.Sprintf("projects/%s/sources/%s/finding/%s", "your-google-cloud-project-id", "source", "finding-id")
    	ctx := context.Background()
    	client, err := securitycenter.NewClient(ctx)
    	if err != nil {
    		return fmt.Errorf("securitycenter.NewClient: %w", err)
    	}
    	defer client.Close()
    
    	req := &securitycenterpb.SetMuteRequest{
    		Name: findingPath,
    		Mute: securitycenterpb.Finding_UNMUTED}
    
    	finding, err := client.SetMute(ctx, req)
    	if err != nil {
    		return fmt.Errorf("failed to set the specified mute value: %w", err)
    	}
    	fmt.Fprintf(w, "Mute value for the finding: %s is %s", finding.Name, finding.Mute)
    	return nil
    }
    

    Java

    
    import com.google.cloud.securitycenter.v2.Finding;
    import com.google.cloud.securitycenter.v2.Finding.Mute;
    import com.google.cloud.securitycenter.v2.SecurityCenterClient;
    import com.google.cloud.securitycenter.v2.SetMuteRequest;
    import java.io.IOException;
    
    public class SetUnmuteFinding {
    
      public static void main(String[] args) throws IOException {
        // TODO: Replace the variables within {}
        // findingPath: The relative resource name of the finding. See:
        // https://cloud.google.com/apis/design/resource_names#relative_resource_name
        // Use any one of the following formats:
        //  - organizations/{org_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
        //  - folders/{folder_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
        //  - projects/{project_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
        //
        String findingPath = "{path-to-the-finding}";
    
        setUnmute(findingPath);
      }
    
      // Unmute an individual finding.
      // Unmuting a finding that isn't muted has no effect.
      // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
      public static Finding setUnmute(String findingPath) throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests.
        try (SecurityCenterClient client = SecurityCenterClient.create()) {
    
          SetMuteRequest setMuteRequest =
              SetMuteRequest.newBuilder()
                  .setName(findingPath)
                  .setMute(Mute.UNMUTED)
                  .build();
    
          Finding finding = client.setMute(setMuteRequest);
          System.out.println(
              "Mute value for the finding " + finding.getName() + " is: " + finding.getMute());
          return finding;
        }
      }
    }

    Python

    def set_unmute_finding(finding_path: str) -> None:
        """
          Unmute an individual finding.
          Unmuting a finding that isn't muted has no effect.
          Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
        Args:
            finding_path: The relative resource name of the finding. See:
            https://cloud.google.com/apis/design/resource_names#relative_resource_name
            Use any one of the following formats:
            - organizations/{organization_id}/sources/{source_id}/finding/{finding_id},
            - folders/{folder_id}/sources/{source_id}/finding/{finding_id},
            - projects/{project_id}/sources/{source_id}/finding/{finding_id}.
        """
        from google.cloud import securitycenter_v2
    
        client = securitycenter_v2.SecurityCenterClient()
    
        request = securitycenter_v2.SetMuteRequest()
        request.name = finding_path
        request.mute = securitycenter_v2.Finding.Mute.UNMUTED
    
        finding = client.set_mute(request)
        print(f"Mute value for the finding: {finding.mute.name}")
        return finding
    
    

    REST

    ב-Security Command Center API, משתמשים ב-method‏ findings.setMute כדי לבטל את ההשתקה של ממצא. גוף הבקשה הוא enum שמציין את מצב ההשתקה שיתקבל:

    POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_ID:setMute
    
    {
      "mute": "UNMUTED"
    }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PARENT: משאב האב (organizations,‏ folders או projects)
    • PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט
    • LOCATION: the Security Command Center location in which to unmute the finding; if data residency is enabled, use eu, sa, or us; otherwise, use the value global
    • SOURCE_ID: המזהה המספרי של המקור

      הוראות לאחזור מזהה מקור מפורטות במאמר איך מאחזרים את מזהה המקור.

    • FINDING_ID: המזהה של הממצא שרוצים להשתיק.

      כדי לאחזר מזהי ממצאים, משתמשים ב-Security Command Center API כדי לרשום ממצאים. מזהה הממצא הוא החלק האחרון של מאפיין canonicalName, לדוגמה, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

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

הסרת ביטול השתקה מממצאים ספציפיים

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

כדי להסיר את ההגדרה של השתקת ממצא ספציפי, אפשר להשתמש במסוף Google Cloud , ב-CLI של gcloud או ב-API של Security Command Center.

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

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

כדי להסיר את ההשתקה של ממצא ספציפי:

המסוף

  1. נכנסים לדף Findings ב-Security Command Center במסוף Google Cloud .

    כניסה לדף Findings

  2. בוחרים את הפרויקט או הארגון. Google Cloud
  3. משמאל לקטע תצוגה מקדימה של השאילתה, לוחצים על עריכת השאילתה כדי לפתוח את עורך השאילתות.
  4. בשדה עורך השאילתות, מחליפים את הצהרת ההשתקה הקיימת בהצהרה הבאה:
    mute="MUTED" OR mute="UNMUTED"
  5. לוחצים על אישור. הממצאים בחלונית Findings query results מתעדכנים וכוללים ממצאים שהושתקו באופן סטטי וממצאים שההשתקה שלהם בוטלה.
  6. אם צריך, מסננים את הממצאים האחרים. לדוגמה, בחלונית Quick filters, בקטע Category, בוחרים את שם הממצא שרוצים לאפס כדי לסנן את כל שאר הקטגוריות של הממצאים.
  7. מסמנים את התיבה לצד הממצא שרוצים לאפס. אפשר לבחור ממצא אחד או יותר.
  8. בסרגל הפעולות Findings query results (תוצאות של שאילתת ממצאים), לוחצים על Mute Options (אפשרויות השתקה) ואז על Remove mute overrides (הסרת ביטולי השתקה). המאפיין mute של הממצאים שנבחרו מוגדר לערך UNDEFINED, והממצא מוסר מהחלונית תוצאות השאילתה של הממצאים. אפשר גם לבטל את ההשתקה של ממצא מחלונית הפרטים שלו:
  9. בחלונית Finding query results בדף Findings, בעמודה Category, לוחצים על השם של ממצא ספציפי. חלונית הפרטים של הממצא נפתחת.
  10. לוחצים על צריך לפעול בהתאם.
  11. בתפריט פעולה, בוחרים באפשרות הסרת שינויים בהגדרות ההשתקה.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. כדי להגדיר את מצב ההשתקה של ממצא לערך UNDEFINED, משתמשים בפקודה set-mute ב-CLI של gcloud:

    gcloud scc findings set-mute FINDING_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --source=SOURCE_ID \
      --mute=UNDEFINED

    מחליפים את מה שכתוב בשדות הבאים:

    • FINDING_ID: המזהה של הממצא שרוצים לאפס

      כדי לאחזר מזהי ממצאים, משתמשים ב-Security Command Center API כדי לרשום ממצאים. מזהה הממצא הוא החלק האחרון של מאפיין canonicalName, לדוגמה, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

    • PARENT: משאב האב (project,‏ folder או organization), תלוי אותיות רישיות

    • PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט

    • LOCATION: המיקום של Security Command Center שבו רוצים להסיר את הביטול של ההשתקה של ממצא. אם מופעלת שמירת נתונים באזור מסוים, צריך להשתמש בערך eu,‏ sa או us. אחרת, צריך להשתמש בערך global

    • SOURCE_ID: מזהה המקור

      הוראות לאחזור מזהה מקור מפורטות במאמר קבלת מזהה המקור.

  3. REST

    ב-Security Command Center API, משתמשים ב-method ‏findings.setMute כדי לאפס את מצב ההשתקה של ממצא. גוף הבקשה הוא enum שמציין את מצב ההשתקה שיתקבל:

    POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_ID:setMute
    
    {
      "mute": "UNDEFINED"
    }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PARENT: משאב האב (organizations,‏ folders או projects)
    • PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט
    • LOCATION: המיקום של Security Command Center שבו רוצים להסיר את הביטול של ההשתקה של ממצא. אם מופעלת שמירת נתונים באזור מסוים, צריך להשתמש בערך eu,‏ sa או us. אחרת, צריך להשתמש בערך global
    • SOURCE_ID: המזהה המספרי של המקור

    Java

    
    import com.google.cloud.securitycenter.v2.Finding;
    import com.google.cloud.securitycenter.v2.Finding.Mute;
    import com.google.cloud.securitycenter.v2.SecurityCenterClient;
    import com.google.cloud.securitycenter.v2.SetMuteRequest;
    import java.io.IOException;
    
    public class SetMuteUndefinedFinding {
    
      public static void main(String[] args) throws IOException {
        // TODO: Replace the variables within {}
    
        // findingPath: The relative resource name of the finding. See:
        // https://cloud.google.com/apis/design/resource_names#relative_resource_name
        // Use any one of the following formats:
        // - organizations/{organization_id}/sources/{source_id}/finding/{finding_id}
        // - folders/{folder_id}/sources/{source_id}/finding/{finding_id}
        // - projects/{project_id}/sources/{source_id}/finding/{finding_id}
        String findingPath = "{path-to-the-finding}";
        setMuteUndefined(findingPath);
      }
    
      // Reset mute state of an individual finding.
      // If a finding is already reset, resetting it again has no effect.
      // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE/UNDEFINED.
      public static Finding setMuteUndefined(String findingPath) throws IOException {
        // Initialize client that will be used to send requests. This client only needs
        // to be created once, and can be reused for multiple requests.
        try (SecurityCenterClient client = SecurityCenterClient.create()) {
    
          SetMuteRequest setMuteRequest =
              SetMuteRequest.newBuilder()
                  .setName(findingPath)
                  .setMute(Mute.UNDEFINED)
                  .build();
    
          Finding finding = client.setMute(setMuteRequest);
          System.out.println(
              "Mute value for the finding " + finding.getName() + " is: " + finding.getMute());
          return finding;
        }
      }
    }

השתקה או איפוס של כמה ממצאים קיימים

אפשר לבצע את הפעולות הבאות להשתקת מספר ממצאים קיימים בבת אחת באמצעות הפקודה gcloud scc findings bulk-mute ב-CLI של gcloud או באמצעות ה-method‏ bulkMute של Security Command Center API:

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

  • הסרת ההשתקה של כמה ממצאים קיימים. הסרת הביטול של מצב ההשתקה של ממצא מאפסת את מצב ההשתקה מ-MUTED (השתקה סטטית) או מ-UNMUTED (ביטול השתקה סטטי) ל-UNDEFINED. היכולת הזו יכולה להיות שימושית אם אתם עוברים מכללי השתקה סטטיים לכללי השתקה דינמיים.

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

אם תכונת שמירת הנתונים במדינה מופעלת ב-Security Command Center, פעולות השתקה בכמות גדולה מוגבלות להיקף המיקום של Security Command Center שבו הן מבוצעות.

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

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

המסוף

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

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. כדי להשתיק או לאפס כמה ממצאים בבת אחת, מריצים את הפקודה gcloud scc findings bulk-mute:

    gcloud scc findings bulk-mute \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --filter="FILTER" \
      --mute-state=MUTE_STATE

    מחליפים את מה שכתוב בשדות הבאים:

    • PARENT: ההיקף בהיררכיית המשאבים שאליו חל כלל להשתקת ממצאים, organization,‏ folder או project.
    • PARENT_ID: המזהה המספרי של הארגון, התיקייה או הפרויקט ברמת ההורה, או המזהה האלפאנומרי של הפרויקט ברמת ההורה.
    • LOCATION: המיקום של Security Command Center שבו רוצים להשתיק או לאפס ממצאים בכמות גדולה. אם מופעלת תכונת שמירת נתונים במדינה מסוימת, צריך להשתמש בערכים eu,‏ sa או us. אחרת, צריך להשתמש בערך global.
    • FILTER: הביטוי שאתם מגדירים כדי לסנן את הממצאים.

      לדוגמה, כדי להשתיק את כל הממצאים הקיימים ברמת חומרה נמוכה OPEN_FIREWALL וPUBLIC_IP_ADDRESS בפרויקט internal-test, המסנן יכול להיות "category=\"OPEN_FIREWALL\" OR category=\"PUBLIC_IP_ADDRESS\" AND severity=\"LOW\" AND resource.projectDisplayName=\"internal-test\"".

    • MUTE_STATE: הערך שמציין אם הממצא מושתק באופן סטטי או לא. הערכים התקינים הם MUTED ו-UNDEFINED. ערך ברירת המחדל הוא MUTED. מגדירים את הערך הזה ל-UNDEFINED רק אם מאפסים את מצב ההשתקה של כמה ממצאים קיימים.

  3. REST

    ב-API של Security Command Center, משתמשים בשיטה findings.bulkMute כדי להשתיק או לאפס את מצב ההשתקה של כמה ממצאים קיימים. גוף הבקשה מכיל את הביטוי שמשמש לסינון הממצאים:

    POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/findings:bulkMute
    
    {
      "filter": "FILTER",
      "muteState": "MUTE_STATE"
    }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PARENT: משאב האב (organizations,‏ folders או projects).
    • PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט.
    • LOCATION: המיקום של Security Command Center שבו רוצים להשתיק או לאפס ממצאים בכמות גדולה. אם מופעלת תכונת שמירת נתונים במדינה מסוימת, צריך להשתמש בערכים eu,‏ sa או us. אחרת, צריך להשתמש בערך global.
    • FILTER: הביטוי שאתם מגדירים כדי לסנן את הממצאים.

      לדוגמה, כדי להשתיק את כל הממצאים הקיימים ברמת חומרה נמוכה OPEN_FIREWALL וPUBLIC_IP_ADDRESS בפרויקט internal-test, המסנן יכול להיות "category=\"OPEN_FIREWALL\" OR category=\"PUBLIC_IP_ADDRESS\" AND severity=\"LOW\" AND resource.projectDisplayName=\"internal-test\"".

    • MUTE_STATE: הערך שמציין אם הממצא מושתק או לא. הערכים התקינים הם MUTED או UNDEFINED. ערך ברירת המחדל הוא MUTED. מגדירים את הערך הזה ל-UNDEFINED רק אם מאפסים את מצב ההשתקה של כמה ממצאים קיימים.

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

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

הצגת ממצאים שהושתקו במסוף Google Cloud

כדי לראות את הממצאים שהושתקו במסוף Google Cloud , צריך לערוך את שאילתת הממצאים כדי לבחור ממצאים שכוללים את ערך הנכס mute="MUTED".

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

state="ACTIVE"
AND mute="MUTED"

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

state="ACTIVE"

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

הצגת הממצאים שהושתקו לפי סוג כלל להשתקת ממצאים

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

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

ממצאים של שאילתות שהושתקו על ידי כללי השתקה סטטיים

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

state="ACTIVE" AND
muteInfo.staticMute.applyTime>=TIMESTAMP AND
muteInfo.staticMute.state="MUTED"

מחליפים את TIMESTAMP במחרוזת של תאריך ושעה שמציינת את תחילת התקופה שרוצים לשלוח לגביה שאילתה. מידע על פורמטים של שעות זמין במאמר gcloud topic datetimes.

השתקת ממצאים של שאילתות באמצעות כללי השתקה דינמיים

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

state="ACTIVE" AND
muteUpdateTime>=TIMESTAMP AND
contains(muteInfo.dynamicMuteRecords, muteConfig="PARENT_ID/muteConfigs/CONFIG_ID")

מחליפים את מה שכתוב בשדות הבאים:

  • TIMESTAMP: מחרוזת של תאריך ושעה שמציינת את תחילת התקופה שרוצים לשלוח לגביה שאילתה. מידע על פורמטים של שעות זמין במאמר gcloud topic datetimes.
  • PARENT_ID: המזהה של ארגון האב, התיקייה או הפרויקט, שצוין בפורמט organizations/123, folders/456 או projects/789.
  • CONFIG_ID: השם של כלל להשתקת ממצאים. המזהה צריך להכיל תווים אלפאנומריים ומקפים, והאורך שלו צריך להיות בין תו אחד ל-63 תווים.

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

איתור מאפיינים שקשורים להשתקה

בקטע הזה מפורטים מאפייני הממצא שקשורים למצב ההשתקה שלו, ומוסבר איך פעולות השתקה משפיעות עליהם:

  • mute: מוגדר ל-UNDEFINED כשנוצרות ממצאים וכשיש שינויים בתרחישים הבאים:
    • MUTED: ממצא מושתק באופן ידני או באמצעות כלל להשתקת ממצאים.
    • UNMUTED: משתמש מבטל השתקה של ממצא.
  • muteUpdateTime: השעה שבה השתקה או ביטול השתקה של ממצא.
  • muteInitiator: המזהה של הישות המורשית או של כלל להשתקת ממצאים שהשתיק את הממצא.
  • muteInfo: השתקת מידע על הממצא, כמו סוג כלל להשתקת ממצאים (סטטי או דינמי) וכללים להשתקת ממצאים שהממצא תאם להם.
  • muteInfo.staticMute: מצב השתקה סטטי מבטל את כל כללי ההשתקה הדינמיים שחלים על הממצא הזה.
    • state: מצב השתקה סטטי שאפשר להגדיר על ידי השתקת הממצא ישירות או על ידי כלל להשתקת ממצאים סטטי.
    • applyTime: השעה שבה מצב ההשתקה הסטטי הוחל על הממצא.
  • muteInfo.dynamicMuteRecords: הרשומה של כלל להשתקת ממצאים דינמי שתואם לממצא.
    • muteConfig: שם המשאב היחסי של כלל להשתקת ממצאים, שמיוצג על ידי הגדרת ההשתקה שיצרה את הרשומה. לדוגמה, organizations/123/muteConfigs/examplemuteconfig.
    • matchTime: השעה שבה כלל להשתקת ממצאים דינמי תאם לממצא.

הפסקה של ההתראות והייצוא של ממצאים מושתקים

אם מפעילים התראות על ממצאים, ממצאים חדשים או מעודכנים שהושתקו ומתאימים למסנני ההתראות עדיין מיוצאים ל-Pub/Sub.

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

FILTER="state=\"ACTIVE\" AND -mute=\"MUTED\""

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

מידע נוסף על סינון התראות על ממצאים

דוגמאות נוספות למסננים