繁体   English   中英

源安全组在AWS中未按预期工作

[英]Source security group isn't working as expected in AWS

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

您是否尝试连接到node1的公共或私人地址? 文档

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

我之前因为试图连接到EC2实例的公共地址而被烧毁......实际上听起来与你的设置非常相似。 当您连接入站规则以使源是安全组时,您必须通过源实例的私有地址进行通信。

有些事情要注意:

  • 在EC2 Classic中,私有IP地址可以在EC2实例的停止/启动时更改。 如果您使用的是EC2 classic,您可能需要查看有关弹性DNS名称的讨论,以获得更加静态的寻址解决方案。
  • 如果在VPC中设置环境,则私有IP地址是静态的 您还可以更改正在运行的实例的安全组成员身份。

原因: Inter安全组通信适用于私有寻址。 如果使用公共IP地址,防火墙规则将无法识别源安全组。

解决方案:您应该使用公共DNS记录来解决您的实例 - 当您的某个实例查询DNS名称时,这实际上会指向私有IP地址。

例如,如果您的实例具有公共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条目。 此外, 让DNS解析为内部IP意味着您不会在实例之间为数据带来带宽费用

通过其公共NAT IP地址访问其他实例的实例将收取区域或Internet数据传输费用,具体取决于实例是否位于同一区域。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM