Этот фрагмент политики требует, чтобы в запросе содержалась спецификация постоянного 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
фактически не проверяется в рамках политики, поскольку это просто строка, но еслиВы не указываете допустимое значение, оно просто никогда не будет совпадать.