Amazon S3-Server-Zugriffsprotokollierung - Amazon Simple Storage Service

Dieses Handbuch wird nicht mehr aktualisiert. Aktuelle Informationen und Anweisungen finden Sie im neuen Amazon S3-Benutzerhandbuch.

Amazon S3-Server-Zugriffsprotokollierung

Die Server-Zugriffsprotokollierung bietet detaillierte Aufzeichnungen über die Anforderungen, die an einen Bucket gestellt wurden. Server-Zugriffsprotokolle sind für viele Anwendungen nützlich. Beispielsweise können Zugriffsprotokoll-Informationen bei Sicherheits- und Zugriffsprüfungen nützlich sein. Außerdem erfahren Sie damit mehr über Ihren Kundenstamm und erhalten einen Überblick über Ihre Amazon-S3-Rechnung.

Anmerkung

Server-Zugriffsprotokolle protokollieren keine Informationen zu Fehlern wegen Umleitungen in falsche Regionen, die nach dem 20. März 2019 gestartet wurden. Fehler bei der Umleitung zu Regionen treten auf, wenn eine Anforderung für ein Objekt oder einen Bucket außerhalb der Region gestellt wird, in der sich der Bucket befindet.

Vorgehensweise zum Aktivieren der Server-Zugriffsprotokollierung

Um Zugriffsanforderungen für Ihren Bucket nachzuverfolgen, können Sie die Server-Zugriffsprotokollierung aktivieren. Jeder Zugriffsprotokolldatensatz enthält Details über eine Zugriffsanforderung, z. B. Auftraggeber, Bucket-Name, Anforderungszeit, Anforderungsaktion, Antwortstatus und Fehlercode, falls relevant.

Es fallen keine zusätzlichen Gebühren für die Aktivierung der Server-Zugriffsprotokollierung in einem Amazon S3-Bucket an, und es wird Ihnen nicht in Rechnung gestellt, wenn die Protokolle mit PUT in Ihrem Bucket abgelegt werden. Für die Speicherung der Protokolldateien, die das System an Ihren Bucket überträgt, fallen die normalen Gebühren für die Speicherung an. Sie können diese Protokolldateien jederzeit löschen. Nachfolgende Lesevorgänge und andere Anforderungen an diese Protokolldateien werden wie bei jedem anderen Objekt normal berechnet, einschließlich Datenübertragungsgebühren.

Die Protokollierung ist standardmäßig deaktiviert. Wenn die Protokollierung aktiviert ist, werden die Protokolle in einem Bucket in derselben AWS-Region wie der des Quellbereichs gespeichert.

So aktivieren Sie die Protokollierung:

  1. Aktivieren Sie die Protokollierung für den Amazon S3-Bucket, den Sie überwachen möchten. Wir bezeichnen diesen Bucket als Quell-Bucket.

  2. Gewähren Sie der Amazon S3-Protokollbereitstellungsgruppe Schreibberechtigung für den Bucket, in dem die Zugriffsprotokolle gespeichert werden sollen. Wir bezeichnen diesen Bucket als Ziel-Bucket.

Anmerkung
  • In Amazon S3 können Sie die Berechtigung zum Übermitteln von Zugriffsprotokollen über Bucket-Zugriffskontrolllisten (ACLs) erteilen, jedoch nicht über die Bucket-Richtlinie.

  • Das Hinzufügen von Bedingungen für eine Ablehnung zu einer Bucket-Richtlinie hindert Amazon S3 möglicherweise an der Bereitstellung von Zugriffsprotokollen.

  • Die Standard-Bucket-Verschlüsselung auf dem Zielbucket darf nur verwendet werden, wenn AES256 (SSE-S3) ausgewählt ist. Die SSE-KMS-Verschlüsselung wird nicht unterstützt.

  • S3-Objektsperre kann für den Ziel-Bucket nicht aktiviert werden.

So aktivieren Sie die Protokollzustellung:

  1. Geben Sie den Namen des Ziel-Buckets an, in dem Amazon S3 die Zugriffsprotokolle als Objekte speichern soll. Sowohl der Quell- als auch der Ziel-Bucket müssen sich in derselben AWS-Region befinden und demselben Konto gehören.

    Sie können Protokolle in jeden Bucket speichern lassen, der sich in der gleichen Region wie der Quell-Bucket befindet, einschließlich des Quell-Buckets selbst. Zur einfacheren Protokollverwaltung empfehlen wir jedoch, Zugriffsprotokolle in einem anderen Bucket zu speichern.

    Wenn der Quell- und Ziel-Bucket derselbe sind, werden zusätzliche Protokolle für die Protokolle erstellt, die in den Bucket geschrieben werden. Dies ist möglicherweise nicht ideal, da dies zu einer geringfügigen Erhöhung der Speicherkosten führen könnte. Weiterhin könnten die zusätzlichen Protokolle über Protokolle das Auffinden des gesuchten Protokolls erschweren. Wenn Sie Zugriffsprotokolle im Quell-Bucket speichern, empfehlen wir Ihnen, ein Präfix für alle Protokollobjektschlüssel anzugeben, damit die Objektnamen mit einer gemeinsamen Zeichenfolge beginnen und die Protokollobjekte leichter zu identifizieren sind.

    Schlüsselpräfixe sind auch nützlich, um zwischen Quell-Buckets zu unterscheiden, wenn mehrere Buckets im selben Ziel-Bucket protokolliert werden.

  2. (Optional) Weisen Sie allen Amazon S3-Protokollobjektschlüsseln ein Präfix zu. Das Präfix macht es Ihnen einfacher, die Protokollobjekte zu finden. Wenn Sie beispielsweise den Präfixwert logs/ angeben, beginnt jedes von Amazon S3 erstellte Protokollobjekt mit dem Präfix logs/ in seinem Schlüssel.

    logs/2013-11-01-21-32-16-E568B2907131C0C0

    Das Schlüsselpräfix kann zudem hilfreich sein, wenn Sie die Protokolle löschen. Beispielsweise können Sie eine Lebenszyklus-Konfigurationsregel für Amazon S3 festlegen, nach der Objekte mit einem bestimmten Schlüsselpräfix gelöscht werden. Weitere Informationen finden Sie unter Löschen von Amazon S3-Protokolldateien.

  3. (Optional) Richten Sie Berechtigungen ein, um anderen Benutzern Zugriff auf die generierten Protokolle zu gewähren. Standardmäßig hat nur der Bucket-Eigentümer stets vollen Zugriff auf die Protokollobjekte.

Weitere Informationen zum Aktivieren der Server-Zugriffsprotokollierung finden Sie unter Aktivieren der Protokollierung mithilfe der Konsole und Programmgesteuertes Aktivieren der Protokollierung.

Protokollobjekt-Schlüsselformat

Amazon S3 verwendet das folgende Objektschlüsselformat für die Protokollobjekte, die in den Ziel-Bucket hochgeladen werden:

TargetPrefixYYYY-mm-DD-HH-MM-SS-UniqueString/

Im Schlüssel sind YYYY, mm, DD, HH, MM und SS die Ziffern von Jahr, Monat, Tag, Stunde, Minute bzw. Sekunden des Zeitpunkts, an dem die Protokolldatei übermittelt wurde. Datum und Uhrzeit entsprechen der Zeitzone UTC (Coordinated Universal Time).

Eine Protokolldatei, die zu einem bestimmten Zeitpunkt bereitgestellt wurde, kann Datensätze enthalten, die an einem beliebigen Zeitpunkt davor geschrieben wurden. Es lässt sich nicht feststellen, ob alle Protokoll-Datensätze für ein bestimmtes Zeitintervall bereitgestellt wurden oder nicht.

Die UniqueString-Komponente des Schlüssels verhindert, dass Dateien überschrieben werden. Sie hat keine Bedeutung und wird normalerweise von Protokollverarbeitungssoftware ignoriert.

Der nachfolgende Schrägstrich / ist erforderlich, um das Ende des Präfixes zu kennzeichnen.

Wie werden Protokolle bereitgestellt?

Amazon S3 sammelt periodisch Zugriffsprotokoll-Datensätze, fasst die Datensätze in Protokolldateien zusammen und lädt anschließend die Protokolldateien als Protokollobjekte in Ihren Ziel-Bucket hoch. Wenn Sie die Protokollierung bei mehreren Quell-Buckets aktivieren, die denselben Ziel-Bucket haben, werden die Zugriffsprotokolle für alle diese Quell-Buckets in diesen Ziel-Bucket geladen. Jedes Protokollobjekt gibt jedoch Zugriffsprotokoll-Datensätze für einen bestimmten Quell-Bucket aus.

Amazon S3 verwendet ein spezielles Protokollbereitstellungskonto zum Schreiben der Zugriffsprotokolle, das als Protokollbereitstellungsgruppe bezeichnet wird. Für diese Protokolle gelten die normalen Zugriffskontrollbeschränkungen. Sie müssen der Protokollbereitstellungsgruppe eine Schreibberechtigung für den Ziel-Bucket erteilen, indem Sie einen Rechteerteilungseintrag in die Zugriffskontrollliste (ACL) des Buckets einfügen. Wenn Sie die Amazon S3-Konsole zum Aktivieren der Protokollierung für einen Bucket verwenden, aktiviert die Konsole sowohl die Protokollierung für den Quell-Bucket als auch die Aktualisierung der ACL im Ziel-Bucket, um eine Schreibberechtigung für die Protokollbereitstellungsgruppe zu erteilen.

Best-Effort-Protokollbereitstellung der Server

Server-Zugriffsprotokoll-Datensätze werden auf Best-Effort-Basis bereitgestellt. Die meisten Anforderungen nach einem Bucket, der für die Protokollierung richtig konfiguriert ist, führen zu einem ausgelieferten Protokollsatz. Die meisten Protokollsätze werden innerhalb weniger Stunden nach der Aufnahme geliefert, können aber häufiger geliefert werden.

Die Vollständigkeit und Aktualität der Serverprotokollierung wird nicht garantiert. Der Protokolldatensatz für eine bestimmte Anforderung wird möglicherweise viel später bereitgestellt, als die Anforderung tatsächlich verarbeitet wurde; es kann auch sein, dass er gar nicht bereitgestellt wird. Der Zweck der Serverprotokolle besteht darin, Ihnen einen Überblick über die Art des Datenverkehrs zu und von Ihrem Bucket zu vermitteln. Es passiert selten, das Protokolldatensätze verloren gehen, aber die Server-Protokollierung ist nicht als vollständige Auflistung aller Anforderungen vorgesehen.

Anhand der Best-Effort-Natur der Server-Protokollierungsfunktion ist zu erkennen, dass die Nutzungsberichte, die im AWS-Portal verfügbar sind (Fakturierungs- und Kostenverwaltungsberichte in der AWS-Managementkonsole), eine oder mehrere Zugriffsanforderungen enthalten können, die nicht im bereitgestellten Serverprotokoll angezeigt werden.

Statusänderungen in der Bucket-Protokollierung werden mit der Zeit wirksam

Änderungen am Protokollierungsstatus eines Buckets benötigen einige Zeit, bis sie sich auf die Bereitstellung von Protokolldateien auswirken. Wenn Sie beispielsweise die Protokollierung für einen Bucket aktivieren, werden möglicherweise einige Anforderungen, die in der darauffolgenden Stunde gemacht werden, protokolliert, andere hingegen nicht. Wenn Sie den Ziel-Bucket für die Protokollierung von Bucket A zu Bucket B ändern, werden in der nächsten Stunde einige Protokolle möglicherweise zu Bucket A übermittelt, während andere zu dem neuen Ziel-Bucket B übermittelt werden. In jedem Fall werden die neuen Einstellungen letztendlich ohne weiteres Eingreifen Ihrerseits wirksam.