Я новичок в AWS и сейчас пытаюсь реализовать следующее.
У меня есть сервер API, который находится в экземпляре EC2. Я хотел бы реализовать некоторый механизм фильтрации и перенаправления для двух наборов клиентов:
Я хочу предоставить общий доступ всем и перенаправить на /public
когда они обращаются к моему серверу. Хотя конкретные клиенты будут перенаправлены на /specific
когда они обращаются к моему серверу. Общедоступным клиентам не будет разрешен доступ /specific
поскольку он предназначен только для определенных клиентов с определенными IP-адресами, однако возможно обратное - конкретным клиентам должен быть разрешен доступ к /public
.
Я считаю, что перенаправление возможно с использованием целевых групп + балансировщика нагрузки приложений. Я также рассматривал возможность использования Nginx, однако я не уверен, что делать дальше.
Брандмауэр веб-приложений (WAF) может подключаться к ALB и разрешать или отклонять определенные запросы на основе анализа правил, таких как IP-адрес клиента или путь (или их комбинация), но ограничивается разрешением или отклонением запросов (или "подсчетом" их - для таких целей, как тестирование соответствие правила без его фактического применения).
Итак, при первоначальном чтении вашего вопроса вы не можете делать эти вещи только с помощью ALB (или ALB + WAF) - вы не можете выборочно перенаправить или изменить направление трафика (целевые группы используют статические правила для хоста и / или или шаблоны путей, и эти правила не взаимодействуют с правилами WAF - эти правила применяются только к трафику, который WAF разрешил).
Однако, если просто запретить доступ к определенным путям, например (например) /specific
и /specific/*
для клиентов, которых нет в списке разрешенных, достаточно, тогда ALB может сделать это с помощью WAF.
Это не обязательно ясно из маркетинговых материалов, но WAF не совсем отдельная услуга в том смысле, что нет фактического устройства или платформы брандмауэра, через которую всегда проходит весь ваш трафик, и его нельзя использовать. все само по себе. WAF, по сути, является дополнительной функцией ALB, CloudFront и API Gateway, где обработчик во внешнем интерфейсе этих служб отправляет первый полный буфер каждого запроса для анализа, а WAF решает, основываясь на ваших правилах, сообщить лицевой стороне -end разрешить или отклонить каждый запрос.