У меня есть набор экземпляров EC2 и балансировщик нагрузки перед ними. Я создал группу безопасности для ELB и установил правило для входящего трафика, чтобы разрешить HTTP-трафик от кого угодно.
Однако я хотел бы ограничить доступ к определенному пути (например, / admin) в моих экземплярах EC2 только для запросов, которые поступают из исходного ip / диапазона. Могу ли я сделать это, установив правило для входящего трафика? Не похоже, что он поддерживает это. Есть ли другой способ добиться этого?
Спасибо
Таким образом нельзя настроить правила входа в группах безопасности; они не относятся к HTTP и ничего не знают об URL-адресах.
Для этого нужно настроить контроль доступа на вашем HTTP-сервере. Например, в Apache вы можете ограничить доступ к определенному пути либо в конфигурации сервера, либо в .htaccess
файл вроде этого:
Order Deny,Allow
Deny from all
Allow from 1.2.3.4
См. Документацию Вот для Apache. Nginx имеет аналогичные функции.
ianjs верен, вы не можете выполнить то, что вам нужно, с помощью ELB и / или групп безопасности.
На Amazon Web Services вы можете посетить их AWS Marketplace и использовать коммерческий продукт для балансировки нагрузки, например АЦП Ishlangu Load Balancer от Shaka Technologies или BIG-IP LTM от F5. Эти два продукта не только предоставляют возможность ограничивать доступ к определенным путям приложений, но также перенаправлять и перезаписывать трафик запросов и / или ответов на лету. Это может быть выполнено с использованием средств управления трафиком каждого поставщика (скрипт uControl для Ishlangu и iRules для F5 LTM).
Я бы предложил использовать один из них через ELB или ELB + обратный прокси (например, Apache), как это было предложено ianjs. Последнее решение увеличило бы задержку и усложнило бы вашу среду, в то время как первое не обеспечивает необходимых вам функций.