当 AWS 安全组在入站或出站规则中指定为 source/destination 时,它是否只看到私有地址?

Does AWS Security Group see only Private addresses when it is specified as a source/destination in inbound or outbound rules?

我在同一个 AZ 中有 2 个实例,并且都有 Public 个 IP 地址。我在两个实例中都添加了一个安全组,允许将源作为同一安全组的入站 ICMP ping。当我 ping 私有 IP 地址时,ping 成功。但是,当我 ping Public IP 地址时,ping 失败。

相反,当我将源更改为 0.0.0.0/0 时,ping Public IP 成功。

安全组可以针对 IP 地址(也包括 IPv4 和 IPv6)执行 public 和私有 评估。

如果可以识别源是另一个 AWS 资源,则只能对作为源的安全组执行评估。

通过作为 public IP 连接,它离开 AWS 网络并丢失元数据,然后返回入站到 AWS,它只是另一个 public IP 地址。

如果您改用 public hostname,AWS 会在它离开 AWS 之前将其转换为私有 IP 地址,以便安全组评估工作。

从技术上讲,public IP 地址未附加到 EC2 实例或其弹性网络接口 (ENI)。在 VPC 内部,一切都只知道并使用私有 IP 地址。 public IP 地址由互联网网关管理,它将 public IP 转换为私有 IP,反之亦然用于传入和传出流量。

这意味着当您 ping 另一个实例的 public IP 时,数据包离开安全组前往 Internet 网关,然后返回。因此从目标实例的角度来看,它来自 Internet因此被安全组屏蔽。