נכסים הם משאבים של הארגון Google Cloud , כמו מכונות ב-Compute Engine או קטגוריות של Cloud Storage.
במדריך הזה מוסבר איך להשתמש בספריות לקוח של Security Command Center כדי לגשת לרשומות שהוצאו משימוש ושנשמרות ב-Security Command Center עבור הנכסים בפרויקט או בארגון.
ב-Security Command Center נשמרות רשומות רק לגבי קבוצת משנה של הנכסים ב-מאגר משאבי ענן. כדי לקבל את הרשימה המלאה ביותר של הנכסים בסביבה שלכם, צריך להשתמש במאגר משאבי הענן כדי לרשום את הנכסים.
למידע נוסף, קראו את המאמרים הבאים:
רמות ההרשאה לתפקידי IAM
אפשר להעניק את תפקידי ה-IAM של Security Command Center ברמת הארגון, התיקייה או הפרויקט. היכולת שלכם להציג, לערוך, ליצור או לעדכן ממצאים, נכסים ומקורות אבטחה תלויה ברמת הגישה שניתנה לכם. מידע נוסף על תפקידים ב-Security Command Center זמין במאמר בקרת גישה.
לפני שמתחילים
לפני שמגדירים מקור, צריך לבצע את הפעולות הבאות:
גודל דף
כל ממשקי ה-API של רשימות ב-Security Command Center מחולקים לדפים. כל תגובה מחזירה דף של תוצאות ואסימון להחזרת הדף הבא. אפשר להגדיר את גודל הדף. ערך ברירת המחדל של pageSize הוא 10. אפשר להגדיר אותו למינימום של 1 ולמקסימום של 1,000.
סוגי המשאבים
המאפיין resourceType ב-Security Command Center פועל לפי מוסכמת מתן שמות שונה מזו של מאגר משאבי ענן. רשימה של פורמטים של סוגי משאבים זמינה במאמר סוגי נכסים נתמכים ב-Security Command Center.
הצגת רשימה של כל הנכסים
בדוגמאות האלה אפשר לראות איך מפרטים את כל הנכסים:
gcloud
כדי להציג רשימה של כל הנכסים בפרויקט, בתיקייה או בארגון, מריצים את הפקודה הבאה:
gcloud scc assets list PARENT_ID
מחליפים את PARENT_ID באחד מהערכים הבאים:
- מזהה הארגון בפורמט הבא:
ORGANIZATION_ID(המזהה המספרי בלבד) - מזהה תיקייה בפורמט הבא:
folders/FOLDER_ID - מזהה פרויקט בפורמט הבא:
projects/PROJECT_ID
כדי לראות עוד דוגמאות, מריצים את הפקודה:
gcloud scc assets list --help
דוגמאות מופיעות במאמר gcloud scc assets list.
Python
Java
המשך
Node.js
הפלט של כל נכס הוא אובייקט JSON שדומה לזה:
asset:
createTime: '2020-10-05T17:55:14.823Z'
iamPolicy:
policyBlob: '{"bindings":[{"role":"roles/owner","members":["serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com","user:USER_EMAIL@gmail.com"]}]}'
name: organizations/ORGANIZATION_ID/assets/ASSET_ID
resourceProperties:
createTime: '2020-10-05T17:36:17.915Z'
lifecycleState: ACTIVE
name: PROJECT_ID
parent: '{"id":"ORGANIZATION_ID","type":"organization"}'
projectId: PROJECT_ID
projectNumber: 'PROJECT_NUMBER'
securityCenterProperties:
resourceDisplayName: PROJECT_ID
resourceName: //cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER
resourceOwners:
- serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com
- user:USER_EMAIL@gmail.com
resourceParent: //cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID
resourceParentDisplayName: ORGANIZATION_NAME
resourceProject: //cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER
resourceProjectDisplayName: PROJECT_ID
resourceType: google.cloud.resourcemanager.Project
securityMarks:
name: organizations/ORGANIZATION_ID/assets/ASSET_ID/securityMarks
updateTime: '2020-10-05T17:55:14.823Z'
סינון נכסים
יכול להיות שיש הרבה נכסים בפרויקט, בתיקייה או בארגון. בדוגמה הקודמת לא נעשה שימוש במסננים, ולכן כל הנכסים מוחזרים. ב-Security Command Center אפשר להשתמש במסנני נכסים כדי לקבל מידע על נכסים ספציפיים. מסננים דומים לסעיפי WHERE בהצהרות SQL, אבל במקום עמודות, הם חלים על האובייקטים שמוחזרים על ידי ה-API.
בדוגמה של הפלט שמוצגת למעלה אפשר לראות כמה שדות ותתי-שדות, והמאפיינים שלהם, שאפשר להשתמש בהם במסנני נכסים. Security Command Center תומך במערכים ובאובייקטים מלאים של JSON כסוגי נכסים פוטנציאליים. אפשר לסנן לפי:
- רכיבי מערך
- אובייקטים מלאים של JSON עם התאמה חלקית של מחרוזת בתוך האובייקט
- שדות משנה של אובייקט JSON
שדות המשנה חייבים להיות מספרים, מחרוזות או ערכים בוליאניים, וביטויי המסנן חייבים להשתמש באופרטורים הבאים להשוואה:
- מחרוזות:
- שוויון מלא
= - התאמה חלקית של מחרוזות
:
- שוויון מלא
- מספרים:
- אי-שוויונים
<,>,<=,>= - שוויון
=
- אי-שוויונים
- ערכים בוליאניים:
- שוויון
=
- שוויון
בדוגמאות הבאות מסננים נכסים:
gcloud
כדי לסנן נכסים, משתמשים בפקודה הבאה:
gcloud scc assets list PARENT_ID --filter="FILTER"
מחליפים את מה שכתוב בשדות הבאים:
FILTERעם המסנן שרוצים להשתמש בו. לדוגמה, המסנן הבא מחזיר רק משאבי פרויקט:--filter="security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\""
PARENT_IDבאחד מהערכים הבאים:- מזהה הארגון בפורמט הבא:
ORGANIZATION_ID(המזהה המספרי בלבד) - מזהה תיקייה בפורמט הבא:
folders/FOLDER_ID - מזהה פרויקט בפורמט הבא:
projects/PROJECT_ID
- מזהה הארגון בפורמט הבא:
כדי לראות עוד דוגמאות, מריצים את הפקודה:
gcloud scc assets list --help
דוגמאות מופיעות במאמר gcloud scc assets list.
Python
Java
המשך
Node.js
רשימה בנקודת זמן מסוימת
בדוגמאות הקודמות אפשר לראות איך מציגים רשימה של קבוצת נכסים נוכחית. ב-Security Command Center אפשר גם לראות תמונת מצב היסטורית של נכסים. בדוגמאות הבאות מוצג המצב של כל הנכסים בנקודת זמן ספציפית. Security Command Center תומך ברזולוציות זמן של אלפיות השנייה.
gcloud
כדי לפרט את הנכסים בנקודת זמן ספציפית, משתמשים בפקודה הבאה:
gcloud scc assets list PARENT_ID --read-time="READ_TIME"
מחליפים את מה שכתוב בשדות הבאים:
-
READ_TIMEעם השעה שבה הנכסים יוצגו. צריך להשתמש בפורמט הבא:YYYY-MM-DDThh:mm:ss.ffffffZ. לדוגמה:--read-time="2022-12-21T07:00:06.861Z"
PARENT_IDבאחד מהערכים הבאים:- מזהה הארגון בפורמט הבא:
ORGANIZATION_ID(המזהה המספרי בלבד) - מזהה פרויקט בפורמט הבא:
projects/PROJECT_ID - מזהה תיקייה בפורמט הבא:
folders/FOLDER_ID
- מזהה הארגון בפורמט הבא:
כדי לראות עוד דוגמאות, מריצים את הפקודה:
gcloud scc assets list --help
דוגמאות מופיעות במאמר gcloud scc assets list.
Python
Java
המשך
Node.js
הצגת רשימה של נכסים עם שינויים במצב
ב-Security Command Center אפשר להשוות נכס בשתי נקודות זמן כדי לזהות אם הוא נוסף, הוסר או היה קיים במהלך תקופת הזמן שצוינה. בדוגמאות הבאות מוצגת השוואה בין פרויקטים שקיימים בנקודת הזמן READ_TIME לבין נקודת זמן קודמת שצוינה על ידי COMPARE_DURATION. הערך של COMPARE_DURATION מצוין בשניות.
אם המאפיין COMPARE_DURATION מוגדר, המאפיין stateChange בנכס של רשימת התוצאות מתעדכן באחד מהערכים הבאים:
-
ADDED: הנכס לא היה קיים בתחילת התקופהcompareDuration, אבל הוא היה קיים בתקופהreadTime. -
REMOVED: הנכס היה קיים בתחילתcompareDuration, אבל לא היה קיים ב-readTime.
ACTIVE: הנכס היה קיים גם בתחילת תקופת הזמן שהוגדרה על ידיcompareDurationוגם בסופה.readTime
gcloud
כדי להשוות את מצב הנכסים בשתי נקודות זמן, משתמשים בפקודה הבאה:
gcloud scc assets list PARENT_ID \ --filter="FILTER" \ --read-time=READ_TIME \ --compare-duration=COMPARE_DURATION
מחליפים את מה שכתוב בשדות הבאים:
-
COMPARE_DURATIONעם מספר שניות שמגדיר נקודת זמן לפני הזמן שצוין בדגל--read-time. לדוגמה:--compare-duration=84600s FILTERעם הפילטר שרוצים להשתמש בו. לדוגמה, המסנן הבא מחזיר רק משאבי פרויקט:--filter="security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\""
PARENT_IDבאחד מהערכים הבאים:- מזהה הארגון בפורמט הבא:
ORGANIZATION_ID(המזהה המספרי בלבד) - מזהה פרויקט בפורמט הבא:
projects/PROJECT_ID - מזהה תיקייה בפורמט הבא:
folders/FOLDER_ID
- מזהה הארגון בפורמט הבא:
-
READ_TIMEעם השעה שבה הנכסים יופיעו ברשימה. משתמשים בפורמט הבא:YYYY-MM-DDThh:mm:ss.ffffffZ. לדוגמה: כדי לראות עוד דוגמאות, מריצים את הפקודה:--read-time="2022-12-21T07:00:06.861Z"
gcloud scc assets list --help
דוגמאות מופיעות במאמר gcloud scc assets list.
Python
Java
המשך
Node.js
דוגמאות למסננים
הנה עוד כמה מסננים שימושיים של נכסים. אפשר להשתמש ב-AND וב-OR במסננים כדי לשלב פרמטרים ולהרחיב או לצמצם את התוצאות.
חיפוש נכס של פרויקט עם בעלים ספציפי
"security_center_properties.resource_type = \"google.cloud.resourcemanager.Project\" AND security_center_properties.resource_owners : \"$USER\""
בדרך כלל הערך של $USER הוא בפורמט user:someone@domain.com. ההשוואה של user מתבצעת באמצעות האופרטור של מחרוזת המשנה :, ולא נדרשת התאמה מדויקת.
כללי חומת אש שבהם פתוחות יציאות HTTP
"security_center_properties.resource_type = \"google.compute.Firewall\" AND resource_properties.name =\"default-allow-http\""
משאבים ששייכים לפרויקטים ספציפיים
"security_center_properties.resource_parent = \"$PROJECT_1_NAME\" OR security_center_properties.resource_parent = \"$PROJECT_2_NAME\""
$PROJECT_1_NAME ו-$PROJECT_2_NAME הם מזהי משאבים בצורה //cloudresourcemanager.googleapis.com/projects/$PROJECT_ID, כאשר $PROJECT_ID הוא מספר הפרויקט. דוגמה מלאה: //cloudresourcemanager.googleapis.com/projects/100090906
חיפוש תמונות Compute Engine שהשמות שלהן מכילים מחרוזת מסוימת
המסנן הזה מחזיר תמונות של Compute Engine שמכילות את מחרוזת המשנה Debia:
"security_center_properties.resource_type = \"google.compute.Image\" AND resource_properties.name : \"Debia\""
משאבים שהמאפיינים שלהם מכילים צמדים של מפתח/ערך
המסנן הזה מחזיר קטגוריות של Cloud Storage שבהן האפשרות bucketPolicyOnly מושבתת. הערך של resourceProperties.iamConfiguration מקודד כמחרוזת. משתמשים בתו \ כדי לבטל את המשמעות של תווים מיוחדים במחרוזות, כולל האופרטור : בין שם המפתח לערך.
"resourceProperties.iamConfiguration:"\"bucketPolicyOnly\"\:{\"enabled\"\:false""
חיפוש נכסי פרויקט שנוצרו בשעה מסוימת או לפני כן
מסנני הדוגמה האלה תואמים לנכסים שנוצרו בתאריך 18 ביולי 2019 בשעה 20:26:21 GMT או לפני כן. בעזרת המסנן create_time, אפשר להגדיר זמן באמצעות הפורמטים והסוגים הבאים:
זמן יוניקס (באלפיות השנייה) כמספר שלם
"create_time <= 1563481581000"RFC 3339 כמחרוזת ליטרלית
"create_time <= \"2019-07-18T20:26:21+00:00\""
אי הכללת נכסים בתוצאות
כדי להחריג נכס מהתוצאות, משתמשים בשלילה על ידי הצבת התו - לפני פרמטר. הפעולה דומה לשימוש באופרטור NOT בהצהרת SQL.
המסנן הזה מחזיר את כל משאבי הפרויקט מלבד Debia:
"security_center_properties.resource_type = \"google.cloud.resourcemanager.Project\" AND -resource_properties.projectId = \"Debia\""
המאמרים הבאים
מידע נוסף על גישה ל-Security Command Center באמצעות ספריית לקוח