View a markdown version of this page

Fehlerbehebung - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Fehlerbehebung

Wenn Sie die Einstellung „Von Bucket-Besitzer erzwungen“ für S3 Object Ownership anwenden, werden die Zugriffssteuerungslisten (ACLs) deaktiviert und Sie als Bucket-Besitzer besitzen automatisch alle Objekte in Ihrem Bucket. ACLs wirken sich nicht mehr auf Berechtigungen für die Objekte in Ihrem Bucket aus. Sie können Richtlinien verwenden, um Berechtigungen zu erteilen. Alle PUT-Anfragen von S3 müssen entweder die vordefinierte ACL bucket-owner-full-control oder keine ACL angeben. Andernfalls schlagen diese Anfragen fehl. Weitere Informationen finden Sie unter Weitere Informationen finden Sie unter Steuern des Eigentums an Objekten und Deaktivieren von ACLs für Ihren Bucket..

Wenn eine ungültige ACL angegeben ist oder Bucket-ACL-Berechtigungen Zugriff außerhalb Ihres AWS-Konto gewähren, werden möglicherweise die folgenden Fehlerantworten angezeigt.

AccessControlListNotSupported

Nachdem Sie die Einstellung „Bucket-Eigentümer erzwungen“ für die Objekteigentümerschaft angewendet haben, sind ACLs deaktiviert. Anfragen zum Setzen von ACLs oder zum Aktualisieren von ACLs schlagen mit einem 400 Fehler fehl und geben den AccessControlListNotSupported Fehlercode zurück. Anfragen zum Lesen von ACLs werden weiterhin unterstützt. Anfragen zum Lesen von ACLs geben immer eine Antwort zurück, die die volle Kontrolle für den Bucket-Eigentümer anzeigt. In Ihren PUT-Vorgängen müssen Sie entweder ACLs für den Bucket-Eigentümer mit vollem Zugriff angeben oder keine ACL angeben. Andernfalls schlagen Ihre PUT-Operationen fehl.

Der folgende put-object AWS CLI Beispielbefehl beinhaltet die public-read vorgefertigte ACL.

aws s3api put-object --bucket amzn-s3-demo-bucket --key object-key-name --body doc-example-body --acl public-read

Wenn der Bucket die Einstellung „Bucket-Eigentümer erzwungen“ verwendet, um ACLs zu deaktivieren, schlägt dieser Vorgang fehl und der Uploader erhält die folgende Fehlermeldung:

Beim Aufrufen der PutObject Operation ist ein Fehler aufgetreten (AccessControlListNotSupported): Der Bucket erlaubt keine ACLs

InvalidBucketAclWithObjectOwnership

Wenn Sie die Einstellung „Bucket-Eigentümer erzwungen“ zum Deaktivieren von ACLs anwenden möchten, darf Ihre Bucket-ACL nur dem Bucket-Eigentümer die volle Kontrolle geben. Ihre Bucket-ACL kann keiner externen AWS-Konto oder einer anderen Gruppe Zugriff gewähren. Wenn Ihre CreateBucket Anfrage beispielsweise den Bucket owner enforced festlegt und eine Bucket-ACL angibt, die den Zugriff auf eine externe Person ermöglicht AWS-Konto, schlägt Ihre Anfrage mit einem 400 Fehler fehl und gibt den InvalidBucketAclWithObjectOwnership Fehlercode zurück. Wenn Ihre PutBucketOwnershipControls-Anfrage die Einstellung Bucket-Eigentümer erzwungen mit einer Bucket-ACL festlegt, die anderen Berechtigungen erteilt, schlägt die Anfrage ebenfalls fehl.

Beispiel: Vorhandene Bucket-ACL gewährt öffentlichen Lesezugriff

Wenn beispielsweise eine vorhandene Bucket-ACL öffentlichen Lesezugriff gewährt, können Sie die Einstellung „Bucket-Eigentümer erzwungen“ für die Objekteigentümerschaft erst anwenden, wenn Sie diese ACL-Berechtigungen zu einer Bucket-Richtlinie migrieren und Ihre Bucket-ACL auf die private Standard-ACL zurücksetzen. Weitere Informationen finden Sie unter Voraussetzungen für die Deaktivierung von ACLs.

Diese Beispiel-Bucket-ACL gewährt öffentlichen Lesezugriff:

{ "Owner": { "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID" }, "Grants": [ { "Grantee": { "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/global/AllUsers" }, "Permission": "READ" } ] }

Mit dem folgenden put-bucket-ownership-controls AWS CLI Beispielbefehl wird die Einstellung „Bucket Owner Enforced“ für Object Ownership angewendet:

aws s3api put-bucket-ownership-controls --bucket amzn-s3-demo-bucket --ownership-controls Rules=[{ObjectOwnership=BucketOwnerEnforced}]

Da die Bucket-ACL öffentlichen Lesezugriff gewährt, schlägt die Anforderung fehl und gibt den folgenden Fehlercode zurück:

Beim Aufrufen des PutBucketOwnershipControls Vorgangs ist ein Fehler aufgetreten (InvalidBucketAclWithObjectOwnership): Bucket kann keine ACLs mit ObjectOwnership der Einstellung setzen BucketOwnerEnforced