Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden von Amazon-S3-Serverzugriffsprotokollen zur Identifizierung von Anforderungen
Sie können mittels Amazon-S3-Serverzugriffsprotokollen Amazon-S3-Anforderungen identifizieren.
Anmerkung
-
Um Amazon S3 S3-Anfragen zu identifizieren, empfehlen wir, AWS CloudTrail Datenereignisse anstelle von Amazon S3 S3-Serverzugriffsprotokollen zu verwenden. CloudTrail Datenereignisse sind einfacher einzurichten und enthalten mehr Informationen. Weitere Informationen finden Sie unter Identifizieren von Amazon S3 S3-Anfragen mithilfe von CloudTrail.
-
Je nachdem, wie viele Zugriffsanfragen Sie erhalten, erfordert die Analyse Ihrer Protokolle möglicherweise mehr Ressourcen oder Zeit als die Verwendung von CloudTrail Datenereignissen.
Themen
Abfragen von Zugriffsprotokollen für Anforderungen über Amazon Athena
Sie können Amazon-S3-Anforderungen mit Amazon-S3-Zugriffsprotokollen mithilfe von Amazon Athena identifizieren.
Amazon S3 speichert Server-Zugriffsprotokolle als Objekte in einem S3-Bucket. Es ist oft einfacher, ein Tool zu verwenden, mit dem die Protokolle in Amazon S3 analysiert werden können. Athena unterstützt die Analyse von S3-Objekten und kann zur Abfrage von Amazon-S3-Zugriffsprotokollen verwendet werden.
Beispiel
Das folgende Beispiel zeigt, wie Sie Amazon-S3-Server-Zugriffsprotokolle in Amazon Athena abfragen können. Ersetzen Sie die in den folgenden Beispielen durch eigene Daten.user input placeholders
Anmerkung
Zur Angabe eines Amazon-S3-Speicherorts in einer Athena-Abfrage müssen Sie einen S3-URI für den Ziel-Bucket bereitstellen, in dem Ihre Protokolle bereitgestellt werden. Dieser URI muss den Bucket-Namen und das Präfix im folgenden Format enthalten: s3:// /amzn-s3-demo-bucket1-logs/prefix
Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/
. -
Führen Sie im Abfrage-Editor einen Befehl wie den folgenden aus. Ersetzen Sie
durch den Namen, den Sie Ihrer Datenbank geben möchten.s3_access_logs_dbCREATE DATABASEs3_access_logs_dbAnmerkung
Es hat sich bewährt, die Datenbank in derselben Datenbank AWS-Region wie Ihren S3-Bucket zu erstellen.
-
Führen Sie im Abfrage-Editor einen Befehl wie den folgenden aus, um in der in Schritt 2 erstellten Datenbank ein Tabellenschema zu erstellen. Ersetzen Sie
durch den Namen, den Sie Ihrer Tabelle geben möchten. Die Datentypwertes3_access_logs_db.mybucket_logsSTRINGundBIGINTsind die Zugriffsprotokolleigenschaften. Sie können diese Eigenschaften in Athena abfragen. Geben Sie fürLOCATIONwie oben erwähnt den Pfad von S3-Bucket und Präfix ein. -
Wählen Sie im Navigationsbereich unter Database (Datenbank) die Datenbank aus.
-
Wählen Sie unter Tables (Tabellen)neben dem Namen der Tabelle Preview table (Tabellenvorschau) aus.
Im Fensterbereich Results (Ergebnisse) sollten Daten aus den Server-Zugriffsprotokollen angezeigt werden, also
bucketowner,bucket,requestdatetimeusw. Dies bedeutet, dass die Athena-Tabelle erfolgreich erstellt wurde. Sie können jetzt die Amazon-S3-Server-Zugriffsprotokolle abfragen.
Beispiel– Anzeigen, wer ein Objekt um welche Uhrzeit (Zeitstempel, IP-Adresse und IAM-Benutzer) gelöscht hat
SELECT requestdatetime, remoteip, requester, key FROMs3_access_logs_db.mybucket_logsWHERE key = 'images/picture.jpg' AND operation like '%DELETE%';
Beispiel– Anzeigen aller Vorgänge, die von einem IAM-Benutzer ausgeführt wurden
SELECT * FROMs3_access_logs_db.mybucket_logsWHERE requester='arn:aws:iam::123456789123:user/user_name';
Beispiel– Anzeigen aller Vorgänge, die in einem bestimmten Zeitraum für ein Objekt ausgeführt wurden
SELECT * FROMs3_access_logs_db.mybucket_logsWHERE Key='prefix/images/picture.jpg' AND parse_datetime(requestdatetime,'dd/MMM/yyyy:HH:mm:ss Z') BETWEEN parse_datetime('2017-02-18:07:00:00','yyyy-MM-dd:HH:mm:ss') AND parse_datetime('2017-02-18:08:00:00','yyyy-MM-dd:HH:mm:ss');
Beispiel– Anzeigen der Menge der in einem festgelegten Zeitraum an eine bestimmten IP-Adresse übertragenen Daten
SELECT coalesce(SUM(bytessent), 0) AS bytessenttotal FROMs3_access_logs_db.mybucket_logsWHERE remoteip='192.0.2.1' AND parse_datetime(requestdatetime,'dd/MMM/yyyy:HH:mm:ss Z') BETWEEN parse_datetime('2022-06-01','yyyy-MM-dd') AND parse_datetime('2022-07-01','yyyy-MM-dd');
Beispiel– Findet Anforderungs-IDs für HTTP 5xx-Fehler in einem bestimmten Zeitraum
SELECT requestdatetime, key, httpstatus, errorcode, requestid, hostid FROMs3_access_logs_db.mybucket_logsWHERE httpstatus like '5%' AND timestamp BETWEEN '2024/01/29' AND '2024/01/30'
Identifizieren von Signature Version 2-Anfragen
Sie können Serverzugriffsprotokolle verwenden, um Signature Version 2-Anfragen zu identifizieren. Einzelheiten zur Abfrage von Protokollen mit Amazon Athena finden Sie im Abschnitt Athena-Abfragen unter. Bereitstellung von Protokollen an einen Amazon S3 S3-Allzweck-Bucket
Identifizieren von Objektzugriffsanforderungen
Sie können Serverzugriffsprotokolle verwenden, um Objektzugriffsmuster zu identifizieren. Einzelheiten zur Abfrage von Protokollen mit Amazon Athena finden Sie im Abschnitt Athena-Abfragen unter. Bereitstellung von Protokollen an einen Amazon S3 S3-Allzweck-Bucket