У меня есть веб-сервер за балансировщиком нагрузки, который находится за облачным дистрибутивом. Идея облачного дистрибутива с балансировщиком нагрузки в качестве источника заключалась в том, чтобы ограничить запросы к балансировщику нагрузки, чтобы они поступали только из интерфейсного веб-приложения. Я следовал этому руководству https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/restrict-access-to-load-balancer.html, чтобы
- дистрибутив elb origin cloudfront помещает заголовок источника с парой секретный ключ-значение и
- у балансировщика нагрузки есть правило для проверки заголовка http с правильным ключом и значением.
Нажатие балансировщика нагрузки напрямую с его DNS дает ожидаемый 403, как и хотелось. Однако с почтальоном, когда я делаю запросы к Cloudfront dns, я получаю 403.
Конфигурация Cloudfront ELB Origin:
Правило балансировщика нагрузки:
Сообщение об ошибке от почтальона:
ОБНОВИТЬ:
Я добавил действие ответа на ошибку, чтобы оно перенаправляло в «корень» моего API. После этого запросы с Postman больше не возвращают ошибку 403 из Cloudfront, а возвращают фиксированное ответное сообщение 403, настроенное в правиле прослушивателя loadbalancer. Кажется, таким образом запрос, по крайней мере, доходит до балансировщика нагрузки. Означает ли это, что Cloudfront не передает исходный заголовок? Кроме того, когда я делаю запрос GET к одной из моих конечных точек, указывающей на DNS Cloudfront с завитком в терминале, он возвращает хороший ответ, в то время как тот же запрос не работает с Postman. Любая другая конечная точка дает сбой, будь то curl или Postman с сообщением 403 правила прослушивателя.
origin protocol policy
наhttp only
. - person jellycsc   schedule 10.04.2021