AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

了解关于 Session Manager 的更多信息

要了解有关 AWS Systems Manager Session Manager 的更多信息,请参阅以下主题。

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

Session Manager 具备下列优势:

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

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

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

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

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

    使用 AWS Systems Manager 控制台,单击一下即可启动会话。因为实例的权限是通过 IAM 策略而不是 SSH 密钥或其他机制提供的,所以可大幅缩短连接时间。

  • 支持 Windows 和 Linux

    Session Manager 通过单个工具提供对 Windows 和 Linux 的支持。例如,您不需要为 Linux 实例使用 SSH 客户端,也不需要为 Windows 实例使用 RDP 连接。

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

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

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

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

    • Amazon Simple Storage Service - 您可以选择将会话日志数据存储在选择用于审计目的的 Amazon S3 存储桶中。在将日志数据发送到 S3 存储桶时,您还可以使用自己的 AWS Key Management Service (AWS KMS) 密钥进行加密。有关更多信息,请参阅使用 Amazon S3 记录会话数据(控制台)

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

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

谁应该使用 Session Manager?

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

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

  • 需要从一个位置授予和撤消访问权限并为用户提供一个同时适用于 Windows 和 Linux 实例的解决方案的管理员。

  • 希望只需单击一下即可从浏览器或 CLI 连接到实例而不必提供 SSH 密钥的最终用户。

Session Manager 的主要功能是什么?

  • 支持 Windows 和 Linux 实例

    Session Manager 可让您建立与 Amazon Elastic Compute Cloud (Amazon EC2) 实例的安全连接。有关支持的 Windows 和 Linux 操作系统类型的列表,请参阅Session Manager 入门

    注意

    仅为高级实例层提供对本地实例的 Session Manager 支持。有关信息,请参阅 第 7 步:(可选)启用 Advanced-Instances 层

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

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

    AWS Systems Manager 控制台 包括对适用于管理员及最终用户的所有 Session Manager 功能的访问。您可以通过使用 Systems Manager 控制台来执行与会话相关的任何任务。

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

    注意

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

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

  • IAM 访问控制

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

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

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

  • 客户密钥数据加密支持

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

  • 为没有公有 IP 地址的实例提供 AWS PrivateLink 支持

    您还可以使用 AWS PrivateLink 为 Systems Manager 设置 VPC 终端节点,以进一步提高会话安全性。PrivateLink 将托管实例、Systems Manager 和 Amazon EC2 之间的所有网络流量限制在 Amazon 网络以内。有关更多信息,请参阅(Optional) Create a Virtual Private Cloud Endpoint

什么是会话?

A session is a connection made to an instance using Session Manager. Sessions are based on a secure bi-directional communication channel between the client (you) and the remote managed instance that streams inputs and outputs for commands. Traffic between a client and a managed instance is encrypted using TLS 1.2, and requests to create the connection are signed using Sigv4. This two-way communication enables interactive bash and PowerShell access to instances. You can also use an AWS Key Management Service (AWS KMS) key to further encrypt data beyond the default TLS encryption.

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

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