Wenn andere AWS-Konten Objekte in meinen Amazon S3-Bucket hochladen, wie kann ich dann verlangen, dass sie mir die volle Kontrolle über die Objekte gewähren?

Lesedauer: 2 Minute
0

Ich möchte, dass Benutzer von anderen AWS-Konten Objekte in meinen Amazon Simple Storage Service (Amazon S3)-Bucket hochladen können. Ich möchte jedoch verlangen, dass die Benutzer mir die volle Kontrolle über diese Objekte gewähren.

Behebung

Fügen Sie eine Bucket-Richtlinie hinzu, nach der Benutzer beim Hochladen von Objekten in Ihren Bucket die Zugriffssteuerungsliste (ACL) bucket-owner-full-control angeben müssen.

Diese Bucket-Richtlinie legt beispielsweise fest, dass ExampleUser Objekte nur dann in DOC-EXAMPLE-BUCKET hochladen kann, wenn die ACL des Objekts auf bucket-owner-full-control gesetzt ist:

{
  "Id": "Policy1541018284691",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1541018283275",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*",
      "Condition": {
        "StringEquals": {
          "s3:x-amz-acl": "bucket-owner-full-control"
        }
      },
      "Principal": {
        "AWS": [
          "arn:aws:iam::111122223333:user/ExampleUser"
        ]
      }
    }
  ]
}

Nachdem Sie diese Bucket-Richtlinie hinzugefügt haben, müssen Benutzer die erforderliche ACL als Teil der Upload-Anfrage angeben, ähnlich wie im Folgenden:

aws s3 cp example.jpg s3://DOC-EXAMPLE-BUCKET --acl bucket-owner-full-control

Wenn Benutzer die ACL-Anforderungen in ihrer Upload-Anfrage nicht erfüllen, erhalten sie die folgende Fehlermeldung:

„Beim Aufrufen der PutObject-Operation ist ein Fehler aufgetreten (accessDenied): Access Denied"

Für Objekte in Ihrem Bucket, die anderen Konten gehören, kann der Objekteigentümer den Befehl ](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object-acl.html)put-object-acl[ ausführen, um Ihnen die Kontrolle über das Objekt zu gewähren:

aws s3api put-object-acl --bucket DOC-EXAMPLE-BUCKET --key example.jpg --acl bucket-owner-full-control

Die bucket-owner-full-control-ACL gewährt dem Bucket-Besitzer vollen Zugriff auf ein Objekt, das ein anderes Konto hochlädt. Diese ACL allein gewährt jedoch nicht das Eigentum an dem Objekt. Um automatisch das Eigentum an Objekten zu erhalten, die mit der bucket-owner-full-control-ACL hochgeladen wurden, legen Sie S3 Object Ownership auf bucket owner preferred fest. Nachdem Sie S3 Object Ownership aktualisiert haben, besitzt der Bucket-Besitzer automatisch alle neuen Objekte, die mit bucket-owner-full-control hochgeladen werden.

Dazugehörige Informationen

Warum kann ich nicht auf ein Objekt zugreifen, das von einem anderen AWS-Konto in meinen Amazon S3-Bucket hochgeladen wurde?

Buckets mit vorgefertigten ACLs verwalten

IAM-Tutorial: Delegieren Sie den Zugriff über AWS-Konten mithilfe von IAM-Rollen

Zuordnung von ACL-Berechtigungen und Zugriffsrichtlinienberechtigungen

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 6 Monaten