限制 AWS 安全组的 SSH 访问

Limit SSH access by AWS security group

我有两个 EC2 实例,它们都在同一个 public 子网中,并且都在同一个可用区中。

我希望其中一个实例能够通过 SSH 访问另一个实例。

以下是我目前配置的安全组:

实例 #1:Web 服务器

实例 #2:仅限 SSH

我希望 #1 只能通过 SSH 从 #2.

访问

我以为我可以通过为两者分配相同的安全组 (allow_internal_ssh) 来做到这一点,但是,它不起作用!

使用上述设置,我无法连接到 #2

如果我为两个实例都提供 allow_ssh 安全组,我可以访问 SSH 服务器 (#2) 然后从那里登录到 Web 服务器 (#1).

非常感谢任何有关调试此问题的建议或帮助设置来自同一安全组的 SSH 访问!

如果您想允许#2 通过 SSH 连接到#1,您可以允许入站到端口 22 上 #2 的私有 IP 地址 (10.x.x.x)

听起来您的要求是:

实例 #1(Web 服务器):

  • 允许HTTP/HTTPS从任何地方访问
  • 仅允许来自实例 #2 的 SSH

实例#2:

  • 允许从家中进行 SSH 访问

为此,您需要两个安全组 -- 每个实例关联一个。

您应该为实例 #1 创建一个安全组:

  • HTTP:允许端口 80 从 0.0.0.0/0
  • 入站
  • HTTPS:允许从 0.0.0.0/0
  • 端口 443 入站
  • SSH:允许端口 22 从安全组 #2 入站(请参阅特定安全组)

您应该为实例 #2 创建一个安全组:

  • SSH:允许从您的家庭 IP 地址通过端口 22 入站

神奇的是一个安全组 (#1) 可以引用另一个安全组 (#2)。在上述配置中,任何与安全组 #2 关联的实例都将被允许访问端口 22 上与安全组 #1 关联的任何实例。(当然,仍然需要标准登录名和密钥对。)