איסוף יומני גישה ל-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 (מעקב אחרי קריאות ל-API > מעקב > רישום ביומן).
- בוחרים באפשרות שלב > עריכה.
- מפעילים את האפשרות רישום ביומן של גישה.
- משתמשים באותו פורמט יומן 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.
- מספקים את פרטי ההגדרה הבאים:
- מקור: בוחרים באפשרות העלאת PUT ישירה או מקורות אחרים.
- יעד: בוחרים באפשרות נקודת קצה (endpoint) מסוג HTTP.
- כתובת ה-URL של נקודת הקצה (endpoint) בפרוטוקול HTTP: מזינים
ENDPOINT_URL?key=API_KEY(משתמשים בכתובת ה-URL של נקודת הקצה (endpoint) של הפיד בפרוטוקול HTTPS ובמפתח ה-API מהשלב הקודם). - שיטת HTTP: בוחרים באפשרות POST.
- מפתח גישה: מדביקים את המפתח הסודי שנוצר בפיד.
- הצעות לאגירת נתונים: מגדירים את שטח אחסון זמני = 1 MiB, מרווח אגירה = 60 שניות.
- דחיסה: בוחרים באפשרות מושבת.
- גיבוי S3: בוחרים באפשרות מושבת.
- משאירים את ההגדרות של ניסיון חוזר ורישום ביומן כברירת מחדל.
- לוחצים על יצירת מקור נתונים. (לדוגמה,
cwlogs-to-secops).
הגדרת הרשאות IAM והרשמה לקבוצת היומנים
- במסוף AWS, עוברים אל 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ולוחצים על יצירת מדיניות.עוברים אל 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 שיצרתם קודם.
פותחים את הכרטיסייה מסנני מינוי ולוחצים על יצירה.
בוחרים באפשרות יצירת מסנן מינוי ל-Amazon Kinesis Data Firehose.
קובעים את ההגדרות הבאות:
- יעד: זרם העברת נתונים
cwlogs-to-secops. - הענקת הרשאה: תפקיד
CWLtoFirehoseRole. - שם המסנן: מזינים
all-events. - תבנית סינון: משאירים ריק כדי לשלוח את כל האירועים.
- יעד: זרם העברת נתונים
לוחצים על התחלת השידור.
יומן שינויים
צפייה ביומן השינויים של מנתח התוכן הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.