איסוף יומני גישה של 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)

  1. עוברים אל AWS Console > API Gateway.
  2. לממשקי 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).

  3. ל-HTTP APIs:

    • בוחרים באפשרות API > Monitor > Logging (מעקב > מעקב > רישום ביומן).
    • בוחרים באפשרות שלב > עריכה.
    • מפעילים את האפשרות רישום ביומן של גישה.
    • משתמשים באותו פורמט יומן JSON שצוין למעלה.
    • קבוצת יומנים של CloudWatch Logs: בוחרים או יוצרים קבוצת יומנים (לדוגמה, /aws/apigateway/access).
  4. לוחצים על Save.

הגדרת פיד ב-Google SecOps להטמעה של יומנים מ-Amazon API Gateway

  1. עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
  2. לוחצים על + הוספת פיד חדש.
  3. בשדה Feed name, מזינים Amazon API Gateway - CloudWatch via Firehose.
  4. בוחרים באפשרות Amazon Data Firehose בתור סוג המקור.
  5. בוחרים באפשרות Amazon API Gateway בתור סוג היומן.
  6. לוחצים על הבא.
  7. מציינים ערכים לפרמטרים הבאים של הקלט:
    • תו מפריד לספליט: אופציונלי n
    • מרחב שמות של נכס: aws.api_gateway
    • תוויות של הטמעת נתונים: לדוגמה, source=apigw_access, aws_region=<your-region>
  8. לוחצים על הבא.
  9. בודקים את הגדרות הפיד ולוחצים על שליחה.
  10. בפרטים של הפיד, לוחצים על יצירת מפתח סודי ומעתיקים את המפתח הסודי.
  11. מעתיקים את כתובת ה-URL של נקודת הקצה של הפיד מסוג HTTPS מתוך פרטי נקודת הקצה.
  12. יוצרים מפתח Google Cloud API בAPIs & Services > Credentials > Create credentials > API key, ומגבילים אותו ל-Chronicle API.
  13. מעתיקים את מפתח ה-API ושומרים אותו במקום בטוח.

הגדרה של Amazon Kinesis Data Firehose (ישירות ל-Google SecOps)

  1. ב-AWS Console, עוברים אל Kinesis > Data Firehose > Create delivery stream.
  2. מזינים את פרטי ההגדרה הבאים:
    • מקור: בוחרים באפשרות Direct PUT or other sources (העלאה ישירה או מקורות אחרים).
    • יעד: בוחרים באפשרות נקודת קצה (endpoint) מסוג HTTP.
    • כתובת URL של נקודת קצה (endpoint) מסוג HTTP: מזינים ENDPOINT_URL?key=API_KEY (משתמשים בכתובת ה-URL של נקודת הקצה מסוג HTTPS של הפיד ובמפתח ה-API מהשלב הקודם).
    • שיטת HTTP: בוחרים באפשרות POST.
    • מפתח גישה: מדביקים את המפתח הסודי שנוצר בפיד.
    • הצעות לאגירת נתונים: מגדירים את שטח אחסון זמני = ‎1 MiB, הפסקה בין פגישות = 60 שניות.
    • דחיסה: בוחרים באפשרות מושבת.
    • גיבוי S3: בוחרים באפשרות מושבת.
    • משאירים את הגדרות ניסיון חוזר ורישום ביומן כברירת מחדל.
  3. לוחצים על יצירת מקור נתונים. (לדוגמה, cwlogs-to-secops).

הגדרת הרשאות IAM והרשמה לקבוצת היומנים

  1. ב-AWS Console, עוברים אל IAM > Policies > Create policy > JSON.
    1. בעורך ה-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 ובמזהה החשבון שלכם.
  2. נותנים שם למדיניות CWLtoFirehoseWrite ולוחצים על Create policy (יצירת מדיניות).

  3. עוברים אל IAM > Roles > Create role (ניהול זהויות וגישה > תפקידים > יצירת תפקיד).

  4. בוחרים באפשרות Custom trust policy ומזינים את הפרטים הבאים:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "logs.<your-region>.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    
  5. מצרפים את המדיניות CWLtoFirehoseWrite לתפקיד.

  6. נותנים לתפקיד את השם CWLtoFirehoseRole ולוחצים על יצירת תפקיד.

  7. עוברים אל CloudWatch > Logs > Log groups.

  8. בוחרים את קבוצת היומנים API Gateway שיצרתם קודם.

  9. פותחים את הכרטיסייה מסנני מינוי ולוחצים על יצירה.

  10. בוחרים באפשרות Create Amazon Kinesis Data Firehose subscription filter (יצירת מסנן מינוי ל-Amazon Kinesis Data Firehose).

  11. קובעים את ההגדרות הבאות:

    • יעד: זרם משלוח cwlogs-to-secops.
    • מתן הרשאה: תפקיד CWLtoFirehoseRole.
    • שם המסנן: מזינים all-events.
    • תבנית סינון: אם רוצים לשלוח את כל האירועים, משאירים את השדה הזה ריק.
  12. לוחצים על התחלת השידור.

שנה רישום

צפייה ביומן השינויים של כלי הניתוח הזה

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.