Deaktivieren von ACLs für alle neuen Buckets und Durchsetzung von Object Ownership
Wir empfehlen, ACLs für Ihre Amazon-S3-Buckets zu deaktivieren. Wenden Sie dazu die Einstellung „Bucket-Eigentümer erzwungen“ für S3 Object Ownership an. Wenn Sie diese Einstellung anwenden, sind ACLs deaktiviert und Sie besitzen automatisch alle Objekte in Ihrem Bucket und haben die volle Kontrolle über sie. Wenn Sie veranlassen möchten, dass alle neuen Buckets mit deaktivierten ACLs erstellt werden, verwenden Sie AWS Identity and Access Management-(IAM)-Richtlinien oder AWS Organizations-Service-Kontrollrichtlinien (SCPs), wie im nächsten Abschnitt beschrieben.
Um den Objektbesitz für neue Objekte zu erzwingen, ohne ACLs zu deaktivieren, können Sie die bevorzugte Einstellung des Bucket-Eigentümers anwenden. Wenn Sie diese Einstellung anwenden, empfehlen wir Ihnen dringend, Ihre Bucket-Richtlinie so zu aktualisieren, dass die vordefinierte bucket-owner-full-control
-ACL für alle PUT
-Anforderungen an Ihren Bucket erforderlich ist. Aktualisieren Sie unbedingt auch Ihre Clients, damit sie die vordefinierte bucket-owner-full-control
-ACL von anderen Konten an Ihren Bucket senden.
Themen
Deaktivieren von ACLs für alle neuen Buckets (Bucket-Eigentümer erzwungen)
Die folgende IAM-Beispielrichtlinie verweigert die s3:CreateBucket
-Berechtigung für einen bestimmten IAM-Benutzer oder eine bestimmte IAM-Rolle, es sei denn, die Einstellung „Bucket-Eigentümer erzwungen“ wird für die Objekteigentümerschaft angewendet. Das Schlüssel-Wert-Paar im Condition
-Block gibt s3:x-amz-object-ownership
als Schlüssel und die BucketOwnerEnforced
-Einstellung als seinen Wert an. Mit anderen Worten, der IAM-Benutzer kann nur dann Buckets erstellen, wenn er die Einstellung „Bucket-Eigentümer erzwungen“ für die Objekteigentümerschaft festgelegt und ACLs deaktiviert hat. Sie können diese Richtlinie auch als Grenz-SCP für Ihre AWS-Organisation verwenden.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireBucketOwnerFullControl", "Action": "s3:CreateBucket", "Effect": "Deny", "Resource": "*", "Condition": { "StringNotEquals": { "s3:x-amz-object-ownership": "BucketOwnerEnforced" } } } ] }
Erfordert die ACL für Amazon-S3-PUT
-Vorgänge mit voller Kontrolle des Bucket-Eigentümers (Bucket-Eigentümer bevorzugt)
Mit der bevorzugten Einstellung des Bucket-Eigentümers für Object Ownership besitzen Sie als Bucket-Eigentümer die volle Kontrolle über neue Objekte, die andere Konten mit der vordefinierten bucket-owner-full-control
-ACL in Ihren Bucket schreiben. Wenn jedoch andere Konten Objekte in Ihren Bucket schreiben, ohne die bucket-owner-full-control
vordefinierte ACL behält der Objekt-Writer den vollen Zugriff auf die Kontrolle. Sie als Bucket-Eigentümer können eine Bucket-Richtlinie implementieren, die Schreibvorgänge nur zulässt, wenn sie die von bucket-owner-full-control
vordefinierte ACL angeben.
Anmerkung
Wenn Sie ACLs mit der Einstellung „Bucket-Eigentümer erzwungen“ deaktiviert haben, besitzen Sie als Bucket-Eigentümer automatisch alle Objekte in Ihrem Bucket und haben die volle Kontrolle über diese Objekte. Sie müssen diesen Abschnitt nicht verwenden, um Ihre Bucket-Richtlinie zu aktualisieren, um den Objekteigentümer für den Bucket-Eigentümer durchzusetzen.
Die folgende Bucket-Richtlinie gibt an, dass das Konto
nur dann Objekte in 111122223333
hochladen kann, wenn die ACL des Objekts auf amzn-s3-demo-bucket
bucket-owner-full-control
festgelegt ist. Achten Sie darauf,
durch Ihr Konto und 111122223333
durch den Namen Ihres Buckets zu ersetzen.amzn-s3-demo-bucket
{ "Version": "2012-10-17", "Statement": [ { "Sid": "
Only allow writes to my bucket with bucket owner full control
", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333
:user/ExampleUser
" ] }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }
Im Folgenden finden Sie ein Beispiel für eine Kopieroperation, die die vordefinierte bucket-owner-full-control
-ACL über die AWS Command Line Interface (AWS CLI) einschließt.
aws s3 cp
file.txt
s3://amzn-s3-demo-bucket
--acl bucket-owner-full-control
Nachdem die Bucket-Richtlinie in Kraft gesetzt wurde und der Client die vordefinierte bucket-owner-full-control
-ACL nicht enthält, schlägt der Vorgang fehl und der Uploader erhält den folgenden Fehler:
An error occurred (AccessDenied) when calling the PutObject operation: Access Denied (Fehler (Zugriff abgelehnt) beim Aufruf der PutObject-Operation: Zugriff abgelehnt
.
Anmerkung
Wenn Clients nach dem Hochladen Zugriff auf Objekte benötigen, müssen Sie dem hochladenden Konto zusätzliche Berechtigungen erteilen. Informationen zum Erteilen von Zugriff auf Ihre Ressourcen für Konten finden Sie unter Anleitungen, die Richtlinien verwenden, um den Zugriff auf Ihre Amazon-S3-Ressourcen zu verwalten.