Ответ 1
Удалите пробел в строке рефереров http://mydomain.com/ *", что неправильно... примеры Amazon тоже сделали эту ошибку.
Для второго оператора проще всего решить эту задачу: удалить весь этот оператор и установить права доступа к файлам (ACL) на приватное (Owner-Read/Write и World-NoRead/NoWrite)
Я не уверен, но, кажется, даже если у вас есть выражение о запрете, файл может быть прочитан, если у него есть общедоступное разрешение (World Read).
Кроме того, если вы распространяете файлы на CloudFront, помните, чтобы он также читал ведро. Итак, полная политика ведра будет выглядеть так:
{
"Version": "2008-10-17",
"Id": "YourNetwork",
"Statement": [
{
"Sid": "Allow get requests to specific referrers",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::yourbucket/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"http://www.yourwebsite.com/*",
"http://yourwebsite.com/*"
]
}
}
},
{
"Sid": "Allow CloudFront get requests",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::12345678:root"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::yourbucket/*"
}
]
}
(измените 12345678 на ваш идентификационный номер учетной записи AWS без тире)