במאמר הזה מוסבר איך להגדיר את Cloud IDS לאפליקציה. צריכים מידע כללי יותר על Cloud IDS? קראו את הסקירה הזאת.
לפני שמתחילים
לפני שאתם מגדירים את Cloud IDS, בצעו את הפעולות הבאות.
הגדרת ההרשאות ל-Cloud IDS ב-IAM
ל-Cloud IDS יש כמה תפקידים ב-IAM (המערכת לניהול הזהויות והרשאות הגישה). אתם יכולים להיעזר בפקודות לדוגמה שכאן כדי לתת לישות מורשית את ההרשאות הנדרשות ב-IAM.
התפקיד Cloud IDS Admin (
roles/ids.admin). משתמשים עם התפקיד הזה ברמת הפרויקט יכולים ליצור נקודות קצה של IDS. אם אתם בעלי הפרויקט, כבר יש לכם את ההרשאה הזו. אתם לא צריכים את התפקיד הספציפיids.adminכדי ליצור נקודות קצה של IDS.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/ids.admin \ --member=user:USER_NAME ;התפקיד הזה מאפשר:
- ליצור נקודות קצה
- למחוק נקודות קצה
- לקבל נקודות קצה
- לראות רשימה של נקודות הקצה
התפקיד Cloud IDS Viewer (
roles/ids.viewer). למשתמשים עם הרשאת צפייה ועם התפקיד הזה בפרויקט יש הרשאת קריאה בלבד בנקודות קצה של IDS. אם אתם בעלי הפרויקט, או אם יש לכם הרשאת צפייה או עריכה בו, כבר יש לכם את ההרשאה הזו.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/ids.viewer \ --member=user:USER_NAME ;התפקיד Compute packet mirroring user (
roles/compute.packetMirroringUser). צריך את התפקיד הזה כדי לצרף מדיניות רפליקציה של חבילות נתונים לנקודת הקצה של IDS. אם יש לכם את התפקידcompute.securityAdminאוcontainer.serviceAgent, כבר יש לכם את ההרשאה הזו. קראו הסבר על התפקיד הזה מתוך המאמר תפקידים בסיסיים ומוגדרים מראש ב-IAMgcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/compute.packetMirroringUser \ --member=user:USER_NAME ;התפקיד Logs Viewer (
roles/logging.viewer). תפקיד נוסף שצריך כדי לראות את האיומים האחרונים, תכונה קריטית של Cloud IDS. קראו הסבר על התפקיד הזה במדריך בקרת הגישה.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/logging.viewer \ --member=user:USER_NAME ;
אתם צריכים גם את ההרשאות הבאות:
compute.regions.listcompute.zones.list
הגדרת הגישה לשירותים פרטיים
כדי ליצור נקודות קצה של IDS, אתם צריכים להפעיל את Service Networking API ולהגדיר קישור בין רשתות שכנות לרשת של הענן הווירטואלי הפרטי (VPC). את ההגדרה אתם יכולים לעשות באמצעות מסוףGoogle Cloud או Google Cloud CLI, וצריכים לעשות רק פעם אחת לכל פרויקט. כשאתם מקצים טווח כתובות IP, הוא צריך להיות של כתובות פרטיות שתואם ל-RFC 1918 (10.0.0.0/8, 172.16.0.0/12 או 192.168.0.0/16), אחרת לא תוכלו ליצור את נקודת הקצה.
איך מגדירים את הגישה לשירותים פרטיים
מפעילים את Service Networking API באמצעות הפקודה הבאה (מחליפים את
PROJECT_IDבמזהה הפרויקט).gcloud services enable servicenetworking.googleapis.com \ --project=PROJECT_IDמקצים טווח של כתובות IP לשירותי Google ברשת ה-VPC. אם כבר הגדרתם גישה לשירותים פרטיים בשביל שירות אחר, אתם צריכים להקצות טווח כתובות IP נפרד וייחודי בשביל Cloud IDS.
בפקודה הבאה, אפשר להשמיט את השדה
addressesוייבחר ב-Google Cloud טווח כתובות שלא נמצא בשימוש ברשת ה-VPC:gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --description="DESCRIPTION" \ --network=VPC_NETWORKמחליפים את מה שכתוב בשדות הבאים:
RESERVED_RANGE_NAME: שם לטווח שהוקצה, למשלmy-allocated-range
DESCRIPTION: תיאור הטווח, למשלallocated for my-service
VPC_NETWORK: השם של רשת ה-VPC, למשלmy-vpc-network
יוצרים חיבור פרטי לבעלים של השירות המנוהל. החיבור הפרטי יוצר קישור בין רשת ה-VPC לרשת של ספק השירות.
אם כבר יש חיבור פרטי, אפשר להשתמש בפקודה
gcloud services vpc-peerings updateכדי לעדכן אותו בטווח הנוסף שהקציתם ל-Cloud IDS:gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_IDאם עדיין אין חיבור פרטי, משתמשים בפקודה
gcloud services vpc-peerings connect. היא תפעיל פעולה ממושכת שתחזיר שם פעולה.gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
RESERVED_RANGE_NAME: השמות של הטווחים שהוקצו (לפחות אחד)
VPC_NETWORK: השם של רשת ה-VPC
PROJECT_ID: מזהה הפרויקט שמכיל את רשת ה-VPC
כדי לבדוק אם הפעולה הצליחה, משתמשים בפקודה
gcloud services vpc-peerings operations describe:gcloud services vpc-peerings operations describe \ --name=OPERATION_NAMEמחליפים את
OPERATION_NAMEבשם הפעולה שהתקבל בשלב הקודם.
חוזרים על שלבים 2 ו-3 לכל רשת VPC שרוצים לעקוב אחריה.
הפעלת VPC Service Controls (לא חובה)
אחרי שתפעילו גישה לשירותים פרטיים, אתם יכולים להפעיל גם את השירות VPC Service Controls ב-Cloud IDS.
כשהוא פועל, אתם יכולים להריץ את הפקודה services vpc-peerings enable-vpc-service-controls כדי להפעיל את VPC Service Controls לכל הקישורים לרשתות השכנות.
gcloud services vpc-peerings enable-vpc-service-controls \
--service=servicenetworking.googleapis.com \
--network=VPC_NETWORK \
--project=PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
VPC_NETWORK: השם של רשת ה-VPC
PROJECT_ID: מזהה הפרויקט שמכיל את רשת ה-VPC
הסבר על השיטות המומלצות
לפני שאתם מגדירים את Cloud IDS, כדאי שתקראו ותבינו מה השיטות המומלצות.
הגדרת נקודות הקצה של Cloud IDS
בחלקים הבאים מוסבר איך ליצור, לראות ולמחוק נקודות קצה של Cloud IDS, לצרף אותן למדיניות רפליקציה של חבילות נתונים ולהגדיר חריגות לאיומים.
איך יוצרים נקודות קצה של Cloud IDS
אנחנו ממליצים לכם ליצור נקודת קצה של IDS לכל אזור שבו פרסתם עומסי עבודה. אתם יכולים גם ליצור כמה נקודות קצה של IDS לכל אזור. היעזרו בהוראות שכאן כדי ליצור נקודת קצה של IDS ולהקצות לה פרופיל שירות.
המסוף
נכנסים לדף IDS Endpoints במסוף Google Cloud .
מגדירים את נקודת הקצה:
- לוחצים על Create endpoint.
- נותנים לה שם בשדה Endpoint name.
- אם רוצים, מוסיפים תיאור בשדה Description.
- לוחצים על הרשימה Network ובוחרים את הרשת שרוצים ש-Cloud IDS יבדוק.
- בוחרים את האזור והתחום של הרשת או רשת המשנה מהרשימות Region ו-Zone.
- לוחצים על Continue.
בוחרים את פרופיל השירות של Cloud IDS:
- לוחצים על Select IDS service profile.
- בהגדרה Minimum threat severity level, בוחרים את רמת החומרה המינימלית שתפעיל התראה.
- לוחצים על Create. תהליך יצירת הפרופיל יימשך 10-15 דקות.
gcloud
דגלים אופציונליים
יכול להיות שכשתריצו את הפקודות שמופיעות בחלק הזה תראו את הדגלים הבאים:
--no-async--filter=EXPRESSIONgcloud topic filters.
הדגל הזה משתלב עם דגלים אחרים, בסדר הזה: --flatten, --sort-by, --filter ו---limit.--limit=LIMIT--flatten, --sort-by, --filter ו---limit.--page-size=PAGE_SIZE--filter ו---limit, בהתאם לשירות.--sort-by=[FIELD,…]~) בתחילת השדה. הדגל הזה משתלב עם דגלים אחרים, בסדר הזה: --flatten, --sort-by, --filter ו---limit.--uri--threat-exceptionsהוראות
כדי ליצור נקודת קצה חדשה של IDS, משתמשים בפקודה gcloud ids endpoints create.
gcloud ids endpoints create ENDPOINT_NAME \
--network=VPC_NETWORK \
--zone=ZONE \
--severity=SEVERITY \
[--no-async] \
[GCLOUD_WIDE_FLAG...]
מחליפים את מה שכתוב בשדות הבאים:
-
ENDPOINT_NAME: השם או המזהה של נקודת הקצה -
VPC_NETWORK: השם של רשת ה-VPC -
ZONE: התחום של נקודת הקצה
SEVERITY: רמת החומרה המינימלית של האיומים שיפעילו התראהחובה להשתמש באחד מהערכים הבאים בדגל החוּמרה:
INFORMATIONALLOWMEDIUMHIGHCRITICAL
API
למשאבים של נקודות הקצה של Cloud IDS יש את השדות הבאים:
| שדה | סוג | תיאור |
|---|---|---|
| createTime | מחרוזת | [רק פלט] חותמת הזמן של שעת היצירה, בפורמט טקסט RFC 3339. |
| updateTime | מחרוזת | [רק פלט] חותמת הזמן של שעת העדכון האחרון, בפורמט טקסט RFC 3339. |
| name | מחרוזת | [רק פלט] השם של נקודת הקצה, בפורמט projects/{project_id}/locations/{locationId}/endpoints/{endpointId}. |
| network | מחרוזת | השם של רשת ה-VPC שמחוברת לנקודת הקצה של IDS. חובה למלא את השדה הזה כשיוצרים את נקודת הקצה, והוא יכול להכיל או את השם של רשת ה-VPC (למשל "src-net") או את כתובת ה-URL המלאה שלה (למשל "projects/{project_id}/global/networks/src-net"). |
| severity | מחרוזת | רמת החוּמרה המינימלית שתפעיל התראה בנקודת הקצה. הערכים האפשריים הם:
חובה למלא את השדה הזה כשיוצרים את נקודת הקצה. |
| description | מחרוזת | התיאור של נקודת הקצה. לא חובה למלא אותו. |
| endpoint_forwarding_rule | מחרוזת | [רק פלט] כתובת ה-URL של נקודת הקצה ברשת, שאליה תישלח התעבורה ברפליקציה של חבילות נתונים. |
| endpoint | מחרוזת | [רק פלט] כתובת ה-IP הפנימית של נקודת הכניסה לרשת של נקודת הקצה. |
כדי ליצור נקודת קצה של Cloud IDS, צריך להשתמש בבקשת HTTP POST כמו זו שכאן, ולהחליף את המשתנים לפי הצורך. המשתנה ENDPOINT_NAME צריך לכלול בין 1 ל-63 תווים – רק אותיות קטנות באנגלית, ספרות ומקפים, להתחיל באות קטנה ולא להסתיים במקף.
POST https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
{
"network": "NETWORK_NAME",
"severity": "SEVERITY_LEVEL",
}
איך מצרפים מדיניות רפליקציה של חבילות נתונים לנקודת קצה של Cloud IDS
אתם יכולים להיעזר בהוראות שכאן כדי לצרף לנקודת קצה של IDS מדיניות רפליקציה של חבילות נתונים.
המסוף
מצרפים את המדיניות אחרי שיוצרים את נקודת הקצה:
נכנסים לדף IDS Endpoints במסוף Google Cloud .
ליד נקודת הקצה של IDS, לוחצים על Attach.
בשדה Policy name, כותבים את השם של מדיניות הרפליקציה של חבילות נתונים.
לוחצים על Next.
בוחרים את רשת המשנה או את המכונות לרפליקציה. אפשר לבחור כמה רשתות משנה ומכונות.
לוחצים על Next.
מחליטים אם רוצים להפעיל רפליקציה לכל תעבורת הנתונים או לסנן אותה:
- אם רוצים להפעיל רפליקציה לכל התעבורה, מוודאים שהאפשרות Mirror All Traffic מסומנת.
- אם רוצים לסנן אותה לפי פרוטוקול, טווח כתובות IP או כיוון (נכנסת או יוצאת), בוחרים באפשרות Mirror filtered traffic:
- בוחרים אפשרות: Allow all protocols או Allow specific protocols.
- בוחרים אפשרות: Allow all IP ranges או Allow specific IP ranges.
לוחצים על Submit. נקודת הקצה תיווצר.
gcloud
מצרפים את המדיניות אחרי שיוצרים את נקודת הקצה של IDS. קודם כל, מקבלים את כתובת ה-URL מהשדה
endpoint_forwarding_ruleבאמצעות הפקודה הזו:gcloud ids endpoints describe ENDPOINT_NAME
יוצרים את מדיניות הרפליקציה של חבילות נתונים באמצעות הפקודה הזו:
gcloud compute packet-mirrorings create POLICY_NAME \ --region=REGION \ --collector-ilb=ENDPOINT_FORWARDING_RULE \ --network=VPC_NETWORK \ --mirrored-subnets=SUBNETברפליקציה של חבילות נתונים אפשר להשתמש בכמה דגלים, כולל בשביל לסנן את תעבורת הנתונים לפי פרוטוקול, טווח כתובות IP או כיוון (נכנסת או יוצאת). למידע נוסף על דגלים ברפליקציה של חבילות נתונים
התיאור של נקודות הקצה של Cloud IDS
אתם יכולים להיעזר בהוראות שכאן כדי לתאר את נקודות הקצה של IDS.
המסוף
נכנסים לדף IDS Endpoints במסוף Google Cloud .
בדף IDS Endpoints, לוחצים על השם של נקודת הקצה. הדף Endpoint details ייפתח.
gcloud
כדי להוסיף לנקודת הקצה תיאור, משתמשים בפקודה gcloud ids endpoints describe.
gcloud ids endpoints describe ENDPOINT_NAME \
[--project=PROJECT_ID] \
[--zone=ZONE] \
[GCLOUD_WIDE_FLAG...]
מחליפים את מה שכתוב בשדות הבאים:
-
ENDPOINT_NAME: השם או המזהה של נקודת הקצה -
PROJECT_ID: מזהה הפרויקט -
ZONE: התחום של נקודת הקצה
API
כדי לקבל את נקודת הקצה של Cloud IDS, משתמשים בבקשת HTTP GET כמו זו שכאן, ומחליפים את המשתנים לפי הצורך:
GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
איך רואים את רשימת נקודות הקצה של Cloud IDS
אתם יכולים להיעזר בהוראות שכאן כדי לראות רשימה עם כל נקודות הקצה של IDS.
המסוף
נכנסים לדף IDS Endpoints במסוף Google Cloud .
gcloud
כדי לראות את רשימת נקודות הקצה של IDS, משתמשים בפקודה gcloud ids endpoints list:
gcloud ids endpoints list \
[--filter=EXPRESSION] \
[--limit=LIMIT] \
[--page-size=PAGE_SIZE] \
[--sort-by=[FIELD,...]] \
[--uri] \
[GCLOUD_WIDE_FLAG...]
מחליפים את מה שכתוב בשדות הבאים:
-
EXPRESSION: הוספת מסנן בוליאני לכל משאב שיופיע ברשימה. אם הערך של הביטוי הוא True, המשאב יופיע. -
LIMIT: המספר המקסימלי של המשאבים שיופיעו ברשימה -
PAGE_SIZE: המספר המקסימלי של המשאבים שיופיעו בכל דף -
FIELD: רשימה מופרדת בפסיקים של שמות מפתחות של שדות משאבים, שלפיהם רשימת המשאבים תמוין
API
כדי לראות רשימה של כל נקודות הקצה של Cloud IDS בתחום מסוים, משתמשים בבקשת HTTP GET כמו זו שכאן, ומחליפים את המשתנים לפי הצורך:
GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints
אם רוצים לראות רשימה של כל נקודות הקצה של Cloud IDS בכל התחומים, אפשר להחליף את ZONE במקף, כמו כאן:
GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/-/endpoints
איך מוחקים נקודות קצה של Cloud IDS
אתם יכולים להיעזר בהוראות שכאן כדי למחוק נקודות קצה של IDS.
המסוף
נכנסים לדף IDS Endpoints במסוף Google Cloud .
בדף IDS Endpoints, לוחצים על השם של נקודת הקצה. הדף Endpoint details ייפתח.
לוחצים על Delete Endpoint.
gcloud
כדי למחוק את נקודת הקצה, משתמשים בפקודה gcloud ids endpoints delete.
gcloud ids endpoints delete ENDPOINT_NAME \
[--project=PROJECT_ID] \
[--zone=ZONE] \
[--no-async] \
[GCLOUD_WIDE_FLAG...]
מחליפים את מה שכתוב בשדות הבאים:
-
ENDPOINT_NAME: השם או המזהה של נקודת הקצה -
PROJECT_ID: מזהה הפרויקט -
ZONE: התחום של נקודת הקצה
API
כדי למחוק את נקודת הקצה של Cloud IDS, משתמשים בבקשת HTTP DELETE כמו זו שכאן, ומחליפים את המשתנים לפי הצורך:
DELETE https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
הגדרת חריגות לאיומים (לא חובה)
אם יש איומים שהם רעשי רקע או שלא צריך לדווח עליהם, אתם יכולים להשתמש בדגל --threat-exceptions עם המזהים שלהם כשאתם יוצרים או מעדכנים את נקודת הקצה של Cloud IDS, והם יוחרגו. בדוגמה שכאן, אנחנו מעדכנים את נקודת הקצה של Cloud IDS ENDPOINT_NAME כדי להחריג את מזהי האיומים THREAT_ID1 ו-THREAT_ID2:
gcloud ids endpoints update ENDPOINT_NAME \
--threat-exceptions=THREAT_ID1,THREAT_ID2
איך רואים את יומני האיומים
אתם יכולים להיעזר בהוראות שכאן כדי לבדוק אם נוצרו יומני איומים.
במסוף Google Cloud , פותחים את הדף IDS Threats.
לוחצים על שם האיום כדי לפתוח את דף הפרטים שלו (Threat details).
חוזרים לכרטיסייה Threats.
לוחצים על התפריט מימין לנקודת הקצה של IDS ואז על View threat logs.