Я пытаюсь настроить CloudFront и S3 для обслуживания статического содержимого моего веб-сайта. Короче не работает.
Сначала я создал корзину S3, отключив весь публичный доступ.
Затем я создал дистрибутив CloudFront, выбрав свой S3 в качестве исходного домена.
Интересно то, что консоль AWS продолжает показывать мне предупреждение о том, что я должен сам обновить политику корзины после создания дистрибутива (для OAC). Но он не обновляет ведро автоматически.
Итак, после того, как я создал дистрибутив, я обновил политику корзины следующим образом.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowCloudFrontServicePrincipalReadWrite",
"Effect": "Allow",
"Principal": {
"Service": "cloudfront.amazonaws.com"
},
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::men-mvc-local/*",
"Condition": {
"StringEquals": {
"AWS:SourceArn": "arn:aws:cloudfront::xxxx-9609-xxxx:distribution/E1L6NWB7YV5XXX"
}
}
}
Затем я попытался получить доступ к файлу в корзине, используя облачный URL-адрес, вставив следующий URL-адрес в браузер.
https://dl2j5zcr9xpi4.cloudfront.net/my-image.png
Я все еще не вижу изображения.
Что не так с моей конфигурацией и как я могу это исправить?
Я просто просматриваю тот же прогресс, что и ваш, и на самом деле вижу изображение, которое я помещаю в корзину через URL-адрес распространения.
Ниже то, что я скопировал из консоли CloudFront, я обнаружил одно различие между вашим и моим, т. е. версию политики. С уважением, мне просто интересно, почему версия политики предлагаемого заявления о политике от AWS устарела.
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "AllowCloudFrontServicePrincipal",
"Effect": "Allow",
"Principal": {
"Service": "cloudfront.amazonaws.com"
},
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::<S3 Bucket Name>/*",
"Condition": {
"StringEquals": {
"AWS:SourceArn": "arn:aws:cloudfront::<12-digits Account ID>:distribution/EC709QQQLE5VZ"
}
}
}
]
}
Из вашего общего доступа к структуре политики вам необходимо изменить идентификатор учетной записи AWS в ARN вашего дистрибутива на непрерывную 12-значную строку. У вас есть 2 неожиданных дефиса в части идентификатора вашей учетной записи AWS в ARN раздачи.
# Before
xxxx-9609-xxxx
# After
123496095678
Кроме того, я не пытаюсь использовать ведро в качестве статического веб-сайта.
Проблема в дефисе. Уберите дефисы. Идентификатор учетной записи состоит из 12 непрерывных цифр. И убедитесь, что статический веб-хостинг ОТКЛЮЧЕН.
Уууууу. Сейчас это работает. Спасибо.
Если бы вы могли обновить свой ответ, я проголосую и приму его.
@WaiYanHein рад слышать, что вы решили проблему. Я обновил, поместив основную причину и соответствующее решение в конце. :D
Привет, спасибо за ответ. Я попытался изменить версию, а также включить опцию хостинга статического веб-сайта в корзине. Это все еще не работает. Да, идентификатор моей учетной записи состоит из 12 цифр, включая дефис. Похоже на это
5320-5333-4852