איסוף יומני גישה של AWS API Gateway
גרסת מנתח הנתונים: 7.0
במסמך הזה מוסבר איך להטמיע יומני גישה של Amazon API Gateway ב-Google Security Operations באמצעות AWS CloudWatch Logs ו-Kinesis Data Firehose. Amazon API Gateway מספק ממשקי REST ו-HTTP API כדי ליצור ולנהל ממשקי API בקנה מידה נרחב. יומני גישה עוזרים לעקוב אחרי השימוש ב-API ולפתור בעיות. השילוב הזה מעביר את היומנים האלה ל-Google SecOps לצורך ניתוח ומעקב.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מופע של Google SecOps
- גישה מיוחדת ל-AWS
הפעלה של רישום גישה ביומן ב-Amazon API Gateway (ל-CloudWatch Logs)
- עוברים אל AWS Console > API Gateway.
לממשקי REST API:
- פותחים את Stage > Logs/Tracing > enable Access logging (שלב > יומנים/מעקב > הפעלת יומן גישה).
פורמט היומן: בוחרים באפשרות JSON.
{ "requestId":"$context.requestId", "ip":"$context.identity.sourceIp", "requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod", "routeKey":"$context.routeKey", "status":"$context.status", "protocol":"$context.protocol", "responseLength":"$context.responseLength", "integrationLatency":"$context.integrationLatency", "error":"$context.error.message" }קבוצת יומנים של CloudWatch Logs: בוחרים או יוצרים קבוצת יומנים (לדוגמה,
/aws/apigateway/access).
ל-HTTP APIs:
- בוחרים באפשרות API > Monitor > Logging (מעקב > מעקב > רישום ביומן).
- בוחרים באפשרות שלב > עריכה.
- מפעילים את האפשרות רישום ביומן של גישה.
- משתמשים באותו פורמט יומן JSON שצוין למעלה.
- קבוצת יומנים של CloudWatch Logs: בוחרים או יוצרים קבוצת יומנים (לדוגמה,
/aws/apigateway/access).
לוחצים על Save.
הגדרת פיד ב-Google SecOps להטמעה של יומנים מ-Amazon API Gateway
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על + הוספת פיד חדש.
- בשדה Feed name, מזינים
Amazon API Gateway - CloudWatch via Firehose. - בוחרים באפשרות Amazon Data Firehose בתור סוג המקור.
- בוחרים באפשרות Amazon API Gateway בתור סוג היומן.
- לוחצים על הבא.
- מציינים ערכים לפרמטרים הבאים של הקלט:
- תו מפריד לספליט: אופציונלי
n - מרחב שמות של נכס:
aws.api_gateway - תוויות של הטמעת נתונים: לדוגמה,
source=apigw_access,aws_region=<your-region>
- תו מפריד לספליט: אופציונלי
- לוחצים על הבא.
- בודקים את הגדרות הפיד ולוחצים על שליחה.
- בפרטים של הפיד, לוחצים על יצירת מפתח סודי ומעתיקים את המפתח הסודי.
- מעתיקים את כתובת ה-URL של נקודת הקצה של הפיד מסוג HTTPS מתוך פרטי נקודת הקצה.
- יוצרים מפתח Google Cloud API בAPIs & Services > Credentials > Create credentials > API key, ומגבילים אותו ל-Chronicle API.
- מעתיקים את מפתח ה-API ושומרים אותו במקום בטוח.
הגדרה של Amazon Kinesis Data Firehose (ישירות ל-Google SecOps)
- ב-AWS Console, עוברים אל Kinesis > Data Firehose > Create delivery stream.
- מזינים את פרטי ההגדרה הבאים:
- מקור: בוחרים באפשרות Direct PUT or other sources (העלאה ישירה או מקורות אחרים).
- יעד: בוחרים באפשרות נקודת קצה (endpoint) מסוג HTTP.
- כתובת URL של נקודת קצה (endpoint) מסוג HTTP: מזינים
ENDPOINT_URL?key=API_KEY(משתמשים בכתובת ה-URL של נקודת הקצה מסוג HTTPS של הפיד ובמפתח ה-API מהשלב הקודם). - שיטת HTTP: בוחרים באפשרות POST.
- מפתח גישה: מדביקים את המפתח הסודי שנוצר בפיד.
- הצעות לאגירת נתונים: מגדירים את שטח אחסון זמני = 1 MiB, הפסקה בין פגישות = 60 שניות.
- דחיסה: בוחרים באפשרות מושבת.
- גיבוי S3: בוחרים באפשרות מושבת.
- משאירים את הגדרות ניסיון חוזר ורישום ביומן כברירת מחדל.
- לוחצים על יצירת מקור נתונים. (לדוגמה,
cwlogs-to-secops).
הגדרת הרשאות IAM והרשמה לקבוצת היומנים
- ב-AWS Console, עוברים אל IAM > Policies > Create policy > JSON.
- בעורך ה-JSON, מזינים את המדיניות הבאה:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:<region>:<account-id>:deliverystream/cwlogs-to-secops" } ] }- מחליפים את
<region>ואת<account-id>באזור AWS ובמזהה החשבון שלכם.
נותנים שם למדיניות
CWLtoFirehoseWriteולוחצים על Create policy (יצירת מדיניות).עוברים אל IAM > Roles > Create role (ניהול זהויות וגישה > תפקידים > יצירת תפקיד).
בוחרים באפשרות Custom trust policy ומזינים את הפרטים הבאים:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.<your-region>.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }מצרפים את המדיניות
CWLtoFirehoseWriteלתפקיד.נותנים לתפקיד את השם
CWLtoFirehoseRoleולוחצים על יצירת תפקיד.עוברים אל CloudWatch > Logs > Log groups.
בוחרים את קבוצת היומנים API Gateway שיצרתם קודם.
פותחים את הכרטיסייה מסנני מינוי ולוחצים על יצירה.
בוחרים באפשרות Create Amazon Kinesis Data Firehose subscription filter (יצירת מסנן מינוי ל-Amazon Kinesis Data Firehose).
קובעים את ההגדרות הבאות:
- יעד: זרם משלוח
cwlogs-to-secops. - מתן הרשאה: תפקיד
CWLtoFirehoseRole. - שם המסנן: מזינים
all-events. - תבנית סינון: אם רוצים לשלוח את כל האירועים, משאירים את השדה הזה ריק.
- יעד: זרם משלוח
לוחצים על התחלת השידור.
שנה רישום
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.