Рейтинг:1

AWS NLB с входящим IP-адресом из белого списка

флаг in

Прежде всего, я новичок в docker-compose и сервисах AWS, но я пытался узнать об этом и правильно подготовить его, любые советы приветствуются.

Мне нужно опубликовать приложение с помощью ECS (эта часть работает хорошо, для этого я использую docker-compose.Он корректно публикуется с эластичным общедоступным IP-адресом и работает), но доступ к приложению должен быть ограничен разрешенными IP-адресами. Моя идея заключалась в том, чтобы опубликовать приложение с общедоступным IP-адресом (эластичный IP-адрес, назначенный балансировщику нагрузки) и ограничить доступ к нему группами безопасности.

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

Мой вопрос: могу ли я назначить IP-адреса из белого списка для NLB? Я видел, что могу сделать IP-адрес из белого списка в ALB, но он не назначает эластичный IP-адрес.

Рейтинг:1
флаг gp
Tim

Вы публикуете веб-приложение/API? Если это так, вам, вероятно, следует использовать балансировщик нагрузки приложений, а не балансировщик сетевой нагрузки. NLB обычно используются для приложений, отличных от http(s), вы можете использовать их с http(s), но ALB, как правило, лучше подходят.

Рекомендации по дизайну

Я предлагаю вам подумать, действительно ли вам нужен статический IP. Некоторым устаревшим или встроенным системам это может понадобиться, но в большинстве случаев DNS-адрес подходит. Если вам действительно нужен статический IP-адрес, вы можете использовать одна из этих техник (или другие, которые вы найдете в Google), чтобы дать ALB статический IP-адрес, AWS Global Accelerator сделает это, но я не уверен, что это хорошее решение для вас. Вы также должны учитывать высокую доступность.

Что касается статических IP-адресов для внесения в белый список, вы можете рассмотреть возможность аутентификации либо с помощью AWS Cognito, интегрированного с ALB (лучше всего), либо внутри вашего контейнера. Обычно мы используем федерацию с Azure AD, но вы можете определить пользователей/группы в Cognito. Трафик пользователей к ALB попадает в целевой контейнер/сервер только в том случае, если Cognito авторизует трафик.

Основная рекомендация: AWS ALB, интегрированный с AWS Cognito для аутентификации, группа безопасности вокруг ALB, если хотите, но белый список не требуется.

Оригинальный вопрос

ALB имеют группы безопасности. Балансировщики сетевой нагрузки этого не делают. NLB невидим для трафика, поэтому вы размещаете группу безопасности вокруг своего ресурса (контейнера), а не балансировщика нагрузки.

Параметры белого списка IP-адресов ALB:

  • Вы можете внести в белый список доступ к ALB с помощью группы безопасности, но вы не можете внести ее в черный список с помощью группы безопасности. Существует максимальное количество правил, но к каждому ALB, вероятно, может быть подключено несколько SG, но будьте осторожны, так как это может повлиять на производительность. Это моя дополнительная рекомендация, если вы не хотите использовать Cognito.
  • Вы можете внести в белый или черный список с помощью списков управления доступом к сети (NACL)
  • Вы можете сделать что-то внутри контейнера с локальным брандмауэром, но я не предлагаю

Параметры белого списка IP-адресов NLB:

  • Группа безопасности вокруг контейнера ECS
  • NACL вокруг подсети(ей)
Xeven avatar
флаг in
Да, я публикую веб-приложение (в будущем также его API).Я использовал NLB, потому что я могу назначить ему эластичный IP-адрес (он позволил мне получить доступ к веб-приложению и API), но в случае ALB я видел, что я могу использовать SG для доступа к белому списку, хотя я не могу назначить эластичный IP к нему. Как я могу назначить его или статический общедоступный IP-адрес ALB?
Tim avatar
флаг gp
Tim
Я отредактировал свой ответ - 2-й абзац. У вас есть жесткие требования к статическому IP? Статические IP-адреса могут ограничить вашу способность обеспечивать высокую доступность. ALB с DNS-именем в большинстве случаев является лучшим решением для веб-приложений и API.
Xeven avatar
флаг in
Возможно, статический IP-адрес не является обязательным, потому что это веб-приложение, которое мы хотим только разрешить. доступ к определенным IP-адресам. Я новичок в сети, можете ли вы порекомендовать какую-нибудь документацию или что-то по этому поводу? В любом случае попробую. Спасибо, Тим.
Tim avatar
флаг gp
Tim
Балансировщик нагрузки приложений с группой безопасности для предоставления белого списка будет вашим лучшим / самым простым вариантом на сегодняшний день. Документация AWS превосходна, и в Интернете есть множество ресурсов/учебников. Взгляните также на мой обновленный ответ о Cognito.
Xeven avatar
флаг in
Меня интересует AWS Cognito, это может упростить некоторые шаги. На этой неделе мне нужна базовая функция, поэтому я сначала попробую вариант ALB / NLB, а затем интегрирую хороший вариант, чтобы узнать и узнать, как это сделать в будущем. Пока я искал информацию, я увидел этот URL-адрес в AWS https://aws.amazon.com/about-aws/whats-new/2021/09/application-load-balancer-aws-privatelink-static-ip-addresses-network-load-balancer/ Это тоже решит мою проблему? Offtopic: Можете ли вы порекомендовать хороший материал, который объясняет AWS и сеть, это интересно, но я очень мало знаю об этом. Спасибо большое за помощь
MLu avatar
флаг id
MLu
@ Тим, да ладно, Global Accelerator - это не "неуклюжий обходной путь"! На самом деле это правильный ответ, когда кому-то нужен ALB со статическими IP-адресами;)
Tim avatar
флаг gp
Tim
@MLu ha, на самом деле я еще не пользовался этим сервисом, поэтому я не так много знаю о нем, кроме того, что мне нужно было узнать для различных сертификатов AWS :) Я думаю, что ключом здесь является понимание требований и разработка архитектуры для чего необходимо, а не заставить первоначальную идею работать. ALB с Cognito, вероятно, лучше всего, ALB с SG — следующий шаг вниз, затем, возможно, GA с ALB.
MLu avatar
флаг id
MLu
@ Тим, да, и ты абсолютно прав. Я только что прокомментировал это заявление о «неуклюжем обходном пути» w.r.t. GA - на самом деле это отличный сервис и не такой дорогой. Проверьте https://speedtest.globalaccelerator.aws/ ;)
Tim avatar
флаг gp
Tim
@MLu, который выглядит как полезная услуга, а не кладж, и даже Веллингтон в Сидней немного выигрывает. Раньше я не пользовался GA, десятками других сервисов, но только не этим! Это неправильное решение для этого вопроса, но оно может быть полезно для других решений, особенно для предприятий. Цена довольно разумная для AWS;)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.