AWS 如何使用 Session Manager 安全连接到 EC2 的方法
AWS 如何使用 Session Manager 安全连接到 EC2 的方法

AWS 如何使用 Session Manager 安全连接到 EC2 的方法

内容纲要

AWS 如何使用 Session Manager 安全连接到 EC2 的方法

AWS Systems Manager(旧称 SSM)是一个集成了各种管理功能的服务,用于 AWS 内资源的配置/变更管理和应用程序参数的集中管理等。

在 AWS Systems Manager 中,有一个名为 "Session Manager" 的服务。在使用 EC2 的环境中,Session Manager 是一项非常优秀的服务,从维护性和网络安全性的角度来看。

用它可以不用SSH等软件,我们可以直接在AWS的网页上进行管理实例的操作。

本文将介绍如何使用 Session Manager 安全地连接到 EC2 实例。

fig1bb-1

图片来自https://aws.amazon.com/cn/blogs/mt/how-to-search-through-your-aws-systems-manager-session-manager-console-logs-part-1/

可通过 Session Manager 实现的功能

Session Manager 可以实现以下典型用途:

  • 通过 AWS 管理控制台登录到 EC2 实例的控制台
  • 通过 Session Manager 连接到 EC2 实例的 SSH

以下是上述功能的优点:

  • 无需准备跳板服务器
  • 无需提前准备维护路径以便对外(主要是互联网)进行维护
  • 无需为 EC2 实例分配 PublicIP/ElasticIP

使用 Session Manager 需要注意的地方

在使用 Session Manager 时,有一些设计上需要考虑的要点,请列举如下:

  1. 在 EC2 实例上安装并运行 SSM Agent

    对于使用 Linux 的情况,如果使用 Amazon Linux 2 和Ubuntu作为 AMI,则默认已经在运行,就不需要做一些额外的安装操作,目前我自己只测试过这两个OS,其他我觉得也自带了,需要验证一下。

  2. 使用 ssm-user 登录

    如果通过 AWS 管理控制台登录,将使用 ssm-user 登录。

    此外,请注意登录后的当前目录为 "/usr/bin",请使用 "sudo" 等适当的命令切换到正确的用户。

  3. 难以严格控制登录用户

    在单个 EC2 实例上,在具有严格的服务器资源控制的多个操作系统用户的环境中,应禁止通过 AWS 管理控制台进行连接(取决于第 2 点)。

    通过 SSH 进行连接时,可以使用密钥进行控制,因此此限制并不适用。

  4. 引入 IAM 用户管理而不是 OS 用户管理

    使用 Session Manager 连接到 EC2 实例的权限取决于 IAM 用户的权限。因此,需要进行与传统 Linux 操作系统上的用户管理不同的设计,意识到使用 IAM Role/IAM Policy 进行连接控制/管理的必要性。

    此外,记录了哪个 IAM 用户何时登录到哪个 EC2 实例的信息将全部保存在 AWS CloudTrail 中。

具体设置步骤

1. 前提条件

本次我使用的Ubuntu22.04系统,通过AWS网页进行操作。

由于 AWS 官方文档中包含了各种操作系统的说明,所以在以下步骤中我会进行适时的指引,但如果使用其他环境,请参考相应的文档。

2. EC2 实例上的步骤

如果你和我一样是Ubuntu或者Amazon Linux则不需要安装SSM Agent。

如果需要安装,请参考官方文档中的这里的步骤进行操作。

请注意,现在的 Amazon Linux 2和Ubuntu 默认安装了 SSM Agent,所以我们可以查看一下确定 SSM Agent是否在运行。

运行以下命令确定 SSM Agent是否在运行。

sudo snap list amazon-ssm-agent

截屏2023-07-16 12.46.32

确认都没有问题,就可以进行下一步了。

2. IAM 的设置

将以下策略分配给 IAM 用户:

注意:如果目标 IAM 用户具有 AdministratorAccess 权限,则无需执行此操作。

  • AmazonSSMFullAccess

将包含以下策略的 IAM Role 分配给 EC2 实例:

  • AmazonSSMManagedInstanceCore

    下面的步骤我是用的日语界面,因平时都是用的日语,但是大概操作都是去IAM创建一个角色,可以照着图片里的位置对比着操作。

截屏2023-07-16 12.49.24

勾选对应的权限然后下一步

截屏2023-07-16 12.51.48

起个名字然后完成即可

截屏2023-07-16 12.54.57

通过 AWS 管理控制台进行连接

到这里基本就差不多快结束了,我们需要给EC2需要配置SSM的实例配置角色

  1. 首先,进入EC2服务、选择行动,安全,角色变更

截屏2023-07-16 12.57.13

  1. 然后选择我们刚刚创建的角色点更新

截屏2023-07-16 12.59.44

  1. 过一会儿就可以使用Session Manager 来连接我们的实例。

截屏2023-07-16 13.01.38

总结

本文介绍了使用 Session Manager 安全连接到 EC2 实例的方法。Session Manager 是 AWS Systems Manager 平时在工作中其实用的很多,很有必要掌握它的使用技巧。使用 Session Manager 可简化连接过程、提高效率,并提供更好的安全性。希望本文为使用 Session Manager 连接 EC2 实例提供了有用的指导和参考。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注