【问题标题】:AWS Instance Only Allow Traffic From Load BalancerAWS 实例仅允许来自负载均衡器的流量
【发布时间】:2018-08-20 00:21:24
【问题描述】:

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

我有一个负载均衡器安全组(“LB-SG”)和一个用于实例 8545 的安全组(“App-SG”)。我希望实例 8545 仅允许来自属于负载均衡器/自动扩展组的实例的流量。因此,我在端口 8545 上将“LB-SG”作为“App-SG”的入站规则,但它不起作用。但是,如果我只是将 8545 端口上的实例 7000 的 IP 地址作为入站规则包含在“LB-SG”中,它就可以完美地工作。但这并不能解决我的问题,因为如果 Auto-Scaling Group 添加了更多实例或 IP 地址发生更改,那么它将无法正常工作。

编辑:为了清楚起见重新措辞

【问题讨论】:

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


    【解决方案1】:

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

    如果您希望实例接受来自负载均衡器的流量,则:

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

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

    结果:与 App-SG 关联的每个实例都将允许来自负载均衡器的入站流量。

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

    无需使用 IP 地址。

    【讨论】:

    • 所以这就是我正在尝试的,但它不起作用,这就是我感到困惑的原因。我正在为另外两个实例做同样的事情,它运行良好,但允许从负载均衡器到我的“App-SG”的流量不起作用
    • 我有一个负载均衡器,可以将人们引导到我的目标组,该目标组正在侦听端口 7000(这是我的前端所在的位置。我使用以太坊作为后端,所以我在端口上有它8545 并且也需要连接到那个。所以现在我有两个实例实例 7000(用于端口 7000)和实例 8545(端口 8545)。我有一个负载均衡器安全组(“LB-SG”)和一个安全组( “App-SG”)用于实例 8545。实例 7000 具有“LB-SG”,实例 8545 具有“App-SG”,允许“LB-SG”。不适用于实例 8545,但适用于实例 7000。
    • LB-SG 仅用于负载均衡器,不应与实例关联。当人们连接到负载均衡器时,它会将流量发送到目标组。您希望负载均衡器如何知道是将它们发送到端口 7000 还是端口 8545?或者负载均衡器是否只使用 7000 而您希望允许直接访问 8545?您的配置仍然很混乱。随时编辑您的问题以更清楚地解释它。
    • 完全改写。现在应该有意义了。你的回答帮助我更好地表达了它
    【解决方案2】:

    第二次尝试...

    您应该创建三个安全组:

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

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

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

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

    【讨论】:

    • 您的假设是正确的,我希望实例 8545 仅从 App-SG 接收。问题是,我的设置与您一直描述的完全一样,但它不适用于实例 8545。它不允许来自 App-SG 的流量,但如果我直接添加实例 7000 的 IP(其中已使用 App-SG),那么它就可以工作了。
    • 我认为这与负载均衡器有关,因为如果我允许来自任何地方的流量(或只是输入 IP 地址)它就可以工作。使用安全组来允许来自负载均衡器的入站流量不起作用
    • 我很困惑。您是否希望负载均衡器发送到 7000 上的 Auto Scaling 组实例到 8545 上的额外实例?它们提供相同的流量吗?
    • 不,你最初的想法是正确的。负载均衡器应该只对 7000 上的实例进行均衡,因为这是唯一拥有多个实例的端口(因为它们是自动缩放组的一部分)。端口 8545 上的实例将永远是一个实例(无扩展或负载平衡)。我只需要作为自动缩放组的一部分创建的实例(它们都在端口 7000 上)能够连接到端口 8545 上的单个实例。
    • 在这种情况下,使用 App-SG 的 sg-xxxx 应该可以正常工作。确保您通过其私有 IP 地址访问 instance8545,而不是公共 IP 地址。
    猜你喜欢
    • 2020-06-03
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    相关资源
    最近更新 更多