Предположим, что у меня есть веб-сайт, размещенный на S3. Кроме того, у меня есть EC2, который будет получать http-запросы с этого сайта. Есть ли способ настроить группу безопасности, чтобы EC2 мог получать только HTTP-запросы с этого веб-сайта? Я знаю, что если веб-сайт был размещен на другом EC2, я мог бы использовать IP-адрес или балансировщик нагрузки, но я просто не знаю, как поступить в случае с веб-сайтом S3.
Группа безопасности для веб-сайта, размещенного на s3, отправляет http-запросы
- На самом деле существует концептуальная проблема с тем, что вы спрашиваете. Трафик запроса на сервер поступает не с веб-сайта. Он исходит от браузера, который отображает сайт, и все, с чем вам обычно приходится работать, — это утверждения браузера (например,
Referer
иOrigin
), что он действительно отображает этот конкретный сайт... но эти утверждения не имеют гарантии подлинности. Достаточность этого механизма зависит от того, какой контент вы пытаетесь защитить. 22.05.2018
Ответы:
Когда вы запускаете веб-сайт на S3, у вас будет обслуживаться все статическое внешнее содержимое (так же, как если бы у вас был чистый веб-сайт HTML/CSS/Javascript без веб-сервера на вашем локальном компьютере). Означает, что все вызовы, XHR или встроенные ресурсы, указывающие на ваш экземпляр EC2, являются запросами, которые генерируются браузерами посетителей с сетью Источник их IP с Происхождение «S3» или «Если вы разместите CloudFront на S3, это будет CloudFront в качестве источника в заголовках HTTP), взаимодействующий с целевой целью EC2 (где ваш веб-сервер обслуживает порт 80 или 443). Нет SG, который можно было бы применить. в корзине.Однако корзины S3 можно настроить с помощью политики для внесения определенных IP-адресов в белый список для доступа к содержимому корзины, а затем к статическому веб-содержимому, размещенному на ней.Вы также можете применить политику CORS и иметь условия для проверки рефералов и источников.
Если оставить в стороне политику уровня корзины, белый список IP-адресов, CORS и ограничения условий. Если вы обслуживаете свою корзину Web S3 из дистрибутива CloudFront, вы также можете применять правила ограничения GEOIP на уровне CloudFront.
На всякий случай, если, скажем, у вас есть сервер API в EC2, который будет вызываться вашим доменом CloudFront, вы можете применить некоторый контроль доступа как на веб-уровне CloudFront, так и на веб-уровне EC2, чтобы обеспечить соблюдение ужесточенных политик CORS. т.е. Другие веб-сайты в Интернете не могут перехватить вашу службу API или проводить атаки CSRF (опять же, только как защита на уровне браузера).