Мое намерение состоит в том, чтобы мои статические файлы веб-сайта (в React, если это важно) были доступны только через мой домен, а не напрямую через URL-адреса S3.Кажется, он работает на моем собственном компьютере (хотя это может быть кэш CloudFront с тех пор, когда корзина была общедоступной), но другие клиенты получают только сообщения S3 в XML.Запрос домена без какого-либо пути дает ответ.Запрос любого пути (например, /index.html, файл в моем контейнере) дает ответ с кодом NoSuchKey.
Что я делаю неправильно?Вот текущая конфигурация.
- На маршруте 53 я указываю соответствующий поддомен на дистрибутив CloudFront с записью CNAME (xxxxxxxxxxx.cloudfront.net.)
- В ACM,У меня есть сертификат, который охватывает поддомен (* .mydomain.com)
- В CloudFront у меня есть дистрибутив с этими доменными именами (xxxxxxxxxxx.cloudfront.net) и альтернативными доменными именами (subdomain.mydomain.com),- Он включен и находился в развернутом состоянии в течение нескольких часов.
- У него один источник с именем домена subdomain.mydomain.com.s3.amazonaws.com
- Я выбралограничить доступ к сегменту и выбрать существующий идентификатор для доступа к источнику.У меня CloudFront было обновление политики корзины сегодня сегодня.
- В дистрибутиве есть одна запись поведения, которая перенаправляет HTTP на HTTPS и разрешает только методы GET и HEAD
- Мое имя корзины S3 соответствует записи Route 53(subdomain.mydomain.com)
- Статический хостинг веб-сайтов включен, и для документов индекса и ошибок установлено значение index.html
- Политика сегмента была автоматически сгенерирована.Он включает единую идентификационную информацию и ограничивает использование действия s3: GetObject для ресурса arn: aws: s3 ::: subdomain.mydomain.com/*
- Конфигурация CORS пуста
- Внутри корзинытакое приложение React с index.html в качестве точки входа.
Редактировать: моя политика корзины ( мне нужно добавить другое действие? )
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EZOBXXXXXXXXX"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::subdomain.mydomain.com/*"
}
]
}