AWS API Gateway-Zugriffslogs erfassen

Parserversion: 7.0

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Amazon API Gateway-Zugriffslogs mit AWS CloudWatch Logs und Kinesis Data Firehose in Google Security Operations aufnehmen. Amazon API Gateway bietet REST- und HTTP-APIs zum Erstellen und Verwalten von APIs in großem Umfang. Zugriffslogs helfen bei der Überwachung der API-Nutzung und der Fehlerbehebung. Durch diese Integration werden diese Logs zur Analyse und zum Monitoring in Google SecOps gestreamt.

Hinweis

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Google SecOps-Instanz
  • Privilegierter Zugriff auf AWS

Amazon API Gateway-Zugriffs-Logging (für CloudWatch-Logs) aktivieren

  1. Rufen Sie die AWS-Konsole > API Gateway auf.
  2. Für REST APIs:

    • Öffnen Sie Ihre Phase > Logs/Tracing > Zugriffs-Logging aktivieren.
    • Logformat: Wählen Sie JSON aus.

      {
        "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-Loggruppe: Wählen Sie eine Loggruppe aus oder erstellen Sie eine (z. B. /aws/apigateway/access).

  3. Für HTTP APIs:

    • Wählen Sie Ihre API > Monitor > Logging aus.
    • Wählen Sie Phase > Bearbeiten aus.
    • Aktivieren Sie Zugriffs-Logging.
    • Verwenden Sie dasselbe JSON-Logformat wie oben.
    • CloudWatch Logs-Loggruppe: Wählen Sie eine Loggruppe aus oder erstellen Sie eine (z. B. /aws/apigateway/access).
  4. Klicken Sie auf Speichern.

Feed in Google SecOps konfigurieren, um Amazon API Gateway-Logs aufzunehmen

  1. Rufen Sie die Einstellungen > Datenverwaltung > Feeds auf. Wenn Sie eine reine SIEM-Plattform verwenden, rufen Sie die Einstellungen > Feeds auf.
  2. Klicken Sie auf + Neuen Feed hinzufügen.
  3. Geben Sie im Feld Feedname Amazon API Gateway - CloudWatch via Firehose ein.
  4. Wählen Sie Amazon Data Firehose als Quelltyp aus.
  5. Wählen Sie Amazon API Gateway als Logtyp aus.
  6. Klicken Sie auf Weiter.
  7. Geben Sie Werte für die folgenden Eingabeparameter an:
    • Trennzeichen für Aufteilung: Optional n
    • Asset-Namespace: aws.api_gateway
    • Labels für Datenaufnahme: z. B. source=apigw_access, aws_region=<your-region>
  8. Klicken Sie auf Weiter.
  9. Überprüfen Sie die Feedkonfiguration und klicken Sie auf Senden.
  10. Klicken Sie in den Details des Feeds auf Geheimen Schlüssel generieren und kopieren Sie den geheimen Schlüssel.
  11. Kopieren Sie die HTTPS-Endpunkt-URL des Feeds aus den Endpunktinformationen.
  12. Erstellen Sie unter APIs und Dienste > Anmeldedaten > Anmeldedaten erstellen > API-Schlüssel einen Google Cloud API-Schlüssel und beschränken Sie ihn auf die Chronicle API.
  13. Kopieren Sie den API-Schlüssel und speichern Sie ihn an einem sicheren Ort.

Amazon Kinesis Data Firehose konfigurieren (direkt an Google SecOps)

  1. Rufen Sie in der AWS-Konsole Kinesis > Data Firehose > Bereitstellungsstream erstellen auf.
  2. Geben Sie die folgenden Konfigurationsdetails an:
    • Quelle: Wählen Sie Direkter PUT oder andere Quellen aus.
    • Ziel: Wählen Sie HTTP-Endpunkt aus.
    • HTTP-Endpunkt-URL: Geben Sie ENDPOINT_URL?key=API_KEY ein (verwenden Sie die HTTPS-Endpunkt-URL des Feeds und den API-Schlüssel aus dem vorherigen Schritt).
    • HTTP-Methode: Wählen Sie POST aus.
    • Zugriffsschlüssel: Fügen Sie den im Feed generierten Secret Key ein.
    • Hinweise zur Zwischenspeicherung: Legen Sie Puffergröße = 1 MiB und Pufferintervall = 60 Sekunden fest.
    • Komprimierung: Wählen Sie Deaktiviert aus.
    • S3-Sicherung: Wählen Sie Deaktiviert aus.
    • Übernehmen Sie die Standardeinstellungen für Wiederholen und Logging.
  3. Klicken Sie auf Bereitstellungsstream erstellen. (Zum Beispiel: cwlogs-to-secops).

IAM-Berechtigungen konfigurieren und Loggruppe abonnieren

  1. Rufen Sie in der AWS-Konsole IAM > Richtlinien > Richtlinie erstellen > JSON auf.
    1. Geben Sie im JSON-Editor die folgende Richtlinie ein:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "firehose:PutRecord",
            "firehose:PutRecordBatch"
          ],
          "Resource": "arn:aws:firehose:<region>:<account-id>:deliverystream/cwlogs-to-secops"
        }
      ]
    }
    
    • Ersetzen Sie <region> und <account-id> durch Ihre AWS-Region und Konto-ID.
  2. Geben Sie der Richtlinie den Namen CWLtoFirehoseWrite und klicken Sie auf Richtlinie erstellen.

  3. Gehen Sie zu IAM > Rollen > Rolle erstellen.

  4. Wählen Sie Benutzerdefinierte Vertrauensrichtlinie aus und geben Sie Folgendes ein:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "logs.<your-region>.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    
  5. Hängen Sie die Richtlinie CWLtoFirehoseWrite an die Rolle an.

  6. Geben Sie der Rolle den Namen CWLtoFirehoseRole und klicken Sie auf Rolle erstellen.

  7. Rufen Sie CloudWatch > Logs > Loggruppen auf.

  8. Wählen Sie die zuvor erstellte API Gateway-Loggruppe aus.

  9. Öffnen Sie den Tab Abofilter und klicken Sie auf Erstellen.

  10. Wählen Sie Create Amazon Kinesis Data Firehose subscription filter aus.

  11. Nehmen Sie folgende Einstellungen vor:

    • Ziel: Lieferstream cwlogs-to-secops.
    • Berechtigung gewähren: Rolle CWLtoFirehoseRole.
    • Filtername: Geben Sie all-events ein.
    • Filtermuster: Lassen Sie dieses Feld leer, um alle Ereignisse zu senden.
  12. Klicken Sie auf Streaming starten.

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten