Отказано в доступе при доступе к странице на статическом веб-сайте CloudFront Amazon S3

#amazon-web-services #amazon-s3 #amazon-cloudfront

#amazon-веб-сервисы #amazon-s3 #amazon-cloudfront

Вопрос:

Я развернул статический веб-сайт Angular на Amazon S3 и использовал для него Cloudfront. Когда я получаю доступ к странице по умолчанию myurl.com/ , все работает нормально, и я могу перемещаться по страницам. Но если я перейду на определенную страницу напрямую myurl.com/posts , например, я получу отказ в доступе с помощью cloudfront. Если я делаю это с конечной точкой веб-сайта Amazon s3, я получаю ответ 404.

S3

введите описание изображения здесь

Cloudfront

введите описание изображения здесь

Комментарии:

1. Какую дополнительную информацию это дает вам? Как вы его настроили? Какую конечную точку вы используете website или standard bucket?

2. @ChrisWilliams Это не дает мне никакой дополнительной информации, кроме hostId и RequestID. Я использую конечную точку веб-сайта

Ответ №1:

В документации указано, что 403 будет возвращен в CloudFront по ряду причин. Одним из решений является The requested objects must exist in the bucket. .

Поскольку вы пытаетесь получить доступ к несуществующему объекту, CloudFront может превратить это в 403, который вы получаете.

Вы должны попытаться получить доступ только к существующему ключу и настроить конечную точку s3 на использование документа об ошибке, когда страница не существует.

Комментарии:

1. Спасибо, я установил для документа об ошибке значение index.html в свойствах веб-хостинга, и это устранило проблему.

2. Нет проблем, хорошего дня

Ответ №2:

в моем случае я установил корневой объект по умолчанию, и все заработало, подождав около 10 минут, чтобы синхронизировать изменения настроек. http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html

Чтобы указать корневой объект по умолчанию с помощью консоли CloudFront:

Войдите в консоль управления AWS и откройте консоль Amazon CloudFront по адресу https://console.aws.amazon.com/cloudfront /.

В списке дистрибутивов на верхней панели выберите дистрибутив для обновления.

В области сведений о распространении на вкладке Общие нажмите Изменить.

В диалоговом окне Редактирование распространения в поле корневой объект по умолчанию введите имя файла корневого объекта по умолчанию.

Введите только имя объекта, например, index.html . Не добавляйте / перед именем объекта.

Чтобы сохранить изменения, нажмите Да, Редактировать.