AWS API Gateway-Zugriffslogs erfassen

Parserversion:7.0

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Amazon API Gateway-Zugriffsprotokolle 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 Maßstab. Mithilfe von Zugriffsprotokollen können Sie die API-Nutzung überwachen und Probleme beheben. Bei dieser Integration werden diese Logs zur Analyse und Überwachung in Google SecOps gestreamt.

Hinweis

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

  • Google SecOps-Instanz
  • Privilegierter Zugriff auf AWS

Amazon API Gateway-Zugriffsprotokollierung (in CloudWatch Logs) aktivieren

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

    • Öffnen Sie Phase > Logs/Tracing > Access 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 SIEM-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 Log type (Protokolltyp) 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 die Aufnahme: z. B. source=apigw_access, aws_region=<your-region>
  8. Klicken Sie auf Weiter.
  9. Prüfen Sie die Feedkonfiguration und klicken Sie auf Senden.
  10. Klicken Sie im Feed Details auf Secret Key generieren und kopieren Sie den Secret Key.
  11. Kopieren Sie die Feed-HTTPS-Endpunkt-URL aus Endpunktinformationen.
  12. Erstellen Sie einen Google Cloud-API-Schlüssel unter APIs und Dienste > Anmeldedaten > Anmeldedaten erstellen > 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 zu Google SecOps)

  1. Rufen Sie in der AWS Console Kinesis > Data Firehose > Create delivery stream auf.
  2. Geben Sie die folgenden Konfigurationsdetails an:
    • Quelle: Wählen Sie Direkte PUT-Anfrage 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 geheimen Schlüssel ein.
    • Pufferhinweise: Legen Sie Puffergröße = 1 MiB und Pufferintervall = 60 Sekunden fest.
    • Komprimierung: Wählen Sie Deaktiviert aus.
    • S3-Sicherung: Wählen Sie Deaktiviert aus.
    • Lassen Sie die Einstellungen für retry und logging unverändert.
  3. Klicken Sie auf Lieferstream erstellen. (Zum Beispiel: cwlogs-to-secops).

IAM-Berechtigungen konfigurieren und die Loggruppe abonnieren

  1. Rufen Sie in der AWS Console 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. Klicken Sie auf 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 > Log-Gruppen auf.

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

  9. Öffnen Sie den Tab Abo-Filter und klicken Sie auf Erstellen.

  10. Wählen Sie Create Amazon Kinesis Data Firehose subscription filter (Amazon Kinesis Data Firehose-Abonnementfilter erstellen) aus.

  11. Nehmen Sie folgende Einstellungen vor:

    • Ziel: Auslieferungsstream cwlogs-to-secops.
    • Berechtigung erteilen: Rolle CWLtoFirehoseRole.
    • Filtername: Geben Sie all-events ein.
    • Filtermuster: Lassen Sie das 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