我正在一个共享 AWS 账户中设置几个 EC2 实例,并希望让它们相互访问。同时,我想禁止该账户中其他实例的访问。
我创建了一个安全组并添加了从“我的 IP”进行的 SSH 访问以便登录,并且运行良好。
现在我需要 SSH之间所有实例,但我不能,即使它们都在同一安全组。
我怎样才能做到这一点?
答案1
所以你在 AWS 上设置了一些集群,并且需要在节点之间进行 SSH 访问,对吗?你有两个选择:
最简单的方法是将每个实例 IP 添加到安全组入站列表中 - 但这意味着每次在集群中添加新实例时都需要更新 SG。(如果你这样做的话)。不要这样做,我只是为了完整性而提到它。
好得多是使用安全组 ID本身就是流量来源。
重要的是要明白,SG 不仅仅是一个入站过滤器而且还标记了所有出站流量 - 然后您可以在同一个或其他安全组中引用原始 SG ID。
看看默认您的 VPC 中的安全组。您很可能会看到类似以下内容的内容:
请注意,该规则指的是安全组 ID 本身。
根据此规则,来自安全组成员的任何主机的所有内容都将被组中的所有其他成员/实例接受。
在您的情况下,您可能希望将其限制为 SSH、ICMP(如果您需要ping
工作)或您需要的任何其他端口。
还请检查出站选项卡,并确保其中有一个条目所有流量(除非0.0.0.0/0
您有特定的安全需求),否则实例将无法发起任何出站连接。默认情况下它应该在那里。
希望有帮助:)
答案2
在您想要使用的安全组配置中允许实例之间的 SSH:
- 前往入站标签
- 点击编辑
- 点击添加规则
- 为了类型选择SSH
- 为了来源输入安全组 ID
- 节省
- 前往欧邦标签
- 点击编辑
- 点击添加规则
- 为了类型选择SSH
- 为了目的地输入安全组 ID
- 节省
答案3
您应该添加一条启用 SSH 的规则,其源是组 ID 本身。
例如,如果你的安全组 ID 是,sg-12345678
你可以在该组中添加一条规则,该规则会打开SSH从sg-12345678
。
还要确保出站0.0.0.0/0
选项卡有或至少再次有 SSH 的规则,sg-12345678
否则出站流量将被阻止。默认情况下0.0.0.0/0
应该在那里。
答案4
允许您为其分配的安全组进行 ssh 访问。