如何限制仅从NLB访问EC2



问题

是否有方法确保访问仅来自特定NLB?在目前NLB的限制下,我不确定是否有办法。

限制

  • AWS网络负载平衡器(NLB(没有安全组(SG(,因此无法使用SG验证源是否为NLB。

  • NLB(实例ID目标(保留外部客户端的源IP地址,因此无法使用源IP验证源是否为NLB。

参考

  • 网络负载平衡器没有安全组
  • 源IP保护

    如果使用实例ID指定目标,则会保留客户端的源IP地址并将其提供给应用程序。

一种可能的方法是将NLB及其EC2设置在单独的专用子网中,并确保您的路由规则不允许VPC中的其他子网路由到隔离的专用子网上。

在AWS NLB文档-目标安全组中,如果目标类型为实例,则无法识别NLB并确保仅从NLB进行访问。需要使用访问NLB的客户端IP地址。

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

您不能使用目标的安全组中客户端的安全组,通过负载平衡器允许从客户端到目标的流量请改用目标安全组中的客户端CIDR块

如果需要访问互联网,请将EC2机器放在专用子网中,将目标0.0.0.0/0的路由表设置为nat网关id。因此,EC2机器可以通过nat访问互联网,但没有人可以从vpc之外访问您的EC2实例。

然后,您可以为EC2实例设置入站规则,即使是0.0.0.0/0。同样,没有人(vpc之外(可以直接访问您的EC2实例,因为它们是私有子网。如果设置NLB并在其上附加EC2实例,则只允许连接(根据NLB侦听器规则(到实例。

您可以将EC2放在NAT子网上,然后通过NLB指向此EC2。这样,尽管您的EC2安全组设置为0.0.0.0/0,但只有NLB可以访问它。

最新更新