教程:完成使用 EC2 Instance Connect 连接到实例所需的配置 - Amazon Elastic Compute Cloud

教程:完成使用 EC2 Instance Connect 连接到实例所需的配置

要在 Amazon EC2 控制台中使用 EC2 Instance Connect 连接到实例,首先需要完成让您能够成功连接到实例的先决条件配置。本教程旨在引导您完成各项任务以完成先决条件配置。

教程概述

在本教程中,您将完成以下四项任务:

  • 任务 1:授予使用 EC2 Instance Connect 所需的权限

    首先,您将创建一个 IAM 策略,其中包含允许您将公有密钥推送到实例元数据的 IAM 权限。您将此策略附加到您的 IAM 身份(用户、用户组或角色),以便您的 IAM 身份能够获得这些权限。

  • 任务 2:允许从 EC2 Instance Connect 服务到实例的入站流量

    然后,您将创建一个安全组,以允许从 EC2 Instance Connect 服务到实例的流量。当您在 Amazon EC2 控制台中使用 EC2 Instance Connect 连接到实例时,将需要此安全组。

  • 任务 3:启动实例

    然后,您将使用预装了 EC2 Instance Connect 的 AMI 启动一个 EC2 实例,然后添加上一步中创建的安全组。

  • 任务 4:连接到实例

    最后,您将在 Amazon EC2 控制台中使用 EC2 Instance Connect 连接到您的实例。如果可以连接,则可以确定在任务 1、2 和 3 中完成的先决条件配置已经成功。

任务 1:授予使用 EC2 Instance Connect 所需的权限

在使用 EC2 Instance Connect 连接到实例时,EC2 Instance Connect API 会将一个 SSH 公有密钥推送到实例元数据并在其中保留 60 秒。您需要将一个 IAM 策略附加到您的 IAM 身份(用户、用户组或角色),以授予您将公有密钥推送到实例元数据的必要权限。

任务目标

您要创建 IAM 策略来授予将公有密钥推送到实例的权限。要允许的具体操作是 ec2-instance-connect:SendSSHPublicKey。您还必须允许 ec2:DescribeInstances 操作,以确保您能够在 Amazon EC2 控制台中查看和选择您的实例。

创建好策略后,将此策略附加到 IAM 身份(用户、用户组或角色),以便 IAM 身份能够获得相关权限。

您将创建一个配置如下的策略:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2-instance-connect:SendSSHPublicKey", "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*" } ] }
重要

本教程中创建的 IAM 策略是一个权限十分宽松的策略;它允许您使用任何 AMI 用户名连接到任何实例。我们使用这种高度宽松的策略来确保教程的简单性,并侧重于本教程所讲授的具体配置。但在生产环境中,我们建议您将 IAM 策略配置为提供最低权限。有关示例 IAM policies,请参阅 为 EC2 Instance Connect 授予 IAM 权限

创建并附加一个允许您使用 EC2 Instance Connect 连接到实例的 IAM 策略
  1. 首先创建 IAM 策略

    1. 打开 IAM 控制台:https://console.aws.amazon.com/iam/

    2. 在导航窗格中,选择策略

    3. 选择创建策略

    4. 指定权限页面中,请执行以下操作:

      1. 对于服务,选择 EC2 Instance Connect

      2. 允许的操作下,在搜索字段中开始键入 send 以显示相关操作,然后选择 SendSSHPublicKey

      3. 资源下,选择全部。对于生产环境,我们建议用 ARN 来指定实例,但在本教程中,您会允许所有实例。

      4. 选择添加更多权限

      5. 对于 服务,选择 EC2

      6. 允许的操作下,在搜索字段中开始键入 describein 以显示相关操作,然后选择 DescribeInstances

      7. 选择下一步

    5. 查看和创建页面中,请执行以下操作:

      1. 对于 Policy name(策略名称),输入此策略的名称。

      2. 选择 创建策略

  2. 然后将该策略附加到您的身份

    1. 在 IAM 控制台的导航窗格中,选择 Policies(策略)。

    2. 在策略列表中,选中要附加的策略名称旁边的选项按钮。您可以使用搜索框筛选策略列表。

    3. 依次选择操作附加

    4. IAM 实体下,选择您的身份(用户、用户组或角色)旁的复选框。您可以使用搜索框筛选实体列表。

    5. 选择附加策略

此动画将演示如何创建 IAM 策略。要查看此动画的文字版,请参阅前面过程中的步骤。
此动画演示如何将 IAM 策略附加到 IAM 身份。要查看此动画的文字版,请参阅前面过程中的步骤。

任务 2:允许从 EC2 Instance Connect 服务到实例的入站流量

在 Amazon EC2 控制台中使用 EC2 Instance Connect 连接到实例时,必须允许来自 EC2 Instance Connect 服务的流量到达实例。这与从本地计算机连接到实例不同;对于后者,您必须允许从本地计算机到实例的流量。要允许来自 EC2 Instance Connect 服务的流量,您必须创建一个安全组,以允许来自 EC2 Instance Connect 服务的 IP 地址范围的入站 SSH 流量。

AWS 使用前缀列表来管理 IP 地址范围。EC2 Instance Connect 前缀列表的名称如下,请将 region 替换为区域代码:

  • IPv4 前缀列表名称:com.amazonaws.region.ec2-instance-connect

  • IPv6 前缀列表名称:com.amazonaws.region.ipv6.ec2-instance-connect

任务目标

您将创建一个安全组,以允许来自实例所在区域的 IPv4 前缀列表的入站 SSH 流量通过端口 22。

创建一个安全组,以允许从 EC2 Instance Connect 服务到实例的入站流量
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择安全组

  3. 选择Create security group(创建安全组)。

  4. Basic details (基本详细信息) 下面,执行以下操作:

    1. 对于安全组名称,为您的安全组输入一个有意义的名称。

    2. 对于描述,为您的安全组输入一个有意义的描述。

  5. 入站规则下,执行以下操作:

    1. 选择 添加规则

    2. 对于 Type,选择 SSH

    3. 对于,请保留自定义

    4. 来源旁的字段中,选择 EC2 Instance Connect 的前缀列表。

      例如,假设实例位于美国东部(弗吉尼亚州北部)(us-east-1) 区域,并且用户将连接到其公有 IPv4 地址,则选择以下前缀列表:com.amazonaws.us-east-1.ec2-instance-connect

  6. 选择创建安全组

此动画将演示如何配置安全组。要查看此动画的文字版,请参阅前面过程中的步骤。

任务 3:启动实例

启动实例时,必须指定包含启动实例所需信息的 AMI。您可以选择启动已预装或未预装 EC2 Instance Connect 的实例。在本任务中,我们将指定一个预装了 EC2 Instance Connect 的 AMI。

如果您启动未预装 EC2 Instance Connect 的实例,同时又需要使用 EC2 Instance Connect 连接到实例,则需要执行额外的配置步骤。这些步骤不在本教程的介绍范围之内。

任务目标

您要使用预装了 EC2 Instance Connect 的 Amazon Linux 2023 AMI 来启动实例。您还需要指定之前创建的安全组,以便能够在 Amazon EC2 控制台中使用 EC2 Instance Connect 连接到实例。由于您将使用 EC2 Instance Connect 连接到实例,这会将一个公有密钥推送到实例元数据中,因此在启动实例时无需指定 SSH 密钥。

启动可以在 Amazon EC2 控制台中使用 EC2 Instance Connect 进行连接的实例
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 屏幕顶部的导航栏中会显示当前所在 AWS 区域(例如,爱尔兰)。选择要在其中启动实例的区域。这一选择十分重要,因为您创建了一个允许特定区域流量的安全组,因此必须选择在同一区域启动实例。

  3. 从 Amazon EC2 控制台控制面板中,选择启动实例

  4. (可选)在 Name and tags(名称与标签)下,为 Name(名称)输入实例的描述性名称。

  5. 应用程序和操作系统映像(亚马逊机器映像)下,选择快速启动。默认会选择 Amazon Linux。在亚马逊机器映像(AMI)下,已默认选择了 Amazon Linux 2023 AMI。对于此任务,请保留默认选择。

  6. 对于实例类型下的实例类型,请保留默认选择,也可选择其他实例类型。

  7. 密钥对(登录)下的密钥对名称,请选择继续操作但不提供密钥对(不推荐)。使用 EC2 Instance Connect 连接到实例时,EC2 Instance Connect 会将一个密钥对推送到该实例的元数据,该密钥正是要用于连接的密钥对。

  8. Network settings(网络设置)下,执行以下操作:

    1. 对于自动分配公有 IP,请保留启用

      注意

      要在 Amazon EC2 控制台使用 EC2 Instance Connect 连接到实例,实例必须具有一个公有 IPv4 或公有 IPv6 地址。

    2. 对于防火墙(安全组),请选择选择现有安全组

    3. 常用安全组下,选择您之前创建的安全组。

  9. Summary(摘要)面板中,选择 Launch instance(启动实例)。

此动画将演示如何启动实例。要查看此动画的文字版,请参阅前面过程中的步骤。

任务 4:连接到实例

在使用 EC2 Instance Connect 连接到实例时,EC2 Instance Connect API 会将一个 SSH 公有密钥推送到实例元数据并在其中保留 60 秒。SSH 进程守护程序使用 AuthorizedKeysCommandAuthorizedKeysCommandUser 来查找实例元数据的公有密钥以用于身份验证,然后将您连接到实例。

任务目标

在此任务中,您将在 Amazon EC2 控制台中使用 EC2 Instance Connect 连接到实例。如果您完成了前提任务 1、2 和 3,则连接应该会成功。

连接到实例的步骤

使用以下步骤连接到实例。要观看这些步骤的动画,请参阅 观看动画:连接到实例

在 Amazon EC2 控制台中使用 EC2 Instance Connect 连接实例
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 屏幕顶部的导航栏中会显示当前所在 AWS 区域(例如,爱尔兰)。选择实例所在的区域。

  3. 在导航窗格中,选择实例

  4. 选择您的实例,然后选择连接

  5. 选择 EC2 Instance Connect 选项卡。

  6. 对于连接类型,选择使用 EC2 Instance Connect 进行连接

  7. 选择连接

    这时将在浏览器中打开一个终端窗口,并且您已连接到实例。

此动画将演示如何使用 EC2 Instance Connect 连接实例。要查看此动画的文字版,请参阅前面过程中的步骤。