2

目前,我在 AWS 上使用应用程序负载均衡器设置了一个应用程序,目标组中有 2 个 EC2:

DNS -> AWS-ALB -> EC2(2)

我需要帮助,只允许应用程序 URL 上下文路径上的某些 IP 地址。

例如:www.abc.com 应该可供所有人访问,但 www.abc.com/xyz 应该只能对某些 IP 地址进行访问。

我在 EC2 上尝试了 NGINX 解决方案,并且仅当我使用允许和拒绝规则直接命中 EC2 IP 时才有效。

4

2 回答 2

6

我能够通过基于路径和源 IP 组合在 ALB 上设置侦听器规则来解决此问题。

假设您希望允许从 IP 地址池 123.123.123.120/30 访问 www.abc.com/xyz/*,并拒绝其他任何人。

ALB 规则:

  1. 如果源 IP 是 123.123.123.120/30 AND 路径是 /xyz/* THEN Forward to your-application-target-group

  2. IF Path 是 /xyz/* THEN 返回固定响应 403(或任何适合您的用例)

  3. IF 请求否则未路由 THEN Forward to your-application-target-group

https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-update-rules.html

于 2019-10-25T09:43:57.083 回答
2

如果该区域可用,您可以将 WAF 与 ALB 结合使用。您可以创建一个简单的规则,其中包含两个条件 URI 匹配和 IP 地址不匹配,因为 RULE 中的条件适用于 AND 操作,它应该符合您的要求。

https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-rules-creating.html

于 2019-09-26T01:00:26.970 回答