Warum erhalte ich die Fehlermeldung „403 Forbidden“, wenn ich Dateien in Amazon S3 hochladen möchte?

Letzte Aktualisierung: 27.04.2022

Ich versuche, über die Amazon-S3-Konsole Dateien in meinen Amazon-Simple-Storage-Service-(Amazon S3)-Bucket hochzuladen. Allerdings erhalte ich stattdessen einen 403-Forbidden-Fehler.

Kurzbeschreibung

Der „403-Forbidden“-Fehler kann aus den folgenden Gründen auftreten:

Auflösung

Überprüfen Sie Ihre Berechtigungen für s3:PutObject oder s3:PutObjectAcl

Dazu gehen Sie wie folgt vor:

  1. Öffnen Sie die Konsole für das AWS Identity and Access Management (IAM).
  2. Wählen Sie die Identität aus, die für den Zugriff auf die Bucket-Richtlinie verwendet wird, z. B. Benutzer oder Rolle.
  3. Wählen Sie den IAM-Identitätsnamen aus, den Sie für den Zugriff auf die Bucket-Richtlinie verwenden.
  4. Wählen Sie die Registerkarte Berechtigungen und erweitern Sie jede Richtlinie, um das zugehörige JSON-Richtliniendokument anzuzeigen.
  5. Suchen Sie in den JSON-Richtliniendokumenten nach Richtlinien, die sich auf den Amazon-S3-Zugriff beziehen. Vergewissern Sie sich dann, dass Sie über Berechtigungen für die Aktionen s3:PutObject oder s3:PutObjectAcl im Bucket verfügen.

Bitte um Erlaubnis zur Verwendung eines AWS-KMS-Schlüssels

Um auf einen S3-Bucket zuzugreifen, der Standardverschlüsselung mit einem benutzerdefinierten AWS KMS-Schlüssel verwendet, muss Ihnen ein Schlüsseladministrator die Berechtigung für die Schlüsselrichtlinie erteilen.

Um ein Objekt in einen verschlüsselten Bucket hochzuladen, muss Ihr IAM-Benutzer oder Ihre IAM-Rolle mindestens über die AWS-KMS-Berechtigungen für kms:Encrypt und kms:GenerateDataKey verfügen.

Überprüfen Sie die Bucket-Richtlinie auf explizite Deny-Anweisungen

Dazu gehen Sie wie folgt vor:

  1. Öffnen Sie die Amazon-S3-Konsole.
  2. Öffnen Sie in der Liste der Buckets den Bucket, in den Sie Dateien hochladen möchten.
  3. Wählen Sie die Registerkarte Permissions (Berechtigungen).
  4. Wählen Sie Bucket-Richtlinie aus.
  5. Suche nach Anweisungen mit „Auswirkung“: „Zugriffsverweigerung“.
  6. Stellen Sie sicher, dass Ihre Bucket-Richtlinie die richtigen URI-Anforderungsparameter für s3:PutObject enthält, um die spezifischen Bedingungen zu erfüllen.

Wichtig: Bevor Sie eine Bucket-Richtlinie mit „Auswirkungt“: „Zugriffsverweigerung“ speichern, sollten Sie auf Anweisungen achten, die den Zugriff auf den S3-Bucket verweigern. Wenn Sie ausgesperrt werden, siehe Ich habe versehentlich allen den Zugriff auf mein Amazon-S3-Bucket verweigert. Wie erhalte ich wieder Zugriff?

Die folgende Beispielanweisung verweigert ausdrücklich den Zugriff auf s3:PutObject im awsdoc-example-bucket, es sei denn, die Upload-Anforderung umfasst die Verschlüsselung mit dem AWS KMS-Schlüssel arn:aws:kms:us-east-1:111122223333:key:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExampleStmt",
      "Action": [
        "s3:PutObject"
      ],
      "Effect": "Deny",
      "Resource": "arn:aws:s3:::awsdoc-example-bucket/*",
      "Condition": {
        "StringNotLikeIfExists": {
          "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:111122223333:key/*"
        }
      },
      "Principal": "*"
    }
  ]
}

S3 - Sperrung des öffentlichen Zugangs deaktivieren

Wenn Sie die öffentliche ACL in einer Upload-Anforderung übergeben und die Funktion S3 – Öffentlichen Zugriff blockieren aktiviert ist, deaktivieren Sie diese, bevor Sie Dateien hochladen.

Weitere Informationen zum Konfigurieren der Einstellungen für S3 – öffentlichen Zugriff blockieren auf Kontoebene finden Sie unter Konfigurieren der Einstellungen zur Sperrung des öffentlichen Zugriffs für Ihr Konto. Informationen zum Konfigurieren von Einstellungen auf Bucket-Ebene finden Sie unter Einstellungen zur Sperrung des öffentlichen Zugriffs für Ihre S3-Buckets konfigurieren.

Dem Root-Benutzer die Berechtigung zum Schreiben von Objekten gewähren

Konfigurieren Sie die ACL-Berechtigungen des Buckets, um dem Root-Benutzer Zugriff auf Schreib-Objekte zu gewähren.

Service-Kontrollrichtlinien für AWS Organizations löschen

Wenn Sie AWS Organizations verwenden, löschen Sie alle Service-Kontrollrichtlinien, die S3-Aktionen ausdrücklich verweigern.