Warum erhalte ich die Fehlermeldung „403 Forbidden“, wenn ich Dateien in Amazon S3 hochladen möchte?
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:
- Es fehlen Berechtigungen für s3:PutObject, um ein Objekt hinzuzufügen, oder s3:PutObjectAcl, um die ACL des Objekts zu ändern.
- Sie haben keine Berechtigungen zur Verwendung eines AWS-Key-Management-Service-(AWS KMS)-Schlüssels.
- Es gibt eine explizite Verweigerungsanweisung in der Bucket-Richtlinie.
- Amazon S3 – Sperrung des öffentlichen Zugriffs ist aktiviert.
- Die Bucket-Zugriffskontrollliste (ACL) erlaubt dem AWS-Konto Stammbenutzer nicht, Objekte zu schreiben.
- Eine AWS-Organizations-Service-Control-Richtlinie erlaubt keinen Zugriff auf Amazon S3.
Auflösung
Überprüfen Sie Ihre Berechtigungen für s3:PutObject oder s3:PutObjectAcl
Dazu gehen Sie wie folgt vor:
- Öffnen Sie die Konsole für das AWS Identity and Access Management (IAM).
- Wählen Sie die Identität aus, die für den Zugriff auf die Bucket-Richtlinie verwendet wird, z. B. Benutzer oder Rolle.
- Wählen Sie den IAM-Identitätsnamen aus, den Sie für den Zugriff auf die Bucket-Richtlinie verwenden.
- Wählen Sie die Registerkarte Berechtigungen und erweitern Sie jede Richtlinie, um das zugehörige JSON-Richtliniendokument anzuzeigen.
- 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:
- Öffnen Sie die Amazon-S3-Konsole.
- Öffnen Sie in der Liste der Buckets den Bucket, in den Sie Dateien hochladen möchten.
- Wählen Sie die Registerkarte Permissions (Berechtigungen).
- Wählen Sie Bucket-Richtlinie aus.
- Suche nach Anweisungen mit „Auswirkung“: „Zugriffsverweigerung“.
- 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.
Relevante Informationen
Ähnliche Videos
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 10 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr