AWS API Gateway-Zugriffslogs erfassen

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 im großen Maßstab. Mithilfe von Zugriffslogs können Sie die API-Nutzung überwachen und Probleme beheben. Durch diese Integration werden diese Logs zur Analyse und zum Monitoring in Google SecOps gestreamt.

Hinweise

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 (Zugriffsprotokollierung 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. Bei 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 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. 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 endpoint URL (HTTPS-Endpunkt-URL für Feed) aus Endpoint Information (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 Google SecOps 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 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 geheimen Schlüssel ein.
    • Pufferungshinweise: Legen Sie Puffergröße = 1 MiB und Pufferintervall = 60 Sekunden fest.
    • Komprimierung: Wählen Sie Deaktiviert aus.
    • S3-Sicherung: Wählen Sie Deaktiviert aus.
    • Behalten Sie die Standardeinstellungen für retry und logging bei.
  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 > Policies > Create policy > 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 groups auf.

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

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

  10. Wählen Sie Amazon Kinesis Data Firehose-Abo-Filter 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.

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