AWS S3-Serverzugriffslogs erfassen
Parserversion: 4.0
In diesem Dokument wird beschrieben, wie Sie AWS S3-Serverzugriffslogs erfassen, indem Sie einen Google Security Operations-Feed einrichten. Der Parser extrahiert Felder mithilfe von Grok-Mustern, verarbeitet potenzielle JSON-Eingaben und ordnet die extrahierten Felder dem UDM zu. Es führt Datentransformationen, Typkonvertierungen und bedingte Logik basierend auf dem Vorhandensein und den Werten bestimmter Felder aus, um eine genaue UDM-Darstellung zu gewährleisten.
Hinweis
Folgende Voraussetzungen müssen erfüllt sein:
- Google SecOps-Instanz
- Privilegierter Zugriff auf AWS
AWS S3-Serverzugriffs-Logging konfigurieren
Google SecOps unterstützt die Logerfassung mit Amazon S3 über Amazon SQS.
- Melden Sie sich in der AWS Management Console an.
- Rufen Sie die Amazon S3-Konsole auf.
- Gehen Sie zu Amazon S3 > Buckets.
- Wählen Sie einen vorhandenen Bucket aus oder erstellen Sie einen neuen.
- Klicken Sie auf Eigenschaften.
- Klicken Sie im Abschnitt Serverzugriffs-Logging auf Bearbeiten.
- Wählen Sie Aktivieren aus.
- Geben Sie im Feld Ziel-Bucket einen Namen für den neuen Bucket ein, an den die Logeintragsobjekte gesendet werden sollen, oder wählen Sie einen vorhandenen Bucket als Ziel aus.
- Klicken Sie auf Änderungen speichern.
- Wenn Sie die SQS-Warteschlange für den S3-Bucket erstellen möchten, konfigurieren Sie eine Amazon SQS-Instanz mit dem S3-Speicher. Weitere Informationen finden Sie unter Bucket für Benachrichtigungen konfigurieren (SNS-Thema oder SQS-Warteschlange).
Ermitteln Sie anhand des Dienstes und der Region die Endpunkte für die Verbindung. Weitere Informationen finden Sie in der folgenden AWS-Dokumentation:
- Informationen zu Logging-Quellen finden Sie unter AWS Identity and Access Management – Endpunkte und Kontingente.
- Informationen zu S3-Logging-Quellen finden Sie unter Endpunkte und Kontingente für Amazon Simple Storage Service.
- Informationen zu SQS-Logging-Quellen finden Sie unter Endpunkte und Kontingente für Amazon Simple Queue Service.
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte, um Feeds in der Google SecOps-Plattform einzurichten:
- Einstellungen > Datenverwaltung > Feeds > Neuen Feed hinzufügen (auf einer reinen SIEM-Plattform: Einstellungen > Feeds > Neuen Feed hinzufügen)
- Content Hub > Content-Pakete > Jetzt starten
AWS S3-Dienstzugriffsfeed einrichten
- Klicken Sie auf das Paket Amazon Cloud Platform.
- Suchen Sie den Logtyp AWS S3 Service Access.
- Google SecOps unterstützt die Logerfassung mithilfe einer Zugriffsschlüssel-ID und einer geheimen Methode. Informationen zum Erstellen der Zugriffsschlüssel-ID und des Secrets finden Sie unter Toolauthentifizierung mit AWS konfigurieren.
Geben Sie die Werte in den folgenden Feldern an.
- Quelltyp: Amazon SQS V2
- Warteschlangenname: Der Name der SQS-Warteschlange, aus der gelesen werden soll.
- S3-URI: Der Bucket-URI.
s3://your-log-bucket-name/- Ersetzen Sie
your-log-bucket-namedurch den tatsächlichen Namen Ihres S3-Buckets.
- Ersetzen Sie
Optionen zum Löschen der Quelle: Wählen Sie die Löschoption entsprechend Ihren Einstellungen für die Aufnahme aus.
Maximales Dateialter: Dateien einschließen, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.
SQS Queue Access Key ID: Ein Konto-Zugriffsschlüssel, der ein alphanumerischer String mit 20 Zeichen ist.
Geheimer Zugriffsschlüssel für SQS-Warteschlange: Ein Konto-Zugriffsschlüssel, der ein alphanumerischer String mit 40 Zeichen ist.
Erweiterte Optionen
- Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
- Asset-Namespace: Der mit dem Feed verknüpfte Namespace.
- Aufnahme-Labels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.
Klicken Sie auf Feed erstellen.
Weitere Informationen zum Konfigurieren mehrerer Feeds für verschiedene Logtypen innerhalb dieser Produktfamilie finden Sie unter Feeds nach Produkt konfigurieren.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
aclRequired |
target.resource.attribute.labels.key: „aclRequired“target.resource.attribute.labels.value: Wert von aclRequired |
Direkt aus dem Rohprotokollfeld aclRequired zugeordnet. |
authenticationtype |
extensions.auth.auth_details |
Direkt aus dem Rohprotokollfeld authenticationtype zugeordnet. |
bucket |
target.resource.name |
Direkt aus dem Rohprotokollfeld bucket zugeordnet. |
bucket |
target.resource.resource_type: "STORAGE_BUCKET" |
Der Parser setzt resource_type auf „STORAGE_BUCKET“, wenn das Feld bucket vorhanden ist. |
bucketowner |
target.resource.product_object_id |
Direkt aus dem Rohprotokollfeld bucketowner zugeordnet. |
bytes_sent |
network.sent_bytes |
Wird direkt aus dem Rohlogfeld bytes_sent zugeordnet, nachdem es in eine Ganzzahl ohne Vorzeichen umgewandelt und „-“ durch „0“ ersetzt wurde. |
ciphersuite |
network.application_protocol: „HTTPS“ |
Der Parser setzt application_protocol auf „HTTPS“, wenn das Feld ciphersuite vorhanden ist. |
ciphersuite |
network.tls.cipher |
Direkt aus dem Rohprotokollfeld ciphersuite zugeordnet. |
errorcode |
security_result.action_details |
Direkt aus dem Rohprotokollfeld errorcode zugeordnet. |
errorcode |
security_result.action: „BLOCK“ |
Der Parser setzt action auf „BLOCK“, wenn das Feld errorcode „AccessDenied“ enthält (Groß-/Kleinschreibung wird nicht berücksichtigt). |
hostheader |
target.hostname |
Aus dem Rohprotokollfeld hostheader extrahiert, wobei die Portnummer möglicherweise entfernt wurde. |
hostheader |
target.port |
Wird aus dem Rohprotokollfeld hostheader extrahiert, wenn eine Portnummer vorhanden ist. |
hostid |
target.resource.attribute.labels.key: „S3 Extended Request ID“target.resource.attribute.labels.value: Wert von hostid |
Direkt aus dem Rohprotokollfeld hostid zugeordnet. |
http_capture |
network.http.method |
Die HTTP-Methode wird aus dem Feld http_capture extrahiert. |
http_capture |
network.http.version |
Die HTTP-Version wird aus dem Feld http_capture extrahiert. |
http_capture |
target.url |
Die Ziel-URL wird mit hostheader und http_request_uri (aus http_capture extrahiert) erstellt, wobei je nach Vorhandensein von ciphersuite das Präfix „http://“ oder „https://“ verwendet wird. |
httpstatus |
network.http.response_code |
Wird direkt aus dem Rohlogfeld httpstatus zugeordnet, nachdem es in eine Ganzzahl konvertiert wurde. |
object_version_id |
target.resource.product_object_id |
Direkt aus dem Rohprotokollfeld object_version_id zugeordnet. |
objectsize |
target.file.size |
Wird direkt aus dem Rohlogfeld objectsize zugeordnet, nachdem es in eine Ganzzahl ohne Vorzeichen umgewandelt und „-“ durch „0“ ersetzt wurde. |
operation |
metadata.product_event_type |
Direkt aus dem Rohprotokollfeld operation zugeordnet. |
referrer |
network.http.referral_url |
Wird direkt aus dem Rohlogfeld referrer zugeordnet, nachdem Anführungszeichen entfernt wurden. |
remoteip |
metadata.event_type: „USER_RESOURCE_ACCESS“ |
Der Parser setzt den event_type auf „USER_RESOURCE_ACCESS“, wenn das Feld remoteip leer ist. |
remoteip |
principal.ip |
Direkt aus dem Rohprotokollfeld remoteip zugeordnet. |
requester |
target.resource.attribute.labels.key: „Access Point ARN“target.resource.attribute.labels.value: Wert von requester |
Direkt aus dem Rohprotokollfeld requester zugeordnet. |
requester_user |
principal.user.userid |
Direkt aus dem Rohprotokollfeld requester_user zugeordnet. |
requestid |
network.session_id |
Direkt aus dem Rohprotokollfeld requestid zugeordnet. |
request_time_ms |
network.session_duration.nanos |
Wird direkt aus dem Rohlogfeld request_time_ms zugeordnet, nachdem es in eine Ganzzahl konvertiert, „-“ durch „0“ ersetzt und mit Nullen aufgefüllt wurde, um Nanosekunden darzustellen. |
signatureversion |
target.resource.attribute.labels.key: „Signaturversion“target.resource.attribute.labels.value: Wert von signatureversion |
Direkt aus dem Rohprotokollfeld signatureversion zugeordnet. |
time |
metadata.event_timestamp |
Aus dem Rohprotokollfeld time geparst und in einen Zeitstempel konvertiert. |
tlsVersion |
network.tls.version |
Direkt aus dem Rohprotokollfeld tlsVersion zugeordnet. |
useragent |
network.http.user_agent |
Wird direkt aus dem Rohprotokollfeld useragent zugeordnet, nachdem Anführungszeichen entfernt wurden. |
| (Parser-Logik) | metadata.event_type: „NETWORK_HTTP“ |
Der Parser legt den Standard-event_type auf „NETWORK_HTTP“ fest. |
| (Parser-Logik) | metadata.log_type: "AWS_S3_SERVER_ACCESS" |
Der Parser setzt log_type auf „AWS_S3_SERVER_ACCESS“. |
| (Parser-Logik) | metadata.product_name: „AWS S3 Server Access“ |
Der Parser setzt product_name auf „AWS S3 Server Access“. |
| (Parser-Logik) | metadata.product_version: „HTTP/http_version“ |
Der Parser legt den product_version mithilfe des extrahierten http_version fest. |
| (Parser-Logik) | metadata.vendor_name: „AMAZON“ |
Der Parser setzt vendor_name auf „AMAZON“. |
| (Parser-Logik) | network.application_protocol: „HTTP“ |
Der Parser setzt application_protocol auf „HTTP“, wenn das Feld ciphersuite nicht vorhanden ist. |
| (Parser-Logik) | timestamp |
Der Parser setzt das Ereignis timestamp auf die aktuelle Zeit, wenn das Ereignis verarbeitet wird. |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten