[英]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实例的公共地址而被烧毁......实际上听起来与你的设置非常相似。 当您连接入站规则以使源是安全组时,您必须通过源实例的私有地址进行通信。
有些事情要注意:
原因: 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.