AWS API Gateway-Zugriffslogs erfassen

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 im großen Maßstab. Zugriffslogs helfen, die API-Nutzung zu überwachen und Probleme zu beheben. Mit 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-Zugriffslogging aktivieren (für CloudWatch Logs)

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

    • Öffnen Sie Ihre Stufe > Logs/Tracing > Zugriffslogging 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 Stufe > Bearbeiten aus.
    • Aktivieren Sie Zugriffslogging.
    • 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 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
    • Aufnahmelabels: 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 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 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 > Bereitstellungsstream erstellen auf.
  2. Geben Sie die folgenden Konfigurationsdetails an:
    • Quelle: Wählen Sie Direktes 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 geheimen Schlüssel ein.
    • Pufferhinweise: Legen Sie Puffergröße = 1 MiB und Pufferintervall = 60 Sekunden fest.
    • Komprimierung: Wählen Sie Deaktiviert aus.
    • S3-Backup: Wählen Sie Deaktiviert aus.
    • Behalten Sie die Standardeinstellungen für Wiederholung und Logging bei.
  3. Klicken Sie auf Bereitstellungsstream erstellen. (Beispiel: cwlogs-to-secops)

IAM-Berechtigungen konfigurieren und 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. Rufen Sie IAM > Rollen > Rolle erstellen auf.

  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 Abonnementfilter und klicken Sie auf Erstellen.

  10. Wählen Sie Amazon Kinesis Data Firehose-Abonnementfilter erstellen aus.

  11. Nehmen Sie folgende Einstellungen vor:

    • Ziel: Bereitstellungsstream 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.

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