Защита s3 Bucket при размещении приложения Angular - PullRequest
0 голосов
/ 11 апреля 2020

Я знаю, что существует 2 способа создания Cloudfront Origin:

  1. вставка конечной точки сайта из корзины s3;
  2. выбор s3 из списка.

Теперь, когда я # 1 - мой сайт, кажется, действительно работает, но я должен сделать ведро publi c. И если я использую дистрибутив CF для тестирования, я не хочу, чтобы у всех был доступ к файлам в корзине. ОК, я могу ограничить доступ к самому CF с помощью списка WAF / IP. Это здорово.

Далее я хочу разрешить доступ к корзине s3 только из CF. Я обнаружил, что это достижимо с помощью # 2, и я сделал это, но теперь у меня работает только первая страница приложения Angular, например, логин. После входа приложение перенаправляет куда-то, скажем, / page / authenticated, и у меня появляется ошибка "указанный ключ не существует". Я нашел красивый ответ , объясняющий эту ситуацию.

Но, тем не менее, я не понимаю, могу ли я ограничить доступ к корзине s3 при использовании сайта s3 конечная точка? Или, если я хочу, чтобы маршрутизация работала, я должен сделать s3 bucket publi c и никаких других вариантов?

1 Ответ

3 голосов
/ 11 апреля 2020

Вы можете сохранить свой сегмент в тайне и разрешить доступ только с помощью CloudFront.

Вам не нужно использовать конечную точку веб-сайта этого сегмента.

Что необходимо сделать для SPA, чтобы работа, включая Angular, заключается в добавлении пользовательских Error Pages.

Go к Error Pages и нажатии Create Custom Error Response.

Создание записи для 404 и 403. Это должно выглядеть примерно так:

enter image description here

...