У меня настроен дистрибутив CloudFront, где пользователь подключается к моему домену через дистрибутив CloudFront, и он определяет, направляется ли его запрос в мой контейнер S3 или в мой экземпляр EC2.
В этом случае соединение между пользователем и CloudFront осуществляется по протоколу HTTPS, а в браузере отображается зеленый замок.
Меня беспокоит, что соединение между CloudFront и EC2 теперь по HTTP. Я пробовал изменить политику происхождения на HTTPS, но это, похоже, не работает.
Мне не нужен балансировщик нагрузки, так как это всего лишь один сервер.
Я также не думаю, что смогу установить сертификат CloudFront на свой сервер EC2, поскольку у меня нет доступа к закрытому ключу сертификата CloudFront.
Я также не могу использовать сертификат LetsEncrypt на моем экземпляре EC2, поскольку для него требуется доменное имя, а мой экземпляр EC2 — это просто IP-адрес.
Сейчас все работает, но меня беспокоит, что это небезопасно. А что, если кто-то введет свой пароль на моем сайте? Разве он не будет зашифрован только при отправке от пользователя в дистрибутив CloudFront, а затем он будет расшифрован и будет открытым текстом при передаче по Интернету между CloudFront и EC2? Разве это не может быть зафиксировано посредниками по пути?
Есть ли решение этой проблемы или это не проблема? Я немного запутался, потому что вижу, что несколько человек говорят, что можно использовать политику происхождения HTTP между CloudFront и вашим экземпляром EC2, но я не уверен, как это может быть.
решение1
На этот вопрос можно ответить по-разному.
Конечные точки CloudFront развертываются в так называемыхКрайние местоположениягде трафик входит в глобальную инфраструктуру AWS. Любой трафик между CloudFront и вашим EC2 должен маршрутизироваться только через инфраструктуру AWS, а не через сторонних операторов.
Обновлять:Глобальная инфраструктура AWSстраница говорит:Все данные, передаваемые по глобальной сети AWS, которая соединяет наши центры обработки данных и регионы, автоматически шифруются на физическом уровне, прежде чем они покидают наши защищенные объекты.То есть, даже если некоторые из соединений фактически проходят через сторонние сети, они всегда зашифрованы, поэтому ваш открытый HTTP-текст никогда не должен быть виден этому стороннему оператору.
Вы уже доверяете AWS свои данные — вы используете EC2, управляете своими SSL-сертификатами для CloudFront и т. д., так что на том же уровне вы, вероятно, доверяете и их сети. Я бы сказал, что риск слежки за вашим текстовым трафиком внутри AWS довольно низок, хотя и не отсутствует.
Вы можете создатьСамоподписанные SSL-сертификатына вашем EC2 и CloudFront с радостью примет их для достижения вашего источника EC2. Таким образом, вы можете иметь HTTPS на всем пути. Этот самоподписанный сертификат будет использоваться только дляТрафик CF <-> EC2, не для вашегоПользователь <-> CF трафик, так что никаких проблем снедействительный сертификатпредупреждения.
Надеюсь, это поможет :)