Amazon web services 从其他安全组中引用AWS安全组

Amazon web services 从其他安全组中引用AWS安全组,amazon-web-services,Amazon Web Services,我试图理解这句话: “您可以从其他安全组引用AWS安全组。” 这到底意味着什么 我就是这样理解的。我创建了一个安全组,称之为“SG-10”,并将其附加到一个实例“EC2-10”。SG“SG-10”内部定义有允许端口443 现在,我创建了一个安全组,将其命名为“SG-20”,并将其附加到一个实例“EC2-20”。这也允许使用端口443。现在,如果我在“SG-20”中调用“SG-10”,这是否意味着“EC2-10”将能够连接到端口443上的“EC2-20” 问候,, 尼克 如果我在“SG-20”里面

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

这到底意味着什么

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

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

问候,, 尼克

如果我在“SG-20”里面叫“SG-10”

不,您不能呼叫安全组,这没有任何意义

如果安全组a引用安全组B,则表示安全组a所连接的实例允许到安全组B所连接的另一个实例的入站或出站流量。但是,如果要将安全组为A的实例的流量发送到安全组为B的实例,则必须使用实例B的IP或DNS

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

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


作为引用安全组的示例,设想一个三层体系结构:

  • 负载平衡器从Internet接收流量并向Amazon EC2实例发送请求
  • 亚马逊EC2实例接收来自负载平衡器的请求,并向亚马逊RDS数据库发送查询
  • 亚马逊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安全组应允许将源设置为SG-10的连接

另一方面,我应该提到,除非有特定的网络需求(例如创建DMZ),否则网络ACL通常应保留默认的“允许所有”设置