#amazon-web-services #amazon-s3 #amazon-ec2 #amazon-cloudfront
Вопрос:
В настоящее время мой сервер nodejs в docker compose обслуживается на экземпляре EC2, а мое приложение react обслуживается на s3, оба они находятся за двумя дистрибутивами cloudfront соответственно.
Я довольно новичок в этих продуктах AWS, я хотел бы знать, как настроить эту настройку AWS, чтобы, когда пользователи получают доступ к исходным доменам, предоставляемым s3 и EC2 (http), они перенаправлялись обратно в cloudfront (https)?
Ответ №1:
Способ защиты зависит от происхождения.
Для источников S3 вы можете полностью отключить доступ, убедившись, что корзина не является общедоступной. Вы можете использовать идентификатор доступа источника для для cloudfront для аутентификации cloudfront в корзине. Таким образом, люди могут напрямую связаться с источником s3 через cloudfront.
Для EC2 за балансировщиком нагрузки (я предполагаю, что вы используете ALB, поскольку это лучшая практика) настройка немного сложнее. Вы можете добавить заголовок «секретно» в вызов, который cloudfront делает для вашего ALB (например x-origin-protection
). Затем добавьте в свой alb правило прослушивателя, которое перенаправляет только при наличии заголовка, и действие по умолчанию-перенаправление на cloudfront.
Пример правила прослушивания:
ListenerRule:
Type: AWS::ElasticLoadBalancingV2::ListenerRule
Properties:
Actions:
- Type: forward
TargetGroupArn: !Ref MyEc2InstanceTargetGroup
Conditions:
- Field: http-header
HttpHeaderConfig:
HttpHeaderName: x-origin-protection
Values:
- !Ref SecurityToken
ListenerArn: !Ref HttpsAppListener
Priority: 1
Для получения более полного руководства по настройке ALB ознакомьтесь с https://www.arhs-group.com/protecting-aws-alb-behind-aws-cloudfront-distribution/
Ответ №2:
В вашем дистрибутиве cloudfront > выберите вкладку «Поведение» >> выберите «поведение» и нажмите «Изменить» > > > в разделе «Политика протокола просмотра» выберите «Перенаправить HTTP на HTTPS» и нажмите «сохранить изменения» и дождитесь завершения развертывания.
Для получения дополнительной информации о политике протокола просмотра