#amazon-web-services #amazon-ec2
Вопрос:
Моя машина настроена в ubuntu. У него есть служба python flask. Я использую домен, купленный с помощью сертификата, сгенерированного в aws.
Я обеспокоен безопасностью своего сервиса и хотел использовать инструмент под названием flask ip ban. Однако IP — адреса, которые я получаю от пользователей как на консоли, так и в коде, использующем «request.remote_addr», являются конкретными IP-адресами того же домена, который начинается с 172.31. *. *
Даже если я использую прокси, ip моего компьютера всегда 172.31.4.145, и это не мой ip и не мои прокси.
Я попытался использовать колбу для запрета ip-адресов, но в итоге запретил буквально всех пользователей, потому что те несколько ip-адресов, которые, похоже, приводят моих клиентов, без моего ведома, были запрещены
Я хотел бы знать, как это сделать, чтобы показать реальные ip-адреса. Может быть, это потому, что мой сервис-микро? Или потому, что я использую балансировщик нагрузки с моим сертификатом? Я не мог установить никаких отношений с колбой или питоном
Комментарии:
1. Вы используете балансировщик нагрузки? Является
172.31.4.145
частью блока CIDR вашего VPC?2. Я использую. idk что такое vpc cidr?
3. VPC CIDR-это список/диапазон внутренних частных IP-адресов, для использования которых настроено ваше виртуальное частное облако AWS.
4. 172.31-это мой CIDR IPv4
5. Вам нужно проверить
x-forwarded-for
заголовок в запросе от балансировщиков нагрузки.
Ответ №1:
Вы находитесь за балансировщиком нагрузки, что означает, что IP-адрес, который вы видите, является адресом вашего балансировщика нагрузки. Как советовал Марк выше, вы можете использовать x-forwarded-for
заголовок, но я хотел добавить, что у вас есть замечательный пост в блоге, который все это объясняет.
https://aws.amazon.com/premiumsupport/knowledge-center/elb-capture-client-ip-addresses/?nc1=h_ls