EC2安全组无法相互通信

时间:2019-05-15 21:20:17

标签: amazon-web-services amazon-ec2 aws-security-group

我有两个试图通过自定义TCP端口相互通信的AWS EC2实例。每个实例都有其自己的安全组,但彼此之间无法通话。

这是我的设置:

EC2实例1

  • 名称:instance-1
  • 公共IP地址:aaa.bbb.ccc.ddd
  • 安全组ID:sg-xxxxxxxxxx1
  • SG入站规则:无
  • SG出站规则:
    • 类型:所有流量,协议:全部,端口范围:全部,目的地:0.0.0.0/0

EC2实例2

  • 名称:instance-2
  • 公共IP地址:www.xxx.yyy.zzz
  • 安全组ID:sg-xxxxxxxxxx2
  • SG入站规则:
    • 类型:自定义TCP规则,协议:TCP,端口范围:12345,源:sg-xxxxxxxxxx1

SG出站规则:

  • 类型:所有流量,协议:全部,端口范围:全部,目的地:0.0.0.0/0

问题

每当instance-1尝试向www.xxx.yyy.zzz:12345发起TCP请求时,连接就会超时。

如果我将以下入站规则添加到实例2的SG,则可以正常工作:

  • 类型:所有流量,协议:全部,端口范围:12345,源:0.0.0.0/0

摘要

我需要实例1与实例2对话,而不允许任何地方的流量访问端口12345。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

您不能使用安全组作为传入源来访问公共IP。

  

当您将安全组指定为规则的源或目标时,该规则会影响与该安全组关联的所有实例。基于与源安全组关联的实例的私有IP地址(而不是公共IP或弹性IP地址),允许传入流量。有关IP地址的更多信息,请参阅Amazon EC2实例IP寻址。

使用私有IP地址或使用公共IP作为来源。

参考

Security Group Connection Tracking