2

Мне сложно определить, как установить правильные правила SecurityGroup для моего LoadBalancer. Я сделал схему, чтобы попытаться проиллюстрировать эту проблему, пожалуйста, посмотрите на изображение ниже:Как настроить AWS-интернет для LB ScurityGroup для внутренних и внешних запросов

Our ECS setup

У меня есть интернет перед LoadBalancer («Сервис А LoadBalancer» на диаграмме), которая запрашивается «inhouse» и из одной из наших услуг ECS («Задача B» на диаграмме). Для внутренних запросов я могу настроить правило SecurityGroup для «Service A LoadBalancer», которое позволяет входящий запрос на LoadBalancer на порт 80 из CIDR для наших внутренних IP-адресов. Нет проблем. Но для другой службы ECS, задачи B, как я могу добавить правило (для «Service A SecurityGroup» на диаграмме), которое разрешает запросы только из задачи B? (или только из задач в кластере ECS). Так как это интернет-интерфейс loadbalancer, запросы сделаны из общедоступного ip компьютера EC2, а не частного (насколько я могу сказать?).

Я могу, очевидно, сделать правило, разрешающее запросы на порт 80 от 0.0.0.0/0, и это сработает, но это далеко не достаточно ограничительно. И поскольку это интернет, обращенный к LoadBalancer, добавление правила, которое разрешает запросы из «Cluster SecurityGroup» (на диаграмме), не будет вырезать его. Я предполагаю, что это потому, что LB не может сделать вывод, из какой SecurityGroup возникла просьба, поскольку она обращена к интернету, и что это будет работать, если это будет внутренний LoadBalancer. Но я не могу использовать внутренний LoadBalancer, так как он также запрашивается извне AWS (Inhouse).

Любая помощь будет назначена.

Благодаря Frederik

ответ

1

Мы решаем, запустив отдельный Интернет облицовку и внутренние Балансировщиков Нагрузки. Вы можете иметь несколько ELB или ALB (ELBv2) для одного и того же кластера. Предполагая, что ваши кластеры ECS работают в диапазоне IP, например 10.X.X.X, вы можете открыть 10.X.0.0/16 для внутреннего доступа на внутреннем ELB. Просто убедитесь, что кластер ECS SG также открыт для ELB. Задача B может достигать Задачи A по внутреннему адресу ELB, предполагая, что вы используете DNS внутреннего ELB-адреса при выполнении запроса. Если вы нажмете IP общедоступного DNS, он всегда будет публичным запросом.

Однако, возможно, вам захочется подумать о долгосрочной перспективе, действительно ли вам нужен публичный ELB. Вместо ограничений IP, следующим шагом обычно является запуск VPN, такой как openVPN, чтобы вы могли подключиться к VPC и получить доступ ко всему в частной сети. Обычно мы только когда-либо запускаем интернет-лифтинг ELB, если мы действительно хотим что-то в Интернете, например, для внешних клиентов.

+0

Спасибо за ваш ответ. Я также думал о наличии обоих типов LB (мы используем ALB), но я считаю, что невозможно создать несколько целевых групп для конкретной службы ECS? Поскольку ECS назначает контейнер целевой группе (мы используем динамическое сопоставление портов, так что эфемерные порты), мне по существу понадобится либо назначить его двум целевым группам (один для внутреннего LB и один для интернет-доступа, но ECS только позволяет установить один TG для Serivce), ИЛИ, назначить целевую группу двум LB. Я считаю, что ни один из этих вариантов невозможен, как вы это сделали? –

+0

По крайней мере, у нас есть другой сценарий, в котором Служба (задача) вызывается как из другой службы (которая снова требует внутреннего LB) И с веб-сайта ClientSide. Поэтому в этих ситуациях решение VPN не будет сокращать его. –

+1

Мы также используем ALB в этом примере. Хотя верно, что служба ECS может быть назначена только одной целевой группе, вы можете связать одну и ту же целевую группу с несколькими правилами прослушивателя ALB. Вот как мы это делаем. У нас есть две службы, которые находятся на внутренних и внешних АЛБ. Одна и та же целевая группа просто связана с правилами прослушивателя на каждом внутреннем и внешнем ALB. Я смог проверить, что это на самом деле то, как мы это делаем сегодня утром.Вы также можете ограничить предел, что ALB поддерживает только 10 правил (прямо сейчас). Из-за этого мы также запускаем несколько ALB для каждого кластера. – aaa572