Интеграция AWS API Gateway с Cloud Front без раскрытия источника

Я работаю над проектом с серверной архитектурой.

Я обнаружил, что, хотя AWS сказал, что API Gateway может защитить ваши ресурсы от DDoS-атак.

Но если есть плохой пользователь, который продолжает рассылать спам на ваш сервис,

API-шлюз не может обеспечить надлежащий способ решения подобных проблем.

Итак, я начинаю понимать, что я могу сделать:

  • AWS WAF является очевидным решением.

Я нашел этот пост на stackru: шлюз API с aws waf

Затем, чтобы настроить WAF,

Я поставил дистрибутив Cloud Front перед шлюзом API.

Я понял, что это может быть обходное решение, но так ли это?

Вот проблема, которую я нашел:

  1. У меня есть распределение фронта облака, его доменное имя cdn.net

  2. Я установил исходный путь к моему шлюзу API: https://sampleagigw.amazon.comи установить путь к его сцене dev,

  3. Когда я звоню GET http://cdn.net/posts, он вернет результат, который я ожидаю.

  4. Тогда если вы положите 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 в адресной строке браузера.

Другие вопросы по тегам