что делает / значит s3: x-amz-acl со значением "bucket-owner-full-control"? - PullRequest
0 голосов
/ 19 февраля 2019

Я вижу это в примерах политики корзины и не знаю, что это такое

"Condition": {
    "StringEquals": {
        "s3:x-amz-acl": "bucket-owner-full-control"
    }

Означает ли это, что пользователь должен добавить заголовок "s3: x-amz-acl", который имеет значение "ковш-владелец полный контроль "?Это навязывание фактического acl или это произвольно?Это может быть любой заголовок и строка или есть значения для s3: x-amz-acl и bucket-owner-full-control?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Этот фрагмент политики требует, чтобы в запросе содержалась спецификация постоянного ACL с использованием заголовка x-amz-acl (без учета регистра) со значением bucket-owner-full-control.

. Обычно это условие имеет ограничениеиспользуется для гарантии того, что владелец объекта (который всегда является загружающим пользователем, а не обязательно владельцем хранилища) не может создать объект, который владелец хранилища не может прочитать («полный контроль» является неудачным неправильным числом, потому чтовладелец корзины уже может удалить посторонние объекты, и, несмотря на это, он не может далее делегировать разрешения для объекта).

Но это не произвольно.

В частности: s3:x-amz-acl является Специфичный для S3 ключ условия политики IAM , имя которого совпадает с совпадающим заголовком.

Это не произвольное совпадение заголовка, даже если такая возможность иногда может быть полезна.Большинство других заголовков HTTP не подпадают под условия политики, и вы не можете использовать, например, условие s3:x-random-http-header.

Есть глобальные ключи условий , такие как aws:SecureTransport, которые можно использоватьчтобы отклонить запрос, который не использует HTTPS, и aws:UserAgent, который сравнивается с заголовком HTTP User-Agent, но обратите внимание на задокументированное предостережение о том, что этот "не должен использоваться для предотвращения несанкционированных сторон от прямого запроса AWS" потому что он легко подделывается пользовательским агентом.В противном случае не так много вариантов разрешения / запрета запросов, связанных с заголовками.

В отличие от ключа условия, строка значения bucket-owner-full-control фактически не проверяется в рамках политики, поскольку это просто строка, но еслиВы не указываете допустимое значение, оно просто никогда не будет совпадать.

0 голосов
/ 19 февраля 2019

Согласно этой документации назначение BucketOwnerFullControl заключается в следующем:

Указывает, что владельцу корзины предоставлен Permission.FullControl.Владелец корзины не обязательно совпадает с владельцем объекта.

Основной случай использования этого - когда пользователь A помещает объект в корзину, принадлежащую пользователю B,и это определяет разрешение для владельца корзины (пользователь B).

...