如何使用会话管理器控制对实例的访问?

上次更新时间:2021 年 3 月 17 日

我想控制对实例的访问,以便某些用户可以为我指定的实例启动会话管理器会话。该如何操作?

简短描述

您可以使用 AWS Systems Manager 会话管理器管理您的 Amazon Elastic Compute Cloud (Amazon EC2) 实例或本地实例。会话管理器通过基于浏览器的 shell 或通过 AWS 命令行界面 (AWS CLI) 进行连接。

您可以使用 Identity and Access Management (IAM) 策略来控制可以使用会话管理器访问实例的用户。IAM 策略还控制用户可以执行的 API 操作。

先决条件

解决方法

要允许用户连接到会话管理器,首先创建一个授予 IAM 用户 StartSession 权限的 IAM 策略。然后,将 IAM 策略附加到 IAM 用户。

按照以下步骤创建并附加一条 IAM 策略,允许 IAM 用户使用 AWS CLI 启动会话管理器会话。以下示例策略限制只有特定实例才能拥有启动会话的能力。

注意:如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI

1.    打开 IAM 控制台,然后从导航窗格中选择 Policies(策略)。

2.    选择 Create policy(创建策略),然后选择 JSON 选项卡。

3.    复制限制对特定实例的访问示例 JSON 文档,然后将策略粘贴到控制台的 JSON 选项卡中。

重要提示:示例策略中的资源 ARN 使用 us-east-2 AWS 区域,并包括用于实例 ID账户 ID 的占位符。请务必用自己的值替换这些内容。

4.    选择 Next: Tags(下一步:标签)。

5.    选择下一步: 检查

6.    在名称中,输入策略名称。

7.    (可选)在 Description(描述)中,输入描述。

8.    选择 Create policy(创建策略)以保存该策略。

9.    将 IAM 策略附加到您希望允许其使用会话管理器访问实例的用户。

获得访问权限的用户现在可以使用以下 AWS CLI 命令启动 start-session API 调用:

注意:用户必须用他们想要用于启动会话的实例 ID 替换 instance-id

aws ssm start-session --target instance-id

要允许用户使用 Amazon EC2 控制台启动会话,您还必须将以下 AWS 托管策略附加到用户:

  • AmazonSSMReadOnlyAccess
  • AmazonEC2ReadOnlyAccess