Amazon Systems Manager Session Manager - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Systems Manager Session Manager

Session Manager是一种完全托管的Amazon Systems Manager功能,可用于管理 Amazon Elastic Compute Cloud (Amazon EC2) 实例、本地实例和虚拟机 (VM),通过基于浏览器的交互一键式 shell 或通过Amazon Command Line Interface(Amazon CLI)。Session Manager提供安全和可审计的实例管理,无需打开入站端口、维护堡垒主机或者管理 SSH 密钥。Session Manager还允许您遵守公司策略,这些策略要求对实例的控制访问、严格的安全实践和具有实例访问详细信息的完全可审计日志,同时仍为最终用户提供对托管实例的简单一键式跨平台访问权限。

我的组织如何从 Session Manager 获益?

Session Manager 具备下列优势:

  • 使用 IAM 策略集中控制对实例的访问

    管理员可以集中地授予和撤销对实例的访问。仅使用Amazon Identity and Access Management(IAM) 策略,您就可以控制组织中的哪些个人用户或组能够使用Session Manager以及他们可以访问哪些实例。

  • 无需打开入站端口,也无需管理堡垒主机或 SSH 密钥

    在实例上保持打开入站 SSH 端口和远程 PowerShell 端口会极大增加实体在实例上运行未授权或恶意命令的风险。Session Manager 让您能够关闭这些入站端口,并且无需管理 SSH 密钥和证书以及堡垒主机和跳转主机,从而帮助您提高安全性。

  • 从控制台和 CLI 一键访问实例

    使用Amazon Systems Manager控制台或 Amazon EC2 控制台,只需单击一下即可启动会话。通过使用 Amazon CLI,您还可以启动一个会话以运行单个命令或一系列命令。因为实例的权限是通过 IAM 策略而不是 SSH 密钥或其他机制提供的,所以可大幅缩短连接时间。

  • 端口转发

    将远程实例中的任何端口重定向到客户端上的本地端口。然后,连接到本地端口,并访问在实例中运行的服务器应用程序。

  • 跨平台支持 Windows、Linux 和 macOS

    Session Manager提供了对 Windows、Linux 和macOS通过单个工具进行。例如,您不需要为 Linux 使用 SSH 客户端,也不需要在macOS实例或 RDP 连接Windows Server实例。

  • 日志记录和审计会话活动

    为了满足组织的操作或安全要求,您可能需要提供对实例的连接以及在其上运行的命令的记录。您还可以在组织中的用户开始或结束会话活动时收到通知。

    通过与以下要求集成提供日志记录和审计功能。Amazon服务:

    • Amazon CloudTrail–Amazon CloudTrail捕获有关Session Manager在您的 Amazon Web Services 账户 并将其写入存储在您指定的 Amazon Simple Storage Service (Amazon S3) 存储桶中的日志文件。您账户的所有 CloudTrail 日志都存储在一个存储桶中。有关更多信息,请参阅使用 Amazon CloudTrail 记录 Amazon Systems Manager API 调用

    • Amazon Simple Storage Service— 您可以选择将会话日志数据存储在选择用于调试和故障排除目的的 Amazon S3 存储桶中。在将日志数据发送到 Amazon S3 存储桶时,您还可以使用自己的Amazon KMS key. 有关更多信息,请参阅使用 Amazon S3(控制台)记录会话数据

    • Amazon CloudWatch Logs— CloudWatch Logs 允许您监控、存储和访问各种日志文件。Amazon服务。您可以将会话日志数据发送到 CloudWatch Logs 日志组以进行调试和故障排除目的的。在将日志数据发送到日志组时,您还可以使用自己的日志组Amazon KMS使用您的 KMS 密钥进行加密。有关更多信息,请参阅使用 Amazon CloudWatch Logs 日志记录会话数据(控制台)

    • Amazon EventBridgeAmazon Simple Notification Service— EventBridge 允许您设置规则来检测更改何时发生Amazon您指定的资源。您可以创建规则来检测组织中的用户何时启动或停止会话,然后通过 Amazon SNS 接收有关此事件的通知(例如,文本或电子邮件)。您还可以配置 CloudWatch 事件来启动其他响应。有关更多信息,请参阅使用 Amazon EventBridge 监控会话活动(控制台)

    注意

    日志记录不可用于Session Manager通过端口转发或 SSH 连接的会话。这是因为 SSH 会对所有会话数据进行加密,Session Manager仅用作 SSH 连接的隧道。

谁应该使用 Session Manager?

  • 任何希望改善其安全性和审计状态,通过集中控制实例访问来减少运行开销,以及减少入站实例访问权限的 Amazon 客户。

  • 希望监视和跟踪实例访问和活动,关闭实例上的入站端口或允许连接到没有公有 IP 地址的实例的信息安全专家。

  • 想要从一个位置授予和撤消访问权限并为 Linux 用户提供一个解决方案的管理员,macOS, 和Windows Server实例。

  • 希望只需单击一下即可从浏览器或Amazon CLI而无需提供 SSH 密钥。

Session Manager 的主要功能是什么?

  • 对该项的支持Windows Server、Linux 和macOS实例

    Session Manager使您能够建立与 Amazon Elastic Compute Cloud (EC2) 实例、本地实例和虚拟机 (VM) 的安全连接。有关支持的操作系统类型的列表,请参阅设置 Session Manager.

    注意

    仅为高级实例套餐提供对本地服务器的 Session Manager 支持。有关信息,请参阅 启用高级实例套餐

  • 支持通过控制台、CLI 和开发工具包等方式访问Session Manager功能

    您可以通过以下方式使用Session Manager:

    这些区域有:Amazon Systems Manager控制台包括访问所有Session Manager功能。您可以通过使用 Systems Manager 控制台来执行与会话相关的任何任务。

    Amazon EC2 控制台允许最终用户连接到已获得会话权限的 EC2 实例。

    Amazon CLI 包括对适用于最终用户的 Session Manager 功能的访问。您可以使用 Amazon CLI 启动会话、查看会话列表和永久结束会话。

    注意

    使用Amazon CLI运行会话命令,您必须使用版本 1.16.12 的 CLI(或更高版本),并且必须安装Session Manager插件在本地计算机上。有关信息,请参阅 (可选) 安装Session Manager插件Amazon CLI

    这些区域有:Session Manager开发工具包由库和示例代码组成,允许应用程序开发人员构建前端应用程序,例如,供内部用户使用的自定义 shell 或自助服务门户(本地使用Session Manager连接到实例。开发人员和合作伙伴可以使用 Session Manager API 将 Session Manager 集成到客户端工具或 Automation 工作流程中。您甚至可以构建自定义解决方案。

  • IAM 访问控制

    通过使用 IAM 策略,您可以控制组织的哪些成员能够启动与实例的会话以及他们能够访问哪些实例。您还可以提供对实例的临时访问。例如,您可能需要仅为执勤工程师(或一组执勤工程师)在当班期间提供对生产服务器的访问权限。

  • 支持日志记录和审计功能

    Session Manager提供审计和记录会话历史记录的选项 Amazon Web Services 账户 通过与许多其他Amazon服务。有关更多信息,请参阅 审计会话活动记录会话活动

  • 可配置的 shell 配置文件

    Session Manager为您提供了在会话中配置首选项的选项。这些可自定义的配置文件允许您在启动会话时定义首选项,例如 shell 首选项、环境变量、工作目录以及运行多个命令。

  • 客户密钥数据加密支持

    您可以配置Session Manager来加密您发送到 Amazon Simple Storage Service (Amazon S3) 存储桶或流式传输到 CloudWatch Logs 日志组的会话数据日志。您还可以配置 Session Manager 来进一步为会话期间在客户端计算机和您的实例之间传输的数据加密。想要了解有关信息,请参阅记录会话活动配置会话首选项.

  • Amazon PrivateLink 支持没有公有 IP 地址的实例

    您也可以使用为 Systems Manager 设置 VPC 终端节点 Amazon PrivateLink 以进一步保护您的会话安全。 Amazon PrivateLink 将托管实例、Systems Manager 和 Amazon EC2 之间的所有网络流量限制在 Amazon 网络以内。有关更多信息,请参阅 。(可选)创建 Virtual Private Cloud 终端节点.

  • 隧道

    在会话中,使用会话类型Amazon Systems Manager(SSM) 文档到客户端计算机上的本地端口和实例上的远程端口之间的隧道流量,例如 http 或自定义协议。

  • 交互式命令

    创建会话类型的 SSM 文档,以使用会话以交互方式运行单个命令,从而为您提供一种方法以管理用户可以在实例上执行哪些操作。

什么是会话?

会话是与实例建立的连接,使用Session Manager. 会话基于客户端(您)与远程托管实例之间的安全双向通信通道,用于流式传输命令的输入和输出。客户端和托管实例之间的流量是使用 TLS 1.2 加密的,创建连接的请求是使用 Sigv4 签名的。这种双向通信允许对实例进行交互式 bash 和 PowerShell 访问。您也可以使用Amazon Key Management Service(Amazon KMS) 密钥进一步加密超出默认 TLS 加密范围的数据。

举例来说,假设 John 是 IT 部门的执勤工程师。他收到一个问题通知,要求他远程连接到某个实例(例如需要处理的故障或用于更改实例上的简单配置选项的指令)。使用Amazon Systems Manager控制台、Amazon EC2 控制台或Amazon CLIJohn 启动一个连接到实例的会话,在完成任务所需的实例上运行命令,然后结束会话。

当 John 发送第一个命令启动会话时,Session Manager 服务对其 ID 进行身份验证,验证 IAM 策略授予 John 的权限,检查配置设置(例如验证允许的会话限制),并向 SSM Agent发送消息以打开双向连接。建立连接并且 John 键入下一个命令后,SSM Agent的命令输出将上传到此通信通道并发送回 John 的本地计算机。