我很难弄清楚如何为我的 LoadBalancer 设置正确的 SecurityGroup 规则。我做了一个图表来尝试说明这个问题,请看下图:
我有一个面向 Internet 的 LoadBalancer(图中的“Service A LoadBalancer”),它是从“内部”和我们的一个 ECS 服务(图中的“Task B”)请求的。对于内部请求,我可以为“Service A LoadBalancer”配置一个 SecurityGroup 规则,该规则允许从我们的内部 IP 的 CIDR 向端口 80 上的 LoadBalancer 传入请求。那里没问题。但是对于其他 ECS 服务任务 B,我将如何添加仅允许来自任务 B 的请求的规则(对于图中的“服务 A 安全组”)?(或仅来自 ECS 集群中的任务)。由于它是面向互联网的负载均衡器,因此请求来自机器 EC2 的公共 IP,而不是私有 IP(据我所知?)。
我显然可以制定一个规则,允许来自 0.0.0.0/0 的端口 80 上的请求,这会起作用,但这还远远不够严格。并且由于它是面向 Internet 的 LoadBalancer,因此添加一条允许来自“Cluster SecurityGroup”(在图中)的请求的规则不会削减它。我认为这是因为 LB 无法推断请求来自哪个 SecurityGroup,因为它是面向互联网的 - 如果它是内部 LoadBalancer,这将起作用。但我不能使用内部 LoadBalancer,因为它也是从外部 AWS(内部)请求的。
任何帮助都将不胜感激。
谢谢弗雷德里克