首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >公共子网中的AWS和私有子网中的EC2

公共子网中的AWS和私有子网中的EC2
EN

Stack Overflow用户
提问于 2018-02-14 16:41:32
回答 3查看 19.4K关注 0票数 12

是否有人在您私有网络的公网子网中配置了NLB,用于将流量路由到内网中的EC2实例?

使用ELB时,一个好的解决方案是为ELB创建一个安全组,然后为私有EC2实例创建另一个SecurityGroup,允许来自该ELB安全组的传入流量,如下所述:

https://aws.amazon.com/premiumsupport/knowledge-center/public-load-balancer-private-ec2/

您还可以在实例的安全组上添加规则,允许分配给负载均衡的安全组流量。例如,如果负载均衡上的安全组为sg-1234567a,请对内网实例关联的安全组进行如下更改。

由于您无法将安全组关联到NLB,因此如何在具有相同类型的安全性的情况下实现此操作?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2018-07-25 09:06:24

由于您无法将安全组关联到NLB,如何在具有相同类型的安全性的情况下实现这一点?

安全方面不会改变。

NLB是一个不同的野兽,它不同于经典的负载均衡器。对于传统负载均衡,从您的实例角度来看,流量似乎确实来自VPC内部。从外部,流量到达一个(随机且不断变化的) IP地址列表,该列表由AWS提供给您的DNS记录解析。

网络负载均衡器则完全不同。从您的实例的角度来看,它们是完全不可见的。如果它是外部网络负载均衡器,则流量看起来直接来自internet上的实例(即使这是一种错觉)。因此,如果你想与互联网上的每个人交谈,0.0.0.0/0就是你打开它的地方。

事实上,这就是文档所说的:

https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-register-targets.html#target-security-groups

代码语言:javascript
复制
Recommended Rules

Inbound Source      Port Range        Comment
Client IP addresses instance listener Allow traffic from clients on the instance listener port

VPC CIDR            health check      Allow traffic from the load balancer on the health check port

客户端IP地址是您的客户端IP地址。如果他们在开放的互联网上,就是0.0.0.0/0。正如我在其他响应中看到的那样,添加NLB私有IP地址不会有任何效果。就实例而言,流量不是来自那里。

从安全的角度来说,什么都没有改变。由于您的实例位于内网,流量无法直接流向内网,因为中间有NAT网关。它只能从它们流向互联网(通过NAT网关,然后是互联网网关)。即使您指定允许来自任何地方的所有流量,流量仍然不会到来。它将不得不通过另一种方式来实现。在您的示例中,这种方式是NLB,它侦听的端口数量是固定的,并且只将流量发送到您指定的实例上的目标端口。

如果您正在从传统负载均衡迁移到NLB,请将安全组规则从负载均衡迁移到您的实例。或者更好,因为您可以有多个安全组,只需将您当前拥有的传统LB的SG添加到实例中(并根据需要更新任何as )。您的安全姿态将完全相同。额外的好处是,现在您的应用程序将不再需要诸如代理协议之类的东西来确定流量来自何处,它不再被负载均衡器混淆。

票数 31
EN

Stack Overflow用户

发布于 2018-02-14 18:01:22

根据AWS文档,这确实是真的:

网络负载均衡没有关联的安全组。因此,目标的安全组必须使用IP地址才能允许来自负载均衡器的流量。

因此,如果您不想授予对整个私有网络CIDR的访问权限,您可以授予对负载均衡节点使用的内网IP地址的访问权限。每个负载均衡子网有一个IP地址。

在的NLB选项卡上,每个负载均衡器都有一个网络接口:

在每个网络接口的详细信息选项卡上,从主专用IPv4 IP复制地址。

您可以在EC2实例的add it SG中使用该内网IP地址。

请参考AWS Documentation

票数 11
EN

Stack Overflow用户

发布于 2022-01-26 16:58:16

在您的http访问日志尾部,您将看到没有来自网络负载均衡器的源IP地址更改,这意味着如果互联网需要访问您的端点,您需要允许端点安全组上的0.0.0.0/0。只有当您使用私有子网时才可以这样做,所以如果您将此服务器放在公共子网上,请小心,因为这种解决方案是不可取的。在这种情况下,只需使用应用程序负载均衡器。您仍然可以设置相同的监听器,也可以按实例配置目标组。如果您跟踪访问日志,应用程序负载均衡器会将源IP地址更新为它自己的私有地址。这样做的好处是,您只需要允许https流量到应用程序负载均衡器,然后您可以接受来自负载均衡器的目标组的http。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48782856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档