Cloudfront с источником эластичного балансировщика нагрузки возвращает 403

У меня есть веб-сервер за балансировщиком нагрузки, который находится за облачным дистрибутивом. Идея облачного дистрибутива с балансировщиком нагрузки в качестве источника заключалась в том, чтобы ограничить запросы к балансировщику нагрузки, чтобы они поступали только из интерфейсного веб-приложения. Я следовал этому руководству https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/restrict-access-to-load-balancer.html, чтобы

  1. дистрибутив elb origin cloudfront помещает заголовок источника с парой секретный ключ-значение и
  2. у балансировщика нагрузки есть правило для проверки заголовка http с правильным ключом и значением.

Нажатие балансировщика нагрузки напрямую с его DNS дает ожидаемый 403, как и хотелось. Однако с почтальоном, когда я делаю запросы к Cloudfront dns, я получаю 403.

Конфигурация Cloudfront ELB Origin:

введите здесь описание изображения

Правило балансировщика нагрузки:

введите здесь описание изображения

Сообщение об ошибке от почтальона:

введите здесь описание изображения

ОБНОВИТЬ:

Я добавил действие ответа на ошибку, чтобы оно перенаправляло в «корень» моего API. После этого запросы с Postman больше не возвращают ошибку 403 из Cloudfront, а возвращают фиксированное ответное сообщение 403, настроенное в правиле прослушивателя loadbalancer. Кажется, таким образом запрос, по крайней мере, доходит до балансировщика нагрузки. Означает ли это, что Cloudfront не передает исходный заголовок? Кроме того, когда я делаю запрос GET к одной из моих конечных точек, указывающей на DNS Cloudfront с завитком в терминале, он возвращает хороший ответ, в то время как тот же запрос не работает с Postman. Любая другая конечная точка дает сбой, будь то curl или Postman с сообщением 403 правила прослушивателя.

введите здесь описание изображения


person minh ly    schedule 08.04.2021    source источник
comment
Какое имя заголовка и значение вы используете? Не стесняйтесь опубликовать его после того, как вы измените его на что-то, что не является конфиденциальным.   -  person jellycsc    schedule 09.04.2021
comment
x-cloudfrontHeader, cloudfrontValue123   -  person minh ly    schedule 09.04.2021
comment
Используете ли вы DNS-имя ELB по умолчанию в качестве источника CF?   -  person jellycsc    schedule 09.04.2021
comment
Какая группа безопасности связана с ELB?   -  person jellycsc    schedule 09.04.2021
comment
моя группа безопасности ELB принимает глобальные входящие http-запросы, а выход — это TCP-соединение с портом 8080, на котором мой сервер прослушивает мою группу безопасности ec2 в качестве пункта назначения. И да, ELB DNS является источником для CF.   -  person minh ly    schedule 09.04.2021
comment
Попробуйте установить origin protocol policy на http only.   -  person jellycsc    schedule 10.04.2021
comment
Он по-прежнему возвращает 403. В любом случае я планирую сделать https доступным и в будущем.   -  person minh ly    schedule 10.04.2021


Ответы (1)