בדף הזה מוסבר איך להשתמש בתכונת ההתראות של Security Command Center API, כולל הדוגמאות הבאות:
- יצירת
NotificationConfig - קבלת
NotificationConfig - עדכון של
NotificationConfig - מחיקת
NotificationConfig - רשימה
NotificationConfig - קבלת התראות Pub/Sub
לחלופין, אפשר להגדיר ייצוא רציף ל-Pub/Sub ב-Security Command Center.
לפני שמתחילים
כדי להשתמש בדוגמאות שבדף הזה, צריך להשלים את המדריך בנושא הגדרת התראות על מציאת מכשיר.
כדי להריץ את הדוגמאות הבאות, אתם צריכים תפקיד בממשק לניהול הזהויות והרשאות הגישה (IAM) עם ההרשאות המתאימות:
- יצירה
NotificationConfig: Security Center Notification Configurations Editor (roles/securitycenter.notificationConfigEditor) - קבלת רשימה של
NotificationConfig: Security Center Notification Configurations Viewer (roles/securitycenter.notificationConfigViewer) או Security Center Notification Configurations Editor (roles/securitycenter.notificationConfigEditor) - עדכון ומחיקה
NotificationConfig: עורך ההגדרות (roles/securitycenter.notificationConfigEditor) של הודעה במרכז האבטחה
כדי להקצות תפקידים מתאימים לחשבון ראשי שמקבל גישה ל-notificationConfig, אתם צריכים להיות בעלי אחד מתפקידי ה-IAM הבאים:
- אדמין ארגוני (
roles/resourcemanager.organizationAdmin) - אדמין IAM בתיקייה (
roles/resourcemanager.folderIamAdmin) - אדמין IAM בפרויקט (
roles/resourcemanager.projectIamAdmin)
אפשר להעניק את תפקידי ה-IAM של Security Command Center ברמת הארגון, התיקייה או הפרויקט. היכולת שלכם להציג, לערוך, ליצור או לעדכן ממצאים, נכסים ומקורות אבטחה תלויה ברמת הגישה שניתנה לכם. מידע נוסף על תפקידים ב-Security Command Center זמין במאמר בקרת גישה.
המיקום של נתונים והתראות
אם הגדרתם את מיקום הנתונים ב-Security Command Center, ההגדרות שמגדירות ייצוא רציף ל-Pub/Sub – משאבי notificationConfig – כפופות לבקרה על מיקום הנתונים ומאוחסנות במיקום של Security Command Center.
כדי לייצא ממצאים במיקום של Security Command Center אל Pub/Sub, צריך להגדיר את הייצוא הרציף באותו מיקום של Security Command Center שבו נמצאים הממצאים.
המסננים שמשמשים לייצוא רציף יכולים להכיל נתונים שחלים עליהם אמצעי בקרה על מיקום הנתונים, ולכן חשוב לציין את המיקום הנכון לפני שיוצרים אותם. ב-Security Command Center אין הגבלה על המיקום שבו אפשר ליצור ייצוא.
ייצוא רציף נשמר רק במיקום שבו הוא נוצר, ואי אפשר לראות או לערוך אותו במיקומים אחרים.
אחרי שיוצרים ייצוא רציף, אי אפשר לשנות את המיקום שלו. כדי לשנות את המיקום, צריך למחוק את הייצוא הרציף וליצור אותו מחדש במיקום החדש.
הנחיות לשימוש ב-Security Command Center כשמפעילים את התכונה 'שמירת נתונים באזור מסוים' מופיעות במאמר נקודות קצה אזוריות של Security Command Center.
יצירת NotificationConfig
כדי ליצור NotificationConfig, צריך:
- נושא Pub/Sub קיים שאליו רוצים לשלוח התראות.
- התפקידים שנדרשים ב-IAM לחשבון המשתמש שיוצר את
notificationConfig.
מידע נוסף זמין בשלב הגדרת נושא Pub/Sub במדריך הגדרת התראות על ממצאים.
לפני שיוצרים NotificationConfig, חשוב לדעת שלכל ארגון יכול להיות מספר מוגבל של קובצי NotificationConfig. מידע נוסף זמין במאמר מכסות ומגבלות.
השדה NotificationConfig כולל את השדה filter שמגביל את ההתראות לאירועים שימושיים. בשדה הזה אפשר להזין את כל המסננים שזמינים בשיטה findings.list של Security Command Center API.
כשיוצרים NotificationConfig, מציינים את ההורה של NotificationConfig מתוך היררכיית המשאבים Google Cloud , כלומר ארגון, תיקייה או פרויקט. אם תצטרכו לאחזר, לעדכן או למחוק את NotificationConfig בהמשך, תצטרכו לכלול את המזהה המספרי של ארגון האב, התיקייה או הפרויקט כשמפנים אליו.
במסוף Google Cloud , יכול להיות שלחלק מהמשאבים של NotificationConfig תהיה התווית Legacy, שמציינת שהם נוצרו באמצעות Security Command Center API בגרסה 1. אפשר לנהל את המשאבים האלה NotificationConfig באמצעות מסוף Google Cloud , ה-CLI של gcloud, Security Command Center API בגרסה v1 או ספריות הלקוח של Security Command Center בגרסה v1.
כדי לנהל את המשאבים האלה של NotificationConfig באמצעות ה-CLI של gcloud, אסור לציין מיקום כשמריצים את הפקודה של ה-CLI של gcloud.
כדי ליצור את NotificationConfig באמצעות השפה או הפלטפורמה שתבחרו:
gcloud
gcloud scc notifications create NOTIFICATION_NAME \ --PARENT=PARENT_ID \ --location=LOCATION \ --description="NOTIFICATION_DESCRIPTION" \ --pubsub-topic=PUBSUB_TOPIC \ --filter="FILTER"
מחליפים את מה שכתוב בשדות הבאים:
-
NOTIFICATION_NAME: השם של ההתראה. השם צריך להיות באורך של 1 עד 128 תווים, ולהכיל רק תווים אלפאנומריים, קווים תחתונים או מקפים. -
PARENT: ההיקף בהיררכיית המשאבים שההתראה רלוונטית לגביו,organization,folderאוproject. -
PARENT_ID: המזהה של הארגון, התיקייה או הפרויקט ברמת ההורה, שצוין בפורמטorganizations/123,folders/456אוprojects/789. -
LOCATION: המיקום של Security Command Center שבו רוצים ליצורNotificationConfig. אם מופעלת שמירת נתונים באזור מסוים, צריך להשתמש בערךeu,saאוus. אחרת, צריך להשתמש בערךglobal. -
NOTIFICATION_DESCRIPTION: תיאור של ההתראה, באורך של עד 1,024 תווים. -
PUBSUB_TOPIC: נושא ה-Pub/Sub שיקבל התראות. הפורמט שלו הואprojects/PROJECT_ID/topics/TOPIC. -
FILTER: הביטוי שאתם מגדירים כדי לבחור אילו ממצאים יישלחו ל-Pub/Sub. לדוגמה,state=\"ACTIVE\".
Terraform
כדי ליצור NotificationConfig לארגון:
כדי ליצור NotificationConfig לתיקייה:
יצירת NotificationConfig לפרויקט:
Go
Java
Node.js
Python
ההתראות מתפרסמות עכשיו בנושא Pub/Sub שציינתם.
כדי לפרסם התראות, נוצר עבורכם חשבון שירות בפורמט service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com.
חשבון השירות הזה נוצר כשיוצרים את NotificationConfig הראשון, ומקבל אוטומטית את התפקיד securitycenter.notificationServiceAgent במדיניות IAM עבור PUBSUB_TOPIC כשיוצרים את הגדרת ההתראות. תפקיד חשבון השירות הזה נדרש כדי שההתראות יפעלו.
קבלת NotificationConfig
כדי לקבל NotificationConfig, צריך להיות לכם תפקיד ב-IAM שכולל את ההרשאה securitycenter.notification.get.
gcloud
gcloud scc notifications describe NOTIFICATION_NAME \ --PARENT_TYPE=PARENT_ID \ --location=LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
NOTIFICATION_NAME: השם של הגדרות ההתראה. -
PARENT_TYPEהרמה בהיררכיית המשאבים שבה מצוינת ההגדרה. אפשר להשתמש ב-organization,folderאוproject. -
PARENT_ID: המזהה המספרי של משאב האב. -
LOCATION: המיקום של Security Command Center שבו רוצים לקבל אתNotificationConfig. אם מופעלת שמירת נתונים באזור מסוים, צריך להשתמש ב-eu, ב-saאו ב-us. אחרת, צריך להשתמש בערךglobal.
עדכון של NotificationConfig
כדי לעדכן NotificationConfig, צריך תפקיד ב-IAM שכולל את ההרשאה securitycenter.notification.update.
כשמעדכנים באמצעות מסכת שדות, רק השדות שמציינים מתעדכנים. אם לא משתמשים במסכת שדות, כל השדות שניתנים לשינוי ב-NotificationConfig מוחלפים בערכים החדשים. אפשר להשתמש במסכת שדות כדי לעדכן את הנושא ואת התיאור של Pub/Sub.
כדי להשלים את הדוגמה הזו, אתם צריכים להירשם לנושא החדש, ולחשבון השירות של שירות ההתראות צריכה להיות ההרשאה pubsub.topics.setIamPolicy בנושא.
אחרי שנותנים את ההרשאות הנדרשות, מעדכנים את NotificationConfigהתיאור, נושא Pub/Sub והמסנן בשפה הרצויה:
gcloud
gcloud scc notifications update NOTIFICATION_NAME \ --PARENT_TYPE=PARENT_ID \ --location=LOCATION \ --description="NOTIFICATION_DESCRIPTION" \ --pubsub-topic=PUBSUB_TOPIC \ --filter="FILTER"
מחליפים את מה שכתוב בשדות הבאים:
-
NOTIFICATION_NAME: השם של הגדרות ההתראה. -
PARENT_TYPEהרמה בהיררכיית המשאבים שבה מצוינת ההגדרה. אפשר להשתמש ב-organization,folderאוproject. -
PARENT_ID: המזהה המספרי של משאב האב. -
LOCATION: המיקום של Security Command Center שבו צריך לעדכן אתNotificationConfig. אם מופעלת שמירת נתונים באזור מסוים, צריך להשתמש בערךeu,saאוus. אחרת, צריך להשתמש בערךglobal. -
NOTIFICATION_DESCRIPTION: תיאור של ההתראה, באורך של עד 1,024 תווים. -
PUBSUB_TOPIC: נושא ה-Pub/Sub שיקבל את ההתראות. הפורמט שלו הואprojects/PROJECT_ID/topics/TOPIC. -
FILTER: הביטוי שאתם מגדירים כדי לבחור אילו ממצאים יישלחו ל-Pub/Sub. לדוגמה,state="ACTIVE".
מחיקת NotificationConfig
כדי למחוק NotificationConfig, צריך להיות לכם תפקיד IAM שכולל את ההרשאה securitycenter.notification.delete.
כשמוחקים NotificationConfig, התפקיד securitycenter.notificationServiceAgent נשאר בנושא ב-Pub/Sub. אם אתם לא משתמשים בנושא Pub/Sub באף NotificationConfig אחר, אתם יכולים להסיר את התפקיד מהנושא. מידע נוסף זמין במאמר בנושא בקרת גישה.
מחיקת NotificationConfig בשפה שבחרתם:
gcloud
gcloud scc notifications delete NOTIFICATION_NAME \ --PARENT_TYPE=PARENT_ID \ --location=LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
NOTIFICATION_NAME: השם של הגדרות ההתראה. -
PARENT_TYPEהרמה בהיררכיית המשאבים שבה מצוינת ההגדרה. אפשר להשתמש ב-organization,folderאוproject. -
PARENT_ID: המזהה המספרי של משאב האב. -
LOCATION: המיקום של Security Command Center שבו רוצים למחוק אתNotificationConfig. אם מופעלת תכונת שמירת נתונים באזור מסוים, צריך להשתמש בערכיםeu,saאוus. אחרת, צריך להשתמש בערךglobal.
הצגת רשימה של NotificationConfigs
כדי להציג את NotificationConfigs, צריך להיות לכם תפקיד ב-IAM שכולל את ההרשאה securitycenter.notification.list.
כל הרשימות ב-Security Command Center API מחולקות לדפים. כל תגובה מחזירה דף של תוצאות ואסימון להחזרת הדף הבא. ערך ברירת המחדל pageSize הוא 10. אפשר להגדיר את גודל הדף למינימום של 1 ולמקסימום של 1, 000.
רשימה NotificationConfigs בשפה שבחרתם:
gcloud
gcloud scc notifications list PARENT_TYPE/PARENT_ID \ --location=LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
PARENT_TYPEהרמה בהיררכיית המשאבים שבה מצוינת ההגדרה. אפשר להשתמש ב-organizations,foldersאוprojects. -
PARENT_ID: המזהה המספרי של משאב האב. -
LOCATION: המיקום של Security Command Center שבו רוצים להציג את משאביNotificationConfig. אם מופעלת שמירת נתונים באזור מסוים, צריך להשתמש בערכיםeu,saאוus. אחרת, צריך להשתמש בערךglobal.
קבלת התראות Pub/Sub
בקטע הזה מופיעה הודעת התראה לדוגמה ודוגמאות שמראות איך להמיר הודעת Pub/Sub ל-NotificationMessage שמכילה ממצא.
ההתראות מתפרסמות ב-Pub/Sub בפורמט JSON.
דוגמה להודעת התראה:
{
"notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/CONFIG_ID",
"finding": {
"name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
"parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
"state": "ACTIVE",
"category": "TEST-CATEGORY",
"securityMarks": {
"name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
},
"eventTime": "2019-07-26T07:32:37Z",
"createTime": "2019-07-29T18:45:27.243Z"
}
}
המרת הודעת Pub/Sub ל-NotificationMessage באמצעות השפה שבחרתם:
gcloud
ממשק ה-CLI של gcloud לא תומך בהמרת הודעה ב-Pub/Sub ל-NotificationMessage. אפשר להשתמש ב-CLI של gcloud כדי לקבל NotificationMessage ולהדפיס את JSON ישירות בטרמינל:
# The subscription used to receive published messages from a topic
PUBSUB_SUBSCRIPTION="projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
gcloud pubsub subscriptions pull $PUBSUB_SUBSCRIPTION
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID במזהה הפרויקט.
- SUBSCRIPTION_ID מחליפים במזהה המינוי.