EC2 安全组无法相互通信

jtc*_*n63 2 amazon-ec2 amazon-web-services aws-security-group

我有两个 AWS EC2 实例尝试通过自定义 TCP 端口相互通信。每个实例都有自己的安全组,但都不能相互通信。

这是我的设置:

EC2实例1

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

EC2实例2

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

SG出站规则:

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

问题

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

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

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

概括

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

ken*_*kas 5

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

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

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

参考

安全组连接跟踪