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

审计和记录会话活动

除了在 Systems Manager 控制台中提供有关当前和已完成会话的信息以外,Session Manager 还提供审计和记录 AWS 账户中的会话活动的选项。这让您能够执行以下操作:

  • 创建和存储会话日志以用于存档目的。

  • 生成报告,显示过去 30 天内使用 Session Manager 对实例进行的每个连接的详细信息。

  • 生成有关 AWS 账户中的会话活动的通知,例如 Amazon Simple Notification Service (Amazon SNS) 通知。

  • 作为会话活动的结果,在 AWS 资源上自动启动另一个操作,例如运行 AWS Lambda 功能、启动 AWS CodePipeline 管道或运行 AWS Systems Manager Run Command 文档。

注意

如果使用的是 Windows Server 2012 或更早版本,则日志中的数据可能无法以最佳方式进行格式化。建议使用 Windows Server 2012 R2 及更高版本以获得最佳的日志格式。

如果使用的是 Linux 实例,请确保已安装 screen 实用程序。否则,日志数据可能会被截断。Amazon Linux、Amazon Linux 2 和 Ubuntu Server 已默认安装 screen 实用程序。要手动安装 screen,请根据您的 Linux 版本,运行 sudo yum install screensudo apt-get install screen

有关 Session Manager 的审计和日志记录选项的更多信息,请参阅以下主题。

使用 AWS CloudTrail 审计会话活动

AWS CloudTrail 捕获通过 Systems Manager 控制台、AWS CLI 和 Systems Manager 开发工具包进行的会话 API 调用。您可以在 CloudTrail 控制台上查看信息,也可以将其存储在指定的 Amazon S3 存储桶中。账户的所有 CloudTrail 日志都存储在一个存储桶中。

有关更多信息,请参阅 使用 AWS CloudTrail 记录 AWS Systems Manager API 调用

使用 Amazon S3 记录会话数据(控制台)

您可以选择将会话日志数据存储在指定用于审计目的的 Amazon S3 存储桶中。默认选项是将日志发送到加密 S3 存储桶。系统将使用为存储桶指定的密钥执行加密,可以是 AWS Key Management Service (AWS KMS) 密钥或 Amazon S3 服务器端加密 (SSE) 密钥 (AES-256)。

S3 存储桶加密

要将日志发送到 S3 存储桶并进行加密,必须在存储桶上启用加密。有关 S3 存储桶加密的更多信息,请参阅 S3 存储桶的 Amazon S3 默认加密

客户管理的 CMK

如果使用自己管理的 AWS KMS 客户主密钥 (CMK)(客户托管 CMK)来加密存储桶,则附加到实例的 IAM 实例配置文件必须具有读取此 CMK 的显式权限。如果使用 AWS 托管 CMK,则实例不需要此显式权限。有关为实例配置文件提供使用 CMK 的访问权限的更多信息,请参阅 AWS Key Management Service Developer Guide 中的允许重要用户使用 CMK

请按照以下步骤配置 Session Manager 将会话日志存储在 Amazon S3 存储桶中。

注意

也可以使用 AWS CLI 指定或更改将会话数据发送到的 S3 存储桶。有关信息,请参阅 更新 Session Manager 首选项 (AWS CLI)

使用 Amazon S3 记录会话数据(控制台)

  1. https://console.www.amazonaws.cn/systems-manager/ 上打开 AWS Systems Manager 控制台。

  2. 在导航窗格中,选择 Session Manager

  3. 选择 Preferences (首选项) 选项卡,然后选择 Edit (编辑)

  4. 选中 S3 bucket (S3 存储桶) 旁边的复选框。

  5. (可选)如果不需要加密发送到 S3 存储桶的日志数据,请清除 Encrypt log data (加密日志数据) 旁边的复选框。否则,日志数据将使用为存储桶指定的服务器端加密密钥加密。如果存储桶上未启用加密,也必须清除此复选框。

  6. 对于 S3 bucket name (S3 存储桶名称),请选择以下选项之一:

    • Choose a bucket name from the list (从列表中选择存储桶名称):选择已在您的账户中创建的 S3 存储桶来存储会话日志数据。

    • Enter a bucket name in the text box (在文本框中输入存储桶名称):输入已在您的账户中创建的用于存储会话日志数据的 S3 存储桶的名称。

  7. (可选)对于 S3 key prefix (S3 键前缀),输入现有或新文件夹的名称,以便将日志存储在所选的存储桶中。

  8. 选择 Save

有关使用 Amazon S3 和 S3 存储桶的更多信息,请参阅 Amazon Simple Storage Service Getting Started GuideAmazon Simple Storage Service Console User Guide

使用 Amazon CloudWatch Logs 记录会话数据(控制台)

Amazon CloudWatch Logs 可以监控、存储和访问各种 AWS 服务的日志文件。您可以将会话日志数据流式传输到用于审计目的的 CloudWatch Logs 日志组。默认选项是使用您的 AWS KMS 密钥在加密后发送日志数据,但您可以将数据流式传输到日志组(加密或不加密)。

请按照以下步骤配置 Session Manager,将会话日志数据流式传输到 CloudWatch Logs 日志组。

注意

也可以使用 AWS CLI 指定或更改将会话数据发送到的 CloudWatch Logs 日志组。有关信息,请参阅 更新 Session Manager 首选项 (AWS CLI)

使用 Amazon CloudWatch Logs 记录会话数据(控制台)

  1. https://console.www.amazonaws.cn/systems-manager/ 上打开 AWS Systems Manager 控制台。

  2. 在导航窗格中,选择 Session Manager

  3. 选择 Preferences (首选项) 选项卡,然后选择 Edit (编辑)

  4. 选中 CloudWatch logs 旁边的复选框。

  5. (可选)如果不需要加密发送到 CloudWatch Logs 的日志数据,请清除 Encrypt log data (加密日志数据) 旁边的复选框。否则,日志数据将使用为日志组指定的服务器端加密密钥加密。如果日志组未启用加密,也必须清除此复选框。

  6. 对于 CloudWatch logs (CloudWatch 日志),要指定将会话日志上传到 AWS 账户中的现有 CloudWatch Logs 日志组,请选择以下选项之一:

    • Choose a log group from the list (从列表中选择日志组):选择已在账户中创建的日志组来存储会话日志数据。

    • Enter a log group name in the text box (在文本框中输入日志组名称):输入已在您的账户中创建的用于存储会话日志数据的日志组的名称。

  7. 选择 Save

有关使用 CloudWatch Logs 的更多信息,请参阅 Amazon CloudWatch Logs User Guide

使用 Amazon CloudWatch Events 监控会话活动(控制台)

CloudWatch Events 用于设置规则来检测 AWS 资源何时发生更改。您可以创建规则来检测组织中的用户何时启动或终止会话,然后通过 Amazon SNS 接收有关此事件的通知等。

CloudWatch Events 对 Session Manager 的支持依赖于 CloudTrail 记录的 API 操作记录。(您可以使用 CloudTrail 与 CloudWatch Events 集成来响应大多数 AWS Systems Manager 事件。)

以下步骤概述在发生 Session Manager API 事件(例如 StartSession)时如何通过 Amazon Simple Notification Service (Amazon SNS) 触发通知。

使用 Amazon CloudWatch Events 监控会话活动(控制台)

  1. 创建 Amazon SNS 主题,以便在发生要跟踪的 Session Manager 事件时发送通知。

    有关更多信息,请参阅 Amazon Simple Notification Service Developer Guide 中的创建主题

  2. 创建 CloudWatch Events 规则来调用要跟踪的 Session Manager 事件类型的 Amazon SNS 目标。

    有关如何创建规则的信息,请参阅 Amazon CloudWatch Events User Guide 中的创建对事件触发的 CloudWatch Events 规则

    遵循步骤创建规则时,请做出以下选择:

    • 对于服务名称,选择 EC2 Simple Systems Manager (SSM)

    • 对于事件类型,选择 AWS API Call via CloudTrail (通过 CloudTrail 进行的 AWS API 调用)

    • 选择特定操作,然后输入要接收其通知的一个或多个 Session Manager 命令(一次一个)。您可以选择 StartSessionResumeSessionTerminateSession。(CloudWatch Events 不支持 Get* List*Describe* 命令。)

    • 对于 Targets (目标),选择 SNS topic (SNS 主题)。对于 Topic (主题),选择您在步骤 1 中创建的 Amazon SNS 主题的名称。

有关更多信息,请参阅 Amazon CloudWatch Events User GuideAmazon Simple Notification Service Getting Started Guide