Создание политики S3 Bucket, которая разрешает доступ к Cloudfront, но ограничивает доступ кому-либо еще
У меня есть следующая политика:
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "Stmt1395852960432",
"Action": "s3:*",
"Effect": "Deny",
"Resource": "arn:aws:s3:::my-bucket/*",
"Principal": {
"AWS": [
"*"
]
}
},
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E1IYJC432545JN"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
Тем не менее, это отклоняет запросы от всех запрашивающих, даже Cloudfront. Как правильно это сделать?
Проблема в том, что объекты создаются клиентом с публичным чтением. В настоящее время у меня нет непосредственного контроля над клиентом, чтобы изменить этот параметр. Так что я хочу иметь политику, которая переопределяет отдельные объекты ACL. Такпо умолчанию отрицать здесь не работает.