1

我从 Visual Studio 创建了一个 Elastic Beanstalk 环境,需要登录才能为底层 ec2 vm 提供服务。

我没有服务器的凭据,所以我想使用EC2 Instance Connect

当我单击连接时,我收到一条错误消息:

我们无法连接到您的实例。确保为 EC2 Instance Connect 正确配置了您的实例的网络设置。有关更多信息,请参阅任务 1:配置对实例的网络访问。

在链接之后,我找到了说明:

  • 确保与您的实例关联的安全组允许来自您的 IP 地址或网络的端口 22 上的入站 SSH 流量。
  • (Amazon EC2 控制台基于浏览器的客户端)我们建议您的实例允许来自为服务发布的推荐 IP 块的入站 SSH 流量。使用EC2_INSTANCE_CONNECTservice 参数的过滤器来获取 EC2 Instance Connect 子集中的 IP 地址范围。

如何通过 EC2 Instance Connect 连接到底层 EC2 的 Elastic Beanstalk?

我试过的:

我创建了一个包含我的客户端 IP 地址的新安全组,但这不起作用。这是有道理的,因为它是在控制台中运行的 EC2 Instance Connect 应用程序建立 SSH 连接,而不是我的本地计算机。

还查看了 ip 范围 json 文件(https://ip-ranges.amazonaws.com/ip-ranges.json),但不确定如何处理。

在此处输入图像描述

4

2 回答 2

4

我误解了设置 EC2 实例连接说明。这篇支持文章有更清晰的说明: https ://aws.amazon.com/premiumsupport/knowledge-center/ec2-instance-connect-troubleshooting/

基于浏览器的 SSH 连接要求您的实例的安全组入站规则允许EC2 Instance Connect 访问TCP 端口 22 上的 SSH。

关键是找到EC2 Instance Connect的 IP ,然后创建一个安全组以将该 IP 地址列入白名单。

Get-AWSPublicIpAddressRange可以使用(或 curl)通过 PowerShell 检索 EC2 实例连接 IP 。对于 us-west-2:

> Get-AWSPublicIpAddressRange -Region us-west-2 -ServiceKey EC2_INSTANCE_CONNECT | select IpPrefix


IpPrefix
--------
18.237.140.160/29

一旦我将我的安全组配置为使用该来源,我就可以连接。

在此处输入图像描述

于 2021-03-31T17:42:23.613 回答
2

通常,使用 EC2 Instance Connect 的更好方法是通过SSM System Manager。它不需要打开任何入站端口。相反,您应该添加/修改您的安装角色以允许 SSM工作。此外,您可以使用常规 IAM 权限控制对您的实例的访问,这与 EC2 Instance Connect 不同。

通过 SSM 进行的连接与 EC2 Instance Connect 位于 AWS 控制台中的同一菜单中。因此,一旦您设置了您的实例角色,请等待几分钟让该实例向 SSM 注册,一旦发生这种情况,您应该能够使用 SSM System Manager 从控制台连接到您的实例。

关于 EC2 Instance Connect IP 范围。我不知道发布的哪个范围仅适用于 EC2 Instance Connect。您可能必须按地区过滤它,然后找到一个有效的。在更糟糕的情况下,它的尝试和查看方法。

于 2021-03-31T08:40:21.833 回答