限制AWS安全组的SSH访问

时间:2018-03-11 19:04:05

标签: amazon-web-services ssh amazon-vpc network-security-groups

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

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

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

实例#1:Web服务器

  • allow_http inbound and outbound port 80 0.0.0.0/0
  • allow_https inbound and outbound port 443 0.0.0.0/0
  • allow_internal_ssh inbound and outbound port 22 allow_internal_ssh (self)

实例#2:仅限SSH

  • allow_ssh inbound and outbound port 22 0.0.0.0/0 # soon to be my home IP
  • allow_internal_ssh inbound and outbound port 22 allow_internal_ssh (self)

我希望#1 只能通过SSH从#2 访问。

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

通过上述设置,我无法连接到#2

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

听起来你的要求是:

实例#1(Web服务器):

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

实例#2:

  • 允许从家中访问SSH

要实现此目的,您需要两个安全组 - 一个与每个实例关联。

您应该为Instance#1 创建安全组:

  • HTTP:允许来自0.0.0.0/0
  • 的端口80的入站
  • HTTPS:允许来自0.0.0.0/0
  • 的端口443上的入站
  • SSH:允许来自安全组#2的端口22的入站(参见特定安全组)

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

  • SSH:允许来自家庭IP地址的端口22入站

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