בדף הזה מוסבר איך להפעיל התראות של Security Command Center API.
ההתראות שולחות ממצאים ועדכונים על ממצאים לנושא Pub/Sub תוך דקות. ההתראות של Security Command Center API כוללות את כל המידע על הממצאים שמוצג על ידי Security Command Center בGoogle Cloud מסוף.
אפשר לקשר התראות של Security Command Center ב-Pub/Sub ישירות לפעולות של פונקציות Cloud Run. דוגמאות לפונקציות שיכולות לעזור בתגובה, בהעשרה ובתיקון אפשר למצוא במאגר הקוד הפתוח של Security Command Center של פונקציות Cloud Run. המאגר מכיל פתרונות שיעזרו לכם לבצע פעולות אוטומטיות לגבי ממצאי אבטחה.
לחלופין, אפשר לייצא את הממצאים ל-BigQuery או להגדיר ייצוא רציף ל-Pub/Sub במסוף Google Cloud .
לפני שמתחילים
-
כדי לקבל את ההרשאות שדרושות להגדרה ולהגדרה של התראות מ-Security Command Center API, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
אדמין Security Center (
roles/securitycenter.admin) בארגון או בפרויקט שבהם מופעל Security Command Center -
אדמין IAM של פרויקט (
roles/resourcemanager.projectIamAdmin) בפרויקט שבו תיצרו את נושא ה-Pub/Sub
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
-
אדמין Security Center (
-
Enable the Security Command Center API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable securitycenter.googleapis.com
המיקום של נתונים והתראות
אם הגדרתם את מיקום הנתונים ב-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.
הגדרה של נושא Pub/Sub
במשימה הזו, אתם יוצרים נושא Pub/Sub ונרשמים אליו כדי לשלוח אליו התראות.
שלב 1: הגדרת Pub/Sub
כדי להגדיר נושא Pub/Sub ולהירשם אליו, מבצעים את הפעולות הבאות:
נכנסים למסוף Google Cloud .
בוחרים את הפרויקט שבו הפעלתם את Security Command Center API.
לוחצים על הפעלת Cloud Shell.
אופציונלי: כדי ליצור נושא חדש ב-Pub/Sub, מריצים את הפקודה הבאה:
gcloud pubsub topics create TOPIC_IDמחליפים את
TOPIC_IDבשם של נושא.יוצרים מינוי לנושא:
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_IDמחליפים את מה שכתוב בשדות הבאים:
-
SUBSCRIPTION_ID: מזהה המינוי -
TOPIC_ID: מזהה הנושא
-
מידע נוסף על הגדרת Pub/Sub זמין במאמר ניהול נושאים ומינויים.
שלב 2: הקצאת תפקיד בנושא Pub/Sub
כדי ליצור NotificationConfig, צריך את התפקיד 'אדמין ב-Pub/Sub' (roles/pubsub.admin) בנושא ה-Pub/Sub שעבורו יצרתם מינוי.
כדי להעניק את התפקיד הזה:
נכנסים למסוף Google Cloud .
בוחרים את הפרויקט שעבורו הפעלתם את Security Command Center API.
לוחצים על הפעלת Cloud Shell.
מקצים לחשבון Google את התפקיד הנדרש בנושא Pub/Sub:
gcloud pubsub topics add-iam-policy-binding \ projects/PUBSUB_PROJECT/topics/TOPIC_ID \ --member="user:GOOGLE_ACCOUNT" \ --role="roles/pubsub.admin"מחליפים את מה שכתוב בשדות הבאים:
-
PUBSUB_PROJECT: הפרויקט Google Cloud שכולל את נושא ה-Pub/Sub -
TOPIC_ID: מזהה הנושא GOOGLE_ACCOUNT: כתובת האימייל של חשבון Google שלכם
-
יצירת NotificationConfig
לפני שיוצרים 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 שבו יתבצע ה-; אם מופעלת שמירת נתונים באזור מסוים, צריך להשתמש ב-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 כשיוצרים את הגדרת ההתראות. תפקיד חשבון השירות הזה נדרש כדי שההתראות יפעלו.
איך מעניקים גישה להיקף ב-VPC Service Controls
אם אתם משתמשים ב-VPC Service Controls ונושא ה-Pub/Sub שלכם הוא חלק מפרויקט בתוך גבולות גזרה לשירות, אתם צריכים להעניק גישה לפרויקטים כדי ליצור התראות.
כדי להעניק גישה לפרויקטים, צריך ליצור כללים לתעבורת נתונים נכנסת (ingress) ויוצאת (egress) עבור הגורמים המורשים והפרויקטים שמשמשים ליצירת התראות. הכללים מאפשרים גישה למשאבים מוגנים ומאפשרים ל-Pub/Sub לאמת שלמשתמשים יש הרשאה setIamPolicy בנושא Pub/Sub.
לפני שיוצרים NotificationConfig
לפני שמבצעים את השלבים במאמר יצירה של NotificationConfig, צריך לבצע את השלבים הבאים.
המסוף
-
נכנסים לדף VPC Service Controls במסוף Google Cloud .
- בוחרים את הארגון.
-
ברשימה הנפתחת, בוחרים את מדיניות הגישה שמכילה את גבולות הגזרה לשירות שרוצים להעניק לו גישה.
גבולות הגזרה לשירות שמשויכים למדיניות הגישה מופיעים ברשימה.
-
לוחצים על השם של גבולות הגזרה לשירות שרוצים לעדכן.
כדי למצוא את גבולות הגזרה לשירות שצריך לשנות, אפשר לבדוק ביומנים ערכים שמציינים
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETERהפרות. ברשומות האלה, בודקים את השדהservicePerimeterName:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
- לוחצים על עריכה.
- לוחצים על מדיניות יציאה.
- לוחצים על הוספת כלל ליציאה.
-
בקטע מאת, מגדירים את הפרטים הבאים:
- בקטע זהויות > זהות, בוחרים באפשרות בחירת זהויות וקבוצות.
- לוחצים על הוספת זהויות.
- מזינים את כתובת האימייל שמזהה את חשבון המשתמש שמשמש לקריאה ל-API של Security Command Center.
- בוחרים את הגורם המורשה או לוחצים על ENTER, ואז לוחצים על הוספת זהויות.
-
בקטע To (אל), מגדירים את הפרטים הבאים:
- בקטע Resources > Projects, בוחרים באפשרות All projects.
- בקטע Operations or IAM roles (פעולות או תפקידי IAM), בוחרים באפשרות Select operations (בחירת פעולות).
-
לוחצים על הוספת פעולות ומוסיפים את הפעולות הבאות:
- מוסיפים את השירות pubsub.googleapis.com.
- לוחצים על כל השיטות.
- לוחצים על הוספת כל האמצעים.
- מוסיפים את השירות pubsub.googleapis.com.
- לוחצים על Ingress policy (מדיניות כניסה).
- לוחצים על הוספת כלל תעבורה נכנסת.
-
בקטע מאת, מגדירים את הפרטים הבאים:
- בקטע זהויות > זהות, בוחרים באפשרות בחירת זהויות וקבוצות.
- לוחצים על הוספת זהויות.
- מזינים את כתובת האימייל שמזהה את חשבון המשתמש שמשמש לקריאה ל-API של Security Command Center.
- בוחרים את הגורם המורשה או לוחצים על ENTER, ואז לוחצים על הוספת זהויות.
-
בקטע To (אל), מגדירים את הפרטים הבאים:
- בקטע Resources > Projects (משאבים > פרויקטים), בוחרים באפשרות Select projects (בחירת פרויקטים).
- לוחצים על Add projects ומוסיפים את הפרויקט שמכיל את נושא ה-Pub/Sub.
- בקטע Operations or IAM roles (פעולות או תפקידי IAM), בוחרים באפשרות Select operations (בחירת פעולות).
-
לוחצים על הוספת פעולות ומוסיפים את הפעולות הבאות:
- מוסיפים את השירות pubsub.googleapis.com.
- לוחצים על כל השיטות.
- לוחצים על הוספת כל האמצעים.
- מוסיפים את השירות pubsub.googleapis.com.
- לוחצים על Save.
gcloud
-
אם עדיין לא הגדרתם פרויקט מכסת מכסות, תצטרכו להגדיר אותו. בוחרים פרויקט שבו מופעל Access Context Manager API.
gcloud config set billing/quota_project QUOTA_PROJECT_ID
מחליפים את
QUOTA_PROJECT_IDבמזהה הפרויקט שבו רוצים להשתמש לחיוב ולמכסה. -
יוצרים קובץ בשם
egress-rule.yamlעם התוכן הבא:- egressFrom: identities: - PRINCIPAL_ID egressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
מחליפים את
PRINCIPAL_IDבמזהה של החשבון הראשי שמשמש לקריאה ל-Security Command Center API. -
יוצרים קובץ בשם
ingress-rule.yamlעם התוכן הבא:- ingressFrom: identities: - PRINCIPAL_ID sources: - accessLevel: '*' ingressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
מחליפים את
PRINCIPAL_IDבמזהה של החשבון הראשי שמשמש לקריאה ל-Security Command Center API. -
מוסיפים את כלל היציאה להיקף:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-egress-policies=egress-rule.yaml
מחליפים את מה שכתוב בשדות הבאים:
-
PERIMETER_NAME: שם ההיקף. לדוגמה:accessPolicies/1234567890/servicePerimeters/example_perimeter.כדי למצוא את גבולות הגזרה לשירות שרוצים לשנות, אפשר לבדוק ביומנים אם יש רשומות שבהן מופיע
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETERהפרה. ברשומות האלה, בודקים את השדהservicePerimeterName:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
-
מוסיפים את כלל הכניסה להיקף:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress-rule.yaml
מחליפים את מה שכתוב בשדות הבאים:
-
PERIMETER_NAME: שם ההיקף. לדוגמה:accessPolicies/1234567890/servicePerimeters/example_perimeter.כדי למצוא את גבולות הגזרה לשירות שרוצים לשנות, אפשר לבדוק ביומנים אם יש רשומות שבהן מופיע
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETERהפרה. ברשומות האלה, בודקים את השדהservicePerimeterName:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
מידע נוסף זמין במאמר בנושא כללי כניסה ויציאה.
יצירת כלל כניסה ל-NotificationConfig
כדי ליצור כלל תעבורת נתונים נכנסת (ingress) ל-NotificationConfig, פועלים לפי ההוראות שבמאמר יצירת NotificationConfig, ואז מבצעים את השלבים הבאים.
המסוף
-
פותחים מחדש את גבולות הגזרה לשירות מהקטע הקודם.
- לוחצים על Ingress policy (מדיניות כניסה).
- לוחצים על הוספת כלל תעבורה נכנסת.
-
בקטע מאת, מגדירים את הפרטים הבאים:
- בקטע זהויות > זהות, בוחרים באפשרות בחירת זהויות וקבוצות.
- לוחצים על הוספת זהויות.
מזינים את כתובת האימייל שמזהה את סוכן השירות של
NotificationConfig. הכתובת הזו היא בפורמט הבא:service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com
מחליפים את
ORGANIZATION_IDבמזהה הארגון.- בוחרים את סוכן השירות או לוחצים על ENTER, ואז לוחצים על הוספת זהויות.
-
בקטע To (אל), מגדירים את הפרטים הבאים:
- בקטע Resources > Projects (משאבים > פרויקטים), בוחרים באפשרות Select projects (בחירת פרויקטים).
- לוחצים על Add projects ומוסיפים את הפרויקט שמכיל את נושא ה-Pub/Sub.
- בקטע Operations or IAM roles (פעולות או תפקידי IAM), בוחרים באפשרות Select operations (בחירת פעולות).
-
לוחצים על הוספת פעולות ומוסיפים את הפעולות הבאות:
- מוסיפים את השירות pubsub.googleapis.com.
- לוחצים על כל השיטות.
- לוחצים על הוספת כל האמצעים.
- מוסיפים את השירות pubsub.googleapis.com.
- לוחצים על Save.
gcloud
-
אם עדיין לא הגדרתם פרויקט מכסת מכסות, תצטרכו להגדיר אותו. בוחרים פרויקט שבו מופעל Access Context Manager API.
gcloud config set billing/quota_project QUOTA_PROJECT_ID
מחליפים את
QUOTA_PROJECT_IDבמזהה הפרויקט שבו רוצים להשתמש לחיוב ולמכסה. -
יוצרים קובץ בשם
ingress-rule.yamlעם התוכן הבא:- ingressFrom: identities: - serviceAccount:service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com sources: - accessLevel: '*' ingressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
מחליפים את
ORGANIZATION_IDבמזהה הארגון. -
מוסיפים את כלל הכניסה להיקף:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress-rule.yaml
מחליפים את מה שכתוב בשדות הבאים:
-
PERIMETER_NAME: שם ההיקף. לדוגמה:accessPolicies/1234567890/servicePerimeters/example_perimeter.כדי למצוא את גבולות הגזרה לשירות שרוצים לשנות, אפשר לבדוק ביומנים אם יש רשומות שבהן מופיע
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETERהפרה. ברשומות האלה, בודקים את השדהservicePerimeterName:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
מידע נוסף זמין במאמר בנושא כללי כניסה ויציאה.
עכשיו הפרויקטים, המשתמשים וחשבונות השירות שנבחרו יכולים לגשת למשאבים המוגנים וליצור התראות.
אם פעלתם לפי כל השלבים במדריך הזה וההתראות פועלות בצורה תקינה, אתם יכולים למחוק את הפריטים הבאים:
- כלל הכניסה (ingress) עבור החשבון הראשי
- כלל היציאה (egress) של החשבון הראשי
הכללים האלה נדרשו רק כדי להגדיר את NotificationConfig. עם זאת, כדי שההתראות ימשיכו לפעול, צריך להשאיר את כלל הכניסה עבור NotificationConfig, שמאפשר לו לפרסם התראות בנושא Pub/Sub מאחורי גבולות גזרה לשירות.
המאמרים הבאים
- מידע ולמידה על הפעלת התראות באימייל ובקשר לצ'אטים בזמן אמת
- איך מנהלים את ה-API של ההתראות
- מידע נוסף על סינון התראות