Warum erhalte ich den Fehler „HTTP 403 Forbidden“, wenn ich Dateien über die Amazon-S3-Konsole hochladen möchte?

Letzte Aktualisierung: 20.10.2020

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

Kurzbeschreibung

Um den HTTP-403-Forbidden-Fehler von der Amazon-S3-Konsole aus zu beheben, überprüfen Sie Folgendes:

  • Fehlende Berechtigungen für s3:PutObject oder s3:PutObjectAcl
  • Fehlende Berechtigungen zur Verwendung eines AWS-Key-Management-Service-(AWS KMS)-Schlüssels
  • Explizite Verweigerungsanweisung in der Bucket-Richtlinie 
  • Bucket-Zugriffskontrollliste (ACL) erlaubt dem AWS-Konto Stammbenutzer nicht, Objekte zu schreiben
  • AWS-Organizations-Service-Control-Richtlinie erlaubt keinen Zugriff auf Amazon S3

Auflösung

Fehlende Berechtigungen für s3:PutObject oder s3:PutObjectAcl

Überprüfen Sie, ob der AWS-Identity-and-Access -Management-(IAM)-Benutzer oder die Rolle, die Sie verwenden, über Berechtigungen für die s3:PutObject-Aktion für den Bucket verfügt. Ohne diese Erlaubnis erhalten Sie einen HTTP-403-Forbidden-Fehler. 

Wenn Sie versuchen, die ACL des Objekts während des Uploads zu ändern, muss Ihr IAM-Benutzer oder Ihre IAM-Rolle auch über Berechtigungen für die Aktion s3:PutObjectAcl verfügen. 

Fehlende Berechtigungen zur Verwendung eines AWS-KMS-Schlüssels

Um auf einen S3-Bucket zuzugreifen, der die Standardverschlüsselung mit einem benutzerdefinierten AWS-KMS-Schlüssel verwendet, müssen Sie über die Berechtigungen zur Verwendung des Schlüssels verfügen. 

Um die Berechtigung zur Verwendung des Schlüssels zu erhalten, 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 Berechtigungen für kms:Encrypt und kms:GenerateDataKey verfügen. 

Explizite Verweigerungsanweisung in der Bucket-Richtlinie

Überprüfen Sie die Bucket-Policy auf Anweisungen, die ausdrücklich die Berechtigung für s3:PutObject verweigern ("Effect": "Deny"), sofern nicht bestimmte Bedingungen erfüllt sind. Überprüfen Sie, ob Ihr Upload die Anforderungen der Bucket-Richtlinie für den Zugriff auf die Aktion s3:PutObject erfüllt. 

Wenn Ihre Bucket-Richtlinie beispielsweise s3:PutObject ausdrücklich verweigert, es sei denn, die Anforderung enthält eine serverseitige Verschlüsselung mit AWS KMS oder von Amazon S3 verwalteten Verschlüsselungsschlüsseln, dann überprüfen Sie, ob Sie den richtigen Verschlüsselungsheader zum Hochladen von Objekten verwenden.

Die folgende Beispielanweisung in einer Bucket-Richtlinie verweigert ausdrücklich jeglichen Zugriff auf s3:PutObject im Bucket 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": "*"
    }
  ]
}

Warnung: Bevor Sie eine Bereichsrichtlinie mit einer expliziten Verweigerungsanweisung speichern, müssen Sie die Parameter für die explizite Verweigerung des Zugriffs sorgfältig überprüfen. Wenn Sie versehentlich ausgesperrt werden, siehe Ich habe versehentlich allen den Zugriff auf mein Amazon-S3-Bucket verweigert. Wie erhalte ich wieder Zugriff?

Bucket ACL erlaubt es dem Root-Benutzer nicht, Objekte zu schreiben

Wenn Sie das Root-Benutzerkonto zum Hochladen von Objekten in den S3-Bucket verwenden, stellen Sie sicher, dass die ACL des Buckets dem Root-Benutzer Zugriff auf Objekte schreiben gewährt. Weitere Informationen finden Sie unter Wie lege ich ACL-Bucket-Berechtigungen fest? 

AWS-Organizations-Service-Control-Richtlinie erlaubt keinen Zugriff auf Amazon S3

Wenn Sie AWS Organizations verwenden, überprüfen Sie die Richtlinien zur Servicekontrolle, um sicherzustellen, dass der Zugriff auf Amazon S3 erlaubt ist.

Die folgende Richtlinie führt beispielsweise zu einer HTTP-403-Forbidden-Fehlermeldung, wenn Sie versuchen, auf Amazon S3 zuzugreifen, da sie den Zugriff ausdrücklich verweigert:

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Deny",
    "Action": "S3:*",
    "Resource": "*"
  }]
}

Weitere Informationen zu den Funktionen von AWS Organizations finden Sie unter Aktivieren aller Funktionen in Ihrer Organisation.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?