Интеграция AWS API Gateway с Cloud Front без раскрытия источника
Я работаю над проектом с серверной архитектурой.
Я обнаружил, что, хотя AWS сказал, что API Gateway может защитить ваши ресурсы от DDoS-атак.
Но если есть плохой пользователь, который продолжает рассылать спам на ваш сервис,
API-шлюз не может обеспечить надлежащий способ решения подобных проблем.
Итак, я начинаю понимать, что я могу сделать:
- AWS WAF является очевидным решением.
Я нашел этот пост на stackru: шлюз API с aws waf
Затем, чтобы настроить WAF,
Я поставил дистрибутив Cloud Front перед шлюзом API.
Я понял, что это может быть обходное решение, но так ли это?
Вот проблема, которую я нашел:
У меня есть распределение фронта облака, его доменное имя
cdn.net
Я установил исходный путь к моему шлюзу API:
https://sampleagigw.amazon.com
и установить путь к его сценеdev
,Когда я звоню GET
http://cdn.net/posts
, он вернет результат, который я ожидаю.Тогда если вы положите
http://cdn.net/posts
в браузере, он удивил вас больше, чем вы ожидаете, он также отображает URL-адрес шлюза API на панели URL браузера:https://sampleagigw.amazon.com/dev/posts
Это означает, что вся работа с WAF и Cloud front не имеет смысла.
Есть что-то, что я неправильно понял?
1 ответ
Проверьте "Политику протокола просмотра" в дополнительном дистрибутиве CloudFront (cdn.net) и убедитесь, что для него задано "Перенаправлять HTTP на HTTPS" или "Только HTTPS". В качестве альтернативы вы можете отредактировать свое происхождение и установить для "Политика протокола отправителя" значение "Только HTTPS".
Если для параметра "Политика протокола просмотра" установлено значение "HTTP и HTTPS", а для параметра "Политика протокола источника" установлено значение "Просмотр соответствия", то я могу увидеть, как вы получите этот результат. Вы входите http://cdn.net/posts
в браузере, то дистрибутив cdn.net пытается подключиться к http://sampleagigw.amazon.com
(нет https / tls / ssl). Это относится к дистрибутиву CloudFront, созданному API-шлюзом, для которого установлено значение "Перенаправить HTTP на HTTPS". Поскольку он получил HTTP-запрос, он возвращает перенаправление 302 в http://sampleagigw.amazon.com
, Это возвращается дистрибутивом cdn.net браузеру. Затем браузер следует перенаправлению 302, оставляя http://sampleagigw.amazon.com
URL в адресной строке браузера.