AWS API Gateway-Zugriffslogs erfassen
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)
- Rufen Sie die AWS Console > API Gateway auf.
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).
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).
Klicken Sie auf Speichern.
Feed in Google SecOps konfigurieren, um Amazon API Gateway-Logs aufzunehmen
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf + Neuen Feed hinzufügen.
- Geben Sie im Feld Feedname
Amazon API Gateway - CloudWatch via Firehoseein. - Wählen Sie Amazon Data Firehose als Quelltyp aus.
- Wählen Sie Amazon API Gateway als Logtyp aus.
- Klicken Sie auf Weiter.
- 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>
- Trennzeichen für Aufteilung: Optional
- Klicken Sie auf Weiter.
- Prüfen Sie die Feedkonfiguration und klicken Sie auf Senden.
- Klicken Sie in den Details des Feeds auf Geheimen Schlüssel generieren und kopieren Sie den geheimen Schlüssel.
- Kopieren Sie die HTTPS-Endpunkt-URL des Feeds aus den Endpunktinformationen.
- 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.
- Kopieren Sie den API-Schlüssel und speichern Sie ihn an einem sicheren Ort.
Amazon Kinesis Data Firehose konfigurieren (direkt zu Google SecOps)
- Rufen Sie in der AWS Console Kinesis > Data Firehose > Bereitstellungsstream erstellen auf.
- 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_KEYein (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.
- Klicken Sie auf Bereitstellungsstream erstellen. (Beispiel:
cwlogs-to-secops)
IAM-Berechtigungen konfigurieren und Loggruppe abonnieren
- Rufen Sie in der AWS Console IAM > Richtlinien > Richtlinie erstellen > JSON auf.
- 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.
Geben Sie der Richtlinie den Namen
CWLtoFirehoseWriteund klicken Sie auf Richtlinie erstellen.Rufen Sie IAM > Rollen > Rolle erstellen auf.
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" } ] }Hängen Sie die Richtlinie
CWLtoFirehoseWritean die Rolle an.Geben Sie der Rolle den Namen
CWLtoFirehoseRoleund klicken Sie auf Rolle erstellen.Rufen Sie CloudWatch > Logs > Loggruppen auf.
Wählen Sie die zuvor erstellte API Gateway-Loggruppe aus.
Öffnen Sie den Tab Abonnementfilter und klicken Sie auf Erstellen.
Wählen Sie Amazon Kinesis Data Firehose-Abonnementfilter erstellen aus.
Nehmen Sie folgende Einstellungen vor:
- Ziel: Bereitstellungsstream
cwlogs-to-secops. - Berechtigung erteilen: Rolle
CWLtoFirehoseRole. - Filtername: Geben Sie
all-eventsein. - Filtermuster: Lassen Sie das Feld leer, um alle Ereignisse zu senden.
- Ziel: Bereitstellungsstream
Klicken Sie auf Streaming starten.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten