AWS实例仅允许来自负载均衡器的流量

时间:2018-03-12 02:45:10

标签: amazon-web-services amazon-ec2 load-balancing elastic-load-balancer aws-security-group

我有一个Load Balancer和Auto-Scaling Group。 Load Balancer将流量发送到我的Auto-Scaling组。我有两个实例:Instance 7000(正在侦听端口7000并且是自动扩展组的一部分并从负载均衡器获取其流量)和实例8545(正在侦听端口8545并且只是一个单个实例,它是不属于Load Balancer或Auto-Scaling Group。)

我有一个负载均衡器安全组(" LB-SG")和一个用于实例8545的安全组(" App-SG")。我希望Instance 8545仅允许来自Load Balancer / Auto-Scaling Group一部分的Instances的流量。所以我包括" LB-SG"作为" App-SG"的入站规则在8545端口,但它无法正常工作。但是,如果我只是将端口8545上的Instance 7000的IP地址作为入站规则包含在" LB-SG"它完美地运作。但这并不能解决我的问题,因为如果Auto-Scaling Group添加了更多实例或IP地址发生了变化,那么它就无法工作。

编辑:为清晰起见重写

2 个答案:

答案 0 :(得分:4)

您的要求有点不清楚,但这是一般用例...

如果您希望实例接受来自Load Balancer的流量,则:

  • 为您的负载均衡器(“LB-SG”)
  • 创建一个安全组
  • 为您的实例创建安全组(“App-SG”)
  • 在App-SG中,允许从LB-SG
  • 到所需端口的入站流量

也就是说,App-SG规则专门以其唯一名称(sg-abcd1234)引用LB-SG。

结果:与App-SG关联的每个实例都将允许来自Load Balancer的入站流量。

同样,如果您希望特定实例(Instance-A)接受来自其他实例(Instance-B)的流量,请为每个实例创建不同的安全组,并将规则添加到Instance-A安全组以允许入站来自Instance-B安全组的给定端口上的流量。

无需使用IP地址。

答案 1 :(得分:0)

第二次尝试......

您应该创建三个安全组:

    负载均衡器的
  • LB-SG
    • 允许入站80/443
  • App-SG ,用于Auto Scaling组中的实例
    • 允许来自LB-SG的入站7000
  • 8545实例的
  • Extra-SG (我不知道该怎么称呼它!)
    • 允许来自App-SG的入站8545

再一次,无需引用特定的IP地址。

附注:您说“允许来自Load Balancer / Auto-Scaling Group一部分的实例的流量” - 实例位于Auto Scaling组中,但是没有实例负载均衡器。因此,我假设8545实例从App-SG(7000)实例接收流量。

更新:确保实例通过专用IP地址进行通信。