Я пытаюсь использовать CloudFront для доставки статических ресурсов из корзины S3.Как я первоначально обнаружил, корзина была общедоступной и имела следующие параметры общедоступного доступа:
Вот политика корзины, с которой я столкнулся:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<BUCKET_NAME>/*"
},
{
"Sid": "2",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E3KB5KQ622F9F3"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<BUCKET_NAME>/*"
}]
}
Теперь вот что я сделал:
- Создан новый дистрибутив CloudFront с соответствующим именем домена источника и ограниченным доступом к корзине путем создания новой идентификации доступа к источнику.
- Обновлена политика корзины S3 в соответствии с их примерами документов , чтобы ограничить доступ к каноническому идентификатору пользователя.Вот как выглядит обновленная политика:
Установите для всех параметров общего доступа значение true для корзины S3, чтобы сделать его закрытым.
Мне отказывают в доступе, когда я пытаюсь получить доступ к статическим ресурсам через созданный CDN.Обращаясь к документации AWS для ограничения доступа к корзине S3 через CloudFront, я особенно озадачен тем, что они хотят, чтобы разработчики сделали со следующими инструкциями:
"To specify an origin access identity, use the value of Amazon S3 Canonical User ID
on the Origin Access Identity page in the CloudFront console."