Direkt zum Inhalt

Warum wurden meine Amazon S3-Serverzugriffsprotokolle nicht an meinen Bucket übermittelt?

Lesedauer: 4 Minute
0

Ich habe die Serverzugriffsprotokollierung von Amazon Simple Storage Service (Amazon S3) eingerichtet. Amazon S3 hat die Serverzugriffsprotokolle jedoch nicht an den Amazon S3-Ziel-Bucket übermittelt.

Kurzbeschreibung

Wenn du die Protokollierung des Serverzugriffs zum ersten Mal aktivierst oder den Ziel-Bucket für Protokolle änderst, dauert die Implementierung der Änderungen einige Zeit. Amazon S3 protokolliert Lieferanfragen möglicherweise nicht innerhalb der ersten Stunde, nachdem du die Protokollierung aktiviert hast. Außerdem übermittelt Amazon S3 möglicherweise innerhalb der ersten Stunde, nachdem du den Ziel-Bucket geändert hast, Protokolle an den vorherigen Ziel-Bucket.

Nachdem du die Konfiguration der Protokollierung geändert hast, warte mindestens 1 Stunde, bevor du die Protokolle überprüfen. Weitere Informationen findest du unter Serverprotokollübermittlung nach besten Kräften.

Stelle sicher, dass sich Quell- und Ziel-Buckets in derselben AWS-Region befinden und dass dasselbe AWS-Konto die Buckets besitzt. Wenn du außerdem für den Ziel-Bucket die Zahlung durch den Anforderer aktiviert hast, schalte ihn aus.

**Hinweis:**Amazon S3 bietet die Protokollierung des Serverzugriffs nur für allgemeine Buckets. Verzeichnis-Buckets und S3 Express One Zone-Verzeichnis-Buckets unterstützen diese Funktion nicht.

Wenn du immer noch keine Logs im Ziel-Bucket siehst, gehe wie folgt vor, um das Problem zu beheben.

Lösung

Prüfe, ob die Log Delivery-Gruppe Zugriff auf den Ziel-Bucket hat

Amazon S3 verwendet eine Log Delivery-Gruppe, um Serverzugriffsprotokolle an den Ziel-Bucket zu senden. Um Serverzugriffsprotokolle zu erhalten, musst du dem Protokollierungs-Service-Prinzipal Zugriff auf den Ziel-Bucket gewähren.

Um Zugriff auf den Ziel-Bucket zu gewähren, erstelle eine S3-Bucket-Richtlinie. Du kannst eine Zugriffssteuerungsliste (ACL) verwenden, um Zugriff auf den Ziel-Bucket zu gewähren. Es hat sich jedoch bewährt, ACLs nur zu verwenden, wenn du den Zugriff für jedes Objekt einzeln steuern musst. Wenn du ACLs verwenden musst, setze Objektbesitz nicht auf Bucket-Besitzer erzwungen.

Zugriff über eine Bucket-Richtlinie gewähren

Aktualisiere die Bucket-Richtlinie, um dem Protokollierungs-Service-Prinzipal die s3:PutObject-Berechtigung zu gewähren.

Beispiel für eine Richtlinie:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "S3ServerAccessLogsPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "logging.s3.amazonaws.com"
            },
            "Action": [
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET/EXAMPLE-LOGGING-PREFIX*",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET"
                },
                "StringEquals": {
                    "aws:SourceAccount": "SOURCE-ACCOUNT-ID"
                }
            }
        }
    ]
}

Zugriff über eine Bucket-ACL gewähren

Füge der Bucket-ACL einen „Grant Entry“ hinzu, der der S3 Log Delivery-Gruppe Schreibberechtigungen gewährt.

Gehe wie folgt vor, um die ACL des Ziel-Buckets zu ändern:

  1. Öffne die Amazon S3-Konsole.
  2. Wähle im Navigationsbereich Buckets aus, und wähle dann den Ziel-Allzweck-Bucket aus.
  3. Wähle die Registerkarte Berechtigungen aus.
  4. Wähle im Abschnitt Zugriffssteuerungsliste (ACL) die Option Bearbeiten aus.
  5. Wähle unter **S3 Log Delivery-Gruppe ** die Option Objekte – Schreiben und Bucket ACL – Schreiben aus.
  6. Wähle Änderungen speichern aus.

Stelle sicher, dass die Richtlinie des Ziel-Buckets den Zugriff auf die Protokolle nicht verweigert

Prüfe die Richtlinien des Ziel-Buckets auf Anweisungen, die ** „Effekt“: „Verweigern“**. Wenn die Richtlinie Verweigerungsanweisungen enthält, stelle sicher, dass die Anweisung Verweigern den Schreibzugriff auf den Bucket nicht verhindern.

Hinweis: Es hat sich bewährt, einen separaten Bucket für Serverzugriffsprotokolle zu verwenden. S3-Buckets sind standardmäßig privat, sodass du in der Bucket-Richtlinie nicht die Anweisung Verweigern verwenden musst, um unbefugten Zugriff auf den Bucket zu verhindern.

Bestätige, dass du Amazon S3 Object Lock für den Ziel-Bucket deaktiviert hast

Stelle sicher, dass du Object Lock für den Ziel-Bucket deaktiviert hast. Wenn du Object Lock aktivierst, kann Amazon S3 keine Serverzugriffsprotokolle bereitstellen.

Vergewissere dich, dass du SSE-S3 als Verschlüsselungsschlüssel ausgewählt hast

Wenn du die Standardverschlüsselung für den Ziel-Bucket verwendest, bestätige, dass du die serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) für die Verschlüsselung ausgewählt hast. Die Serverprotokollübermittlung unterstützt keine serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS)-Schlüsseln. Informationen zur Konfiguration der Standardverschlüsselung findest duunter Standardverschlüsselung konfigurieren.

Ähnliche Informationen

Die Amazon S3-Serverzugriffsprotokollierung aktivieren

AWS OFFICIALAktualisiert vor 5 Monaten