在 EC2 安全组规则中输入 IP 地址时使用什么格式?

What format to use when entering an IP address into an EC2 Security Group rule?

我正在尝试配置从堡垒主机(位于 public 子网)到同一 VPC 中的私有 linux 实例(位于私有子网)的安全 ssh 连接。

当我为私有 linux 实例添加安全组规则时,最初它显示规则为:

请注意,在添加堡垒机IP地址之前,水印显示"CIDR, IP or Security Group",但是当我添加堡垒机IP地址时,它抛出错误:

The source needs to be a CIDR block or a Security Group ID.

为什么不允许我在这里输入堡垒主机的 IP 地址?

看来您的情况是:

  • 您在 public 子网中有一个 EC2 实例 ("Bastion instance"),并且您可以通过 SSH 访问它
  • 您在私有子网中有一个 EC2 实例 ("private instance")
  • 您正在将与私有实例关联的安全组配置为仅允许来自 Bastion 实例的 SSH 访问

我注意到您在安全组中输入了 Public IP 地址 (52.63.198.234)。您实际上应该输入 Bastion 实例的 私有 IP 地址 。这样,实例之间的流量完全在 VPC 内流动,而不是离开 VPC(访问 public IP 地址)然后再次返回。

实际上,推荐的配置此设置的方法是:

  • 为您的 Bastion 实例创建一个安全组 ("Bastion-SG")
  • 为您的私有实例创建一个安全组("Private-SG")
  • 配置 Private-SG 以允许来自 Bastion-SG 的入站 SSH 流量

通过引用安全组的名称,将自动允许来自与指定安全组关联的任何 EC2 实例的流量(在这种情况下,任何实例与 Bastion-SG 相关联)。这意味着实例可以是 added/replaced,并且仍然会根据关联的安全组允许流量,而不必更新特定的 IP 地址。

那么,回答您的问题...是的,可以通过三种方式引用源代码。来自 EC2 文档 Security Group Rules:

  • An individual IP address, in CIDR notation. Be sure to use the /32 prefix after the IP address; if you use the /0 prefix after the IP address, this opens the port to everyone. For example, specify the IP address 203.0.113.1 as 203.0.113.1/32.
  • An IP address range, in CIDR notation (for example, 203.0.113.0/24).
  • The name (EC2-Classic) or ID (EC2-Classic or EC2-VPC) of a security group.

因此,IP地址实际上必须使用CIDR表示法,以/32结尾。如果您认为这与 "IP" 的提示不完全一致(我倾向于同意您的看法),请随时点击控制台中的 Feedback 按钮并将您的反馈提供给 EC2 控制台团队。