Steuern der Eigentümerschaft an hochgeladenen Objekten mit S3 Object Ownership - Amazon Simple Storage Service

Steuern der Eigentümerschaft an hochgeladenen Objekten mit S3 Object Ownership

S3 Object Ownership ist eine Amazon S3-Bucketeinstellung, mit der Sie die Eigentümerschaft an neuen Objekten steuern können, die in Ihre Buckets hochgeladen werden. Wenn andere AWS-Konten Objekte zu Ihrem Bucket hochladen, bleiben die Objekte standardmäßig im Besitz des hochladenden Kontos. Mit S3 Object Ownership gehen alle neuen Objekte, die von anderen Konten mit der vordefinierten Zugriffskontrollliste (ACL) bucket-owner-full-control geschrieben werden, automatisch in den Besitz des Bucket-Eigentümers über. Dieser erhält die vollständige Kontrolle über die Objekte.

Sie können freigegebene Datenspeicher erstellen, für die mehrere Benutzer und Teams in verschiedenen Konten Schreib- und Lesezugriff erhalten, und das Eigentum neuer Objekte in Ihrem Bucket standardisieren. Als Bucket-Eigentümer können Sie dann den Zugriff auf diese Objekte über ressourcenbasierte Richtlinien, z. B. eine Bucket-Richtlinie, freigeben und verwalten. S3 Object Ownership wirkt sich nicht auf vorhandene Objekte aus.

S3 Object Ownership hat zwei Einstellungen:

  • Object writer (Objektschreiber) – Das hochladende Konto ist Eigentümer des Objekts.

  • Bucket owner preferred (Bucket-Eigentümer bevorzugt) – Der Bucket-Eigentümer ist Eigentümer des Objekts, wenn das Objekt mit der vordefinierten bucket-owner-full-control-ACL hochgeladen wird. Ohne diese Einstellung und der vordefinierten ACL wird das Objekt hochgeladen und bleibt im Besitz des hochladenden Kontos. Informationen zur Durchsetzung der Objekteigentümerschaft finden Sie unter Wie stelle ich sicher, dass ich den Besitz neuer Objekte übernehme?.

Wie stelle ich sicher, dass ich den Besitz neuer Objekte übernehme?

Nachdem Sie S3 Object Ownership auf „Bucket owner preferred (Bucket-Eigentümer bevorzugt)“ festgelegt haben, können Sie eine Bucket-Richtlinie hinzufügen, die durchsetzt, dass alle Amazon S3-PUT-Operationen die vordefinierte bucket-owner-full-control-ACL enthalten. Diese ACL gewährt dem Bucket-Eigentümer die volle Kontrolle über neue Objekte. Mit der Einstellung S3 Object Ownership wird das Objekteigentum an den Bucket-Eigentümer übertragen. Wenn das hochladende Konto die ACL-Anforderung beim Upload nicht erfüllt, schlägt die Anforderung fehl. Damit können Bucket-Eigentümer einen einheitlichen Objektbesitz für alle neu hochgeladenen Objekte in ihren Buckets durchsetzen.

Die folgende Bucket-Richtlinie gibt an, dass das Konto 111122223333 nur dann Objekte in DOC-EXAMPLE-BUCKET hochladen kann, wenn die ACL des Objekts auf bucket-owner-full-control festgelegt ist. Ersetzen Sie unbedingt 111122223333 durch ein echtes Konto und DOC-EXAMPLE-BUCKET durch den Namen eines echten Buckets.

{ "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:::DOC-EXAMPLE-BUCKET/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }

Nachfolgend finden Sie ein Beispiel für eine Kopieroperation, die die vordefinierte bucket-owner-full-control-ACL unter Verwendung der AWS-Befehlszeilenschnittstelle (AWS-CLI) umfasst.

aws s3 cp file.txt s3://DOC-EXAMPLE-BUCKET --acl bucket-owner-full-control

Wenn der Client die vordefinierte ACL bucket-owner-full-control nicht enthält, schlägt die Operation fehl und dem hochladenden Konto wird die folgende Fehlermeldung angezeigt:

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 Beispiel-Walkthroughs: Verwalten des Zugriffs auf Ihre Amazon S3-Ressourcen .

Verwenden von S3 Object Ownership mit Amazon-S3-Replikation

S3 Object Ownership ändert das Verhalten der Amazon-S3-Replikation nicht. Bei der Replikation besitzt der Eigentümer des Quellobjekts standardmäßig auch das Replikat. Wenn die Quell- und Ziel-Buckets im Besitz unterschiedlicher AWS-Konten sind, können Sie optionale Konfigurationseinstellungen hinzufügen, um den Replikatbesitz zu ändern.

Um die Eigentümerschaft replizierter Objekte an den Ziel-Bucket-Eigentümer zu übertragen, können Sie die Option für die Überschreibung des Amazon-S3-Replikationseigentümers verwenden. Weitere Informationen zum Übertragen der Replikateigentümerschaft finden Sie unter Ändern des Replikateigentümers.

Einstellen von S3 Object Ownership

Dieser Abschnitt enthält Beispiele dafür, wie Sie S3 Object Ownership aktivieren. Sie können die AWS-Managementkonsole verwenden, die eine Benutzeroberfläche für die Verwaltung von Berechtigungen bereitstellt, ohne dass Sie Code schreiben müssen.

Festlegen von S3 Object Ownership auf den bevorzugten Bucket-Eigentümer in der AWS-Managementkonsole

S3 Object Ownership ermöglicht Ihnen, die Eigentümerschaft an neuen Objekten zu übernehmen, die andere AWS-Konten über die vordefinierte Zugriffskontrollliste (ACL) bucket-owner-full-control in Ihren Bucket hochladen. In diesem Abschnitt wird beschrieben, wie Object Ownership mit der Konsole eingestellt wird.

Einstellen von Object Ownership auf bevorzugte Bucket-Eigentümer auf einem S3-Bucket

  1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon S3-Konsole unter https://console.aws.amazon.com/s3.

  2. Wählen Sie in der Liste Buckets den Namen des Buckets aus, für den Sie S3 Object Ownership aktivieren möchten.

  3. Wählen Sie die Registerkarte Permissions (Berechtigungen) aus.

  4. Wählen Sie unter Object Ownership die Option Edit (Bearbeiten).

  5. Wählen Sie „Bucket owner preferred (Bucket-Eigentümer bevorzugt)“ und anschließend Save (Speichern) aus.

Mit den oben beschriebenen Schritten übernimmt Object Ownership die Eigentümerschaft an allen neuen Objekten, die von anderen Konten über die vordefinierte bucket-owner-full-control-Zugriffskontrollliste (ACL) geschrieben werden. Informationen zur Durchsetzung der Objekteigentümerschaft finden Sie unter Wie stelle ich sicher, dass ich den Besitz neuer Objekte übernehme?.