Security 源安全组为';t在AWS中按预期工作

Security 源安全组为';t在AWS中按预期工作,security,amazon-web-services,amazon-ec2,Security,Amazon Web Services,Amazon Ec2,我有一个EC2节点node1(安全组SG1),它应该可以从端口9200上的另一个EC2节点node2(安全组SG2)访问。现在,当我在SG1中添加一个端口为9200的入站规则,并在自定义IP部分中将SG2指定为源时,我无法从node2访问node1。另一方面,如果我在SG1中指定一个入站规则,其源代码为0.0.0.0/0或节点2的IP,那么它可以正常工作。我的方法出了什么问题?您正在尝试连接到node1的公共或私人地址吗?从: 将安全组指定为源或目标时 规则,该规则影响与安全性关联的所有实例 小

我有一个EC2节点node1(安全组SG1),它应该可以从端口9200上的另一个EC2节点node2(安全组SG2)访问。现在,当我在SG1中添加一个端口为9200的入站规则,并在自定义IP部分中将SG2指定为源时,我无法从node2访问node1。另一方面,如果我在SG1中指定一个入站规则,其源代码为0.0.0.0/0或节点2的IP,那么它可以正常工作。我的方法出了什么问题?

您正在尝试连接到node1的公共或私人地址吗?从:

将安全组指定为源或目标时 规则,该规则影响与安全性关联的所有实例 小组。例如,允许基于私有网络的传入流量 与源关联的实例的IP地址 安全组

我曾经因为尝试连接EC2实例的公共地址而被烧坏过。。。实际上,听起来与您的设置非常相似。当连接入站规则以使源为安全组时,必须通过源实例的专用地址进行通信

需要注意的一些事项:

  • 在EC2 Classic中,私有IP地址可以在EC2实例停止/启动时更改。如果您使用的是EC2 classic,您可能需要寻找一种更静态的寻址解决方案
  • 如果您在VPC中设置环境。您还可以更改正在运行的实例的安全组成员身份

原因:安全组间通信通过专用寻址工作。如果使用公共IP地址,防火墙规则将无法识别源安全组

解决方案:您应该使用公共DNS记录对实例进行寻址-当您的一个实例查询DNS名称时,该记录实际上将指向私有IP地址

e、 g.如果您的实例具有公共IP
203.0.113.185
和私有IP
10.1.234.12
,您将获得一个公共DNS名称,如
ec2-203-0-113-185.eu-west-1.compute.amazonaws.com

ec2-203-0-113-185.eu-west-1.compute.amazonaws.com
如果外部查询将解析为
203.0.113.185
,如果内部查询将解析为
10.1.234.12
。这将使您的安全组能够按预期工作

这将使您能够使用弹性IP,因为您只需使用弹性IP的公共DNS条目。还有:

通过公共NAT IP访问其他实例的实例 根据具体情况,区域或互联网数据传输将收取地址费 实例是否位于同一区域


公共DNS对我不起作用。
我所做的是使用另一个实例的安全组创建一个自定义入站规则

这是一个很好的解释,我认为详细的内部更好。对我来说,这无疑消除了我的困惑。所以,一个安全组中的一组实例如何被列入白名单?