【问题标题】:reference AWS Security Groups from other Security Groups从其他安全组引用 AWS 安全组
【发布时间】:2021-05-16 08:34:13
【问题描述】:

我试图理解这句话: “您可以从其他安全组引用 AWS 安全组。”

这到底是什么意思?

这就是我的理解。我创建了一个安全组并将其命名为“SG-10”并将其附加到实例“EC2-10”。 SG "SG-10" 内部定义了允许端口 443。

现在,我创建一个安全组并将其命名为“SG-20”并将其附加到实例“EC2-20”。这也允许端口 443。现在,如果我在“SG-20”中调用“SG-10”,这是否意味着“EC2-10”将能够连接到端口 443 上的“EC2-20”。?

问候, 尼克。

【问题讨论】:

    标签: amazon-web-services


    【解决方案1】:

    如果我在“SG-20”中调用“SG-10”

    不,你不能调用安全组,这没有任何意义。

    如果安全组 A 引用安全组 B,这确实意味着安全组 A 所附加的实例允许入站或出站流量到另一个安全组 B 所附加的实例。但是如果要将流量从安全组 A 的实例发送到安全组 B 的实例,则必须使用实例 B 的 IP 或 DNS。

    通常我们想要引用安全组而不是 IP 的原因是,IP 可能会随着时间而改变,或者根本不公开。一个相当常见的示例是拥有一个应用程序负载均衡器 (ALB) 和一组仅允许来自 ALB 的流量的 EC2 实例。 ALB 的 IP 地址会随时间变化,因此为了能够接收来自 ALB 的流量,我们可以引用它所附加的安全组。

    如果我们想从另一个安全组引用一个安全组,我们必须编辑初始安全组的规则:

    【讨论】:

      【解决方案2】:

      作为引用安全组的示例,想象一个 3 层架构:

      • 负载均衡器从 Internet 接收流量并将请求发送到 Amazon EC2 实例
      • Amazon EC2 实例从负载均衡器接收请求并将查询发送到 Amazon RDS 数据库
      • Amazon RDS 数据库接收来自 EC2 实例的请求

      这将涉及 3 个安全组:

      • 负载均衡器 (LB-SG) 上的一个安全组,允许端口 80/443 上的传入流量。
      • EC2 实例 (App-SG) 上的安全组仅允许来自负载均衡器的端口 80 上的传入流量。它通过将源设置为 LB-SG 来做到这一点。
      • RDS 数据库 (DB-SG) 上的一个安全组,允许仅来自 EC2 实例的相关端口(例如 3306)上的传入流量。它通过将源设置为 App-SG 来做到这一点。
      • 所有安全组允许所有出站流量

      通过引用其他安全组,可以添加/删除资源,而无需更改安全组。例如,可以启动另一个 EC2 实例并为其分配 App-SG 安全组。然后这个新实例将能够与数据库通信,因为DB-SG 允许来自App-SG 的传入流量,而无需绑定到任何特定的 IP 地址。

      如果一个资源与多个安全组相关联,则所有规则都适用于该资源。安全组只说“允许”。它们不包括“拒绝”规则。

      在您的 SG-10/SG-20 示例中,您没有提及流量来源,因此无法回答您的问题。如果您希望 EC2-20 接受来自 EC2-10 的连接,则 SG-20 安全组应允许 Source 设置为 SG-10 的连接。

      顺便提一下,网络 ACL 通常应保留其默认的“全部允许”设置,除非有特定的网络要求(例如创建 DMZ)。

      【讨论】:

        猜你喜欢
        • 2019-01-05
        • 1970-01-01
        • 2020-09-02
        • 2021-09-15
        • 2019-10-28
        • 2018-01-07
        • 2018-03-05
        • 2021-03-16
        相关资源
        最近更新 更多