Удалите пробел в строке ссылок "http://mydomain.com/*", это неправильно ... Примеры Amazon сделали эту ошибку тоже.
Для второго оператора самый простой способ решить его - удалить весь этот оператор и установить для ваших прав доступа к файлам (ACL) значение private (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 без тире)