Warum erhalte ich die Fehlermeldung „403 Forbidden“ (403 Unzulässig), wenn ich versuche, Dateien in Amazon S3 hochzuladen?
Ich versuche, mithilfe der Amazon-S3-Konsole Dateien in meinen Amazon Simple Storage Service (Amazon S3)-Bucket hochzuladen. Ich erhalte jedoch die Fehlermeldung „403 Forbidden“ (403 Unzulässig).
Kurzbeschreibung
Der Fehler „403 Forbidden“ kann aus den folgenden Gründen auftreten:
- Es fehlen Berechtigungen für s3:PutObject, um ein Objekt hinzuzufügen, oder s3:PutObjectAcl, um die Zugriffssteuerungsliste (ACL) des Objekts zu ändern.
- Du bist nicht berechtigt, einen AWS Key Management Service (AWS KMS)-Schlüssel zu verwenden.
- In der Bucket-Richtlinie gibt es eine ausdrückliche Ablehnungsanweisung.
- Amazon S3 Block Public Access ist aktiviert.
- Eine Servicekontrollrichtlinie von AWS Organizations erlaubt keinen Zugriff auf Amazon S3.
Lösung
Überprüfe die Berechtigungen für s3:PutObject oder s3:PutObjectAcl
Gehe wie folgt vor:
- Öffne die AWS Identity and Access Management (IAM)-Konsole.
- Navigiere zu der Identität, die für den Zugriff auf den Bucket verwendet wird, z. B. Benutzer oder Rolle. Wähle den Namen der Identität aus.
- Wähle die Registerkarte Permissions (Berechtigungen) und erweitere anschließend jede Richtlinie, um das zugehörige JSON-Richtliniendokument anzuzeigen.
- Suche in den JSON-Richtliniendokumenten nach Richtlinien für den Zugriff auf Amazon S3. Bestätige dann, dass du über die Berechtigungen für die Aktionen s3:PutObject oder s3:PutObjectAcl für den Bucket verfügst.
Bitte um Erlaubnis zur Verwendung eines AWS KMS-Schlüssels
Um Objekte hochzuladen, die mit AWS KMS verschlüsselt sind, musst du über Berechtigungen zur Durchführung von AWS KMS-Aktionen verfügen. Du musst mindestens die Aktionen kms:Decrypt und kms:GenerateDataKey ausführen können.
Wichtig: Wenn du ein Objekt in einen Bucket in einem anderen AWS-Konto hochlädst, kannst du den von AWS verwalteten Schlüssel aws/S3 nicht als Standard-Verschlüsselungsschlüssel verwenden. Dies liegt daran, dass du die Schlüsselrichtlinie für von AWS verwaltete Schlüssel nicht ändern kannst.
Überprüfe die Bucket-Richtlinie auf explizite Ablehnungsanweisungen
Gehe wie folgt vor:
- Öffne die Amazon-S3-Konsole.
- Öffne in der Liste der Buckets den Bucket, in den du Dateien hochladen möchtest.
- Wähle die Registerkarte Berechtigungen aus.
- Wähle Bucket-Richtlinie aus.
- Suche nach Aussagen mit „Effekt“: „Deny“ (Wirkung: Ablehnen).
- Überprüfe diese Anweisungen und vergewisser dich, dass sie Uploads in den Bucket nicht verhindern.
Wichtig: Bevor du eine Bucket-Richtlinie mit „Effect“: „Deny“ (Wirkung: Verweigern) speicherst, stelle sicher, dass du nach Anweisungen suchst, die den Zugriff auf den S3-Bucket verweigern. Wenn du gesperrt wirst, findest du weitere Informationen unter Wie kann ich wieder auf mein Amazon S3 zugreifen, nachdem ich versehentlich allen den Zugriff verweigert habe?
Die folgende Beispielanweisung verweigert ausdrücklich den Zugriff auf s3:PutObject im Beispiel-Bucket, es sei denn, die Upload-Anforderung verschlüsselt das Objekt mit dem AWS-KMS-Schlüssel, dessen ARN mit arn:aws:kms:us-east-1:111122223333:key übereinstimmt:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleStmt", "Action": [ "s3:PutObject" ], "Effect": "Deny", "Resource": "arn:aws:s3:::example-bucket/*", "Condition": { "StringNotLikeIfExists": { "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:111122223333:key/*" } }, "Principal": "*" } ] }
Entferne die öffentliche ACL aus deiner Anfrage oder deaktiviere S3 Block Public Access
Wenn du in deiner PUT-Anfrage eine öffentliche ACL übergibst, z. B. public-read oder authenticated-read, wird das S3-Objekt durch die öffentliche ACL öffentlich gemacht. Wenn die S3-Funktion „Block Public Access“ (Öffentlichen Zugriff blockieren) für dieses Konto oder diesen Bucket aktiviert ist, wird deine Uploadanfrage abgelehnt.
Hinweis: Es ist eine bewährte Methode, ein Objekt nur dann öffentlich zu machen, wenn dein Anwendungsfall dies erfordert.
Um das Objekt erfolgreich als öffentlich verfügbares Objekt hochzuladen, ändere die Funktion S3 Block Access nach Bedarf. Wenn dein Anwendungsfall es nicht erfordert, das Objekt öffentlich verfügbar zu machen, entferne die erwähnte öffentliche ACL aus der PUT-Anfrage.
Informationen zur Konfiguration der S3-Einstellungen für den öffentlichen Zugriff auf Kontoebene findest du unter Konfiguration der Einstellungen für den blockierten öffentlichen Zugriff für dein Konto. Informationen zur Konfiguration von Einstellungen auf Bucket-Ebene findest du unter Konfiguration der Einstellungen für den blockierten öffentlichen Zugriff für deine S3-Buckets. Weitere Informationen zu den Einstellungen für den öffentlichen Zugriff findest du auch unter Die Bedeutung von „öffentlich“.
Überprüfe die Servicekontrollrichtlinien für AWS Organizations
Wenn du AWS Organizations verwendest, überprüfe, ob die Servicekontrollrichtlinien Amazon-S3-Aktionen ausdrücklich ablehnen. Wenn ja, ändere die Richtlinie wie gewünscht.
Ähnliche Informationen
Wie behebe ich Fehler „403 Access Denied“ (403 Zugriff verweigert) von Amazon S3?
Problembehandlung bei Zugriffsverweigerung (403 Forbidden) in Amazon S3
- Themen
- Storage
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 8 Monaten