Я думаю, что немного опоздал, но все равно,
Очевидно, вы не можете этого сделать, если вы используете конечные точки S3 REST_API (example-bucket.s3.amazonaws.com) в качестве источника для вашего дистрибутива CloudFront, вы должны использовать URL-адрес веб-сайта S3, предоставленный S3, в качестве источника (пример- bucket.s3-website- [область] .amazonaws.com). Кроме того, объекты должны быть общедоступными, вы не можете заблокировать свое хранилище в соответствии с политикой происхождения.
Итак,
- Объекты должны быть публичными.
- Опция веб-сайта S3 Bucket должна быть включена.
- Источник распространения должен исходить от URL-адреса веб-сайта S3, а не от конечной точки остальных API.
EDIT:
Я ошибался, на самом деле, вы можете сделать это и с конечной точкой REST_API, вам нужно только создать Пользовательский ответ на ошибку внутри вашего дистрибутива CloudFront, вероятно, только для кодов ошибок 404 и 403, установите параметр " Настроить ответное сообщение об ошибке " в значение "да", Путь к странице ответа в "/index.html" и Код ответа HTTP в "200". Вы можете найти эту опцию в вашем дистрибутиве и на вкладке страниц ошибок, если вы используете консоль.