17

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

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

在此处输入图像描述

在此处输入图像描述

请注意,在添加堡垒主机的IP地址之前,水印显示“CIDR,IP或安全组”,但是当我添加堡垒主机的IP地址时,它会抛出错误:

源需要是 CIDR 块或安全组 ID。

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

4

1 回答 1

26

看来你的情况是:

  • 您在公有子网中有一个 EC2 实例(“堡垒实例”),您可以通过 SSH 连接到它
  • 您在私有子网中有一个 EC2 实例(“私有实例”)
  • 您正在将与私有实例关联的安全组配置为仅允许从堡垒实例进行 SSH 访问

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

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

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

通过引用安全组的名称,将自动允许来自与指定安全组关联的任何 EC2 实例(在本例中为与 Bastion-SG 关联的任何实例)的流量。这意味着可以添加/替换实例,并且仍将根据关联的安全组允许流量,而不必更新特定的 IP 地址。

所以,回答你的问题......是的,有三种方法可以引用源代码。从 EC2 文档安全组规则

  • 一个单独的 IP 地址,采用 CIDR 表示法。请务必在 IP 地址后使用 /32 前缀;如果您在 IP 地址后使用 /0 前缀,这将向所有人开放端口。例如,将 IP 地址 203.0.113.1 指定为 203.0.113.1/32。
  • IP 地址范围,采用 CIDR 表示法(例如,203.0.113.0/24)。
  • 安全组的名称(EC2-Classic)或 ID(EC2-Classic 或 EC2-VPC)。

因此,IP 地址实际上必须使用 CIDR 表示法,并/32在末尾加上。如果您认为这与“IP”的提示不太匹配(我倾向于同意您的观点),请随时点击控制台中的“反馈”按钮并将您的反馈提供给 EC2 控制台团队。

于 2016-10-09T10:37:33.177 回答