Я боролся с политикой ACL vs. Bucket Policy и нашел следующее полезным.
ACL
ACL определяет права доступа, прикрепленные к одному файлу в вашей корзине. Bucket Policy - это скрипт, который объясняет права доступа для любой папки или файла в корзине. Использование политик сегмента для ограничения горячих ссылок, предоставления или запрета доступа к определенным или всем файлам, ограничения IP-адреса и т. Д.
Изменить политику S3 Bucket
Войдите в Amazon Web Services, нажмите S3 и нажмите на название корзины в левом столбце. Просмотрите панель свойств корзины в нижней части страницы. Нажмите кнопку в правом нижнем углу с надписью «Изменить политику корзины». Это вызывает лайтбокс, в который вы можете вставить скрипт политики. Если скрипт не проходит проверку, он не будет сохранен.
Пример политики, которая разрешает доступ для чтения каждому (полезно, если корзина используется в качестве сети доставки контента)
{
"Version": "2008-10-17",
"Id": "",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my_bucket_name/*"
}
]
}
Пример политики для предотвращения несанкционированной горячей ссылки (сторонние сайты ссылаются на нее), но позволяет любому скачивать файлы:
{
"Version":"2008-10-17",
"Id":"preventHotLinking",
"Statement":[ {
"Sid":"1",
"Effect":"Allow",
"Principal": {
"AWS":"*"
},
"Action":"s3:GetObject",
"Resource":"arn:aws:s3:::your.bucket.name/*",
"Condition":{
"StringLike": {
"aws:Referer": [
"http://yourwebsitename.com/*",
"http://www.yourwebsitename.com/*"
]
}
}
}]
}
Создать политику
http://awspolicygen.s3.amazonaws.com/policygen.html
Пример политики Bucket
http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?AccessPolicyLanguage_UseCases_s3_a.html