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

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

记录会话活动

除了在 Systems Manager 控制台中提供有关当前和已完成会话的信息以外,会话管理器还提供了用于在Amazon Web Services 账户。这让您能够执行以下操作:

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

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

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

  • 自动启动另一个操作Amazon资源作为会话活动的结果,例如运行Amazon Lambda函数,启动Amazon CodePipeline管道,或运行Amazon Web Services Systems Manager运行命令文档。

重要

请注意以下要求和限制:

  • 会话管理器会根据您的会话首选项记录您输入的命令及其输出。为防止在会话日志中查看敏感数据(如密码),我们建议在会话期间输入敏感数据时使用以下命令。

    Linux & macOS
    stty -echo; read passwd; stty echo;
    Windows
    $Passwd = Read-Host -AsSecureString
  • 如果使用的是 Windows Server 2012 或更早版本,则日志中的数据可能无法以最佳方式进行格式化。建议使用 Windows Server 2012 R2 及更高版本以获得最佳的日志格式。

  • 如果您使用的是 Linux 或macOS实例时,请确保已安装屏幕实用程序。否则,日志数据可能会被截断。在 Amazon Linux、Amazon Linux 2 和 Ubuntu 服务器上,默认情况下,屏幕实用程序安装。要手动安装屏幕,请根据您的 Linux 版本,运行sudo yum install screen或者sudo apt-get install screen

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

有关使用 Amazon S3 或 Amazon CloudWatch Logs 记录会话数据所需的权限的更多信息,请参阅创建具有会话管理器、Amazon S3 和 CloudWatch Logs(控制台)权限的实例配置文件

有关会话 Manager 的日志记录选项的更多信息,请参阅以下主题。

使用 Amazon CloudWatch Logs(控制台)流式处理会话数据

您可以将持续的会话数据日志流发送到 Amazon CloudWatch Logs。流式处理会话数据时包含基本详细信息,例如用户在会话中运行的命令、运行命令的用户的 ID 以及将会话数据流式传输到 CloudWatch Logs 的时间戳。流式处理会话数据时,日志采用 JSON 格式,以帮助您与现有日志记录解决方案集成。交互式命令不支持流式会话数据。

注意

要流式传输会话数据Windows Server实例,您必须已安装 PowerShell 5.1 或更高版本。默认情况下,Windows Server2016 年及更高版本已安装所需的 PowerShell 版本。然而,Windows Server默认情况下,2012 年和 2012 年 R2 没有安装所需的 PowerShell 版本。如果您尚未更新Windows Server2012 或 2012 R2 实例,您可以使用 “运行命令” 执行此操作。有关使用运行命令更新 PowerShell 的信息,请参阅使用运行命令更新 PowerShell

重要

如果您有PowerShell 转录策略设置Windows Server实例时,您将无法流式传输会话数据。

使用 Amazon CloudWatch Logs(控制台)流式传输会话数据

  1. 打开Amazon Web Services Systems Manager控制台位于https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中,选择会话管理器

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

  4. 选中 旁边的复选框Enable (启用 Gem)UNDRCloudWatch 日志记录

  5. 选择流会话日志选项。

  6. (推荐)选中旁边的复选框仅允许加密的 CloudWatch 日志组。启用该选项后,日志数据将使用为日志组指定的服务器端加密钥加密。如果您不需要加密发送到 CloudWatch 日志的日志数据,请清除该复选框。如果日志组未启用加密,也必须清除此复选框。

  7. 适用于CloudWatch 日志,以 CloudWatch Logs 定您的Amazon Web Services 账户将会话日志上载到,请选择以下项之一:

    • Enter a log group name to use 在您的账户中创建的用于存储会话日志数据的文本框中输入日志组的名称。

    • 浏览日志组:选择已在账户中创建的日志组来存储会话日志数据。

  8. 选择保存

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

您可以选择将会话日志数据存储在指定用于调试和故障排除目的的 Amazon Simple Storage Service (Amazon S3) 存储桶中。默认选项是将日志发送到加密 Amazon S3 存储桶。加密是使用为存储桶指定的密钥执行的,AmazonKMS 密钥或 Amazon S3 服务器端加密 (SSE) 密钥 (AES-256)。

重要

当通过安全套接字 (SSL) 使用虚拟托管类型存储桶时,SSL 通配符证书仅匹配不包含句点的存储桶。要解决此问题,请使用 HTTP 或编写自己的证书验证逻辑。在使用虚拟托管类型存储桶时,建议您不要在存储桶名称中使用句点(“.”)。

Amazon S3 存储桶加密

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

客户管理的密钥

如果使用自己管理的 KMS 密钥来加密存储桶,则附加到实例的 IAM 实例配置文件必须具有读取密钥的显式权限。如果您使用Amazon托管密钥,则实例不需要此显式权限。有关向实例配置文件提供使用密钥的访问权限的详细信息,请参阅允许密钥用户使用密钥中的Amazon Key Management Service开发人员指南

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

注意

您也可以使用AmazonCLI 指定或更改将会话数据发送到的 Amazon S3 存储桶。有关信息,请参阅 更新会话管理器首选项(命令行)

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

  1. 打开Amazon Web Services Systems Manager控制台位于https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中,选择会话管理器

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

  4. 选中 旁边的复选框Enable (启用 Gem)UNDRS3 日志记录

  5. (推荐)选中旁边的复选框仅允许加密 S3 存储桶。启用该选项后,日志数据将使用为存储桶指定的服务器端加密钥加密。如果不需要加密发送到 Amazon S3 的日志数据,请清除此复选框。如果 S3 存储桶上未启用加密,也必须清除此复选框。

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

    注意

    在使用虚拟托管类型存储桶时,建议您不要在存储桶名称中使用句点(“.”)。有关 Amazon S3 存储桶命名约定的更多信息,请参阅存储桶限制中的Amazon Simple Storage Service 开发人员指南

    • 从列表中选择存储桶名称:选择已在您的账户中创建的 Amazon S3 存储桶来存储会话日志数据。

    • 在文本框中输入存储桶名称:输入已在您的账户中创建的 Amazon S3 存储桶的名称以存储会话日志数据。

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

  8. 选择保存

有关使用 Amazon S3 和 Amazon S3 存储桶的更多信息,请参阅Amazon Simple Storage Service 入门指南Amazon Simple Storage Service 控制台用户指南

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

借助 Amazon CloudWatch Logs,您可以监控、存储和访问各种Amazon服务。您可以将会话日志数据发送到 CloudWatch Logs 日志组,以进行调试和故障排除。默认选项是使用 KMS 密钥在加密后发送日志数据,但您可以将数据发送到日志组(加密或不加密)。

请按照以下步骤配置Amazon Web Services Systems Manager会话管理器在会话结束时将会话日志数据发送到 CloudWatch Logs 日志组。

注意

您也可以使用AmazonCLI 可指定或更改将会话数据发送到的 CloudWatch Logs 日志组。有关信息,请参阅 更新会话管理器首选项(命令行)

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

  1. 打开Amazon Web Services Systems Manager控制台位于https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中,选择会话管理器

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

  4. 选中 旁边的复选框Enable (启用 Gem)UNDRCloudWatch 日志记录

  5. 选择上传会话日志选项。

  6. (推荐)选中旁边的复选框仅允许加密的 CloudWatch 日志组。启用该选项后,日志数据将使用为日志组指定的服务器端加密钥加密。如果您不需要加密发送到 CloudWatch 日志的日志数据,请清除该复选框。如果日志组未启用加密,也必须清除此复选框。

  7. 适用于CloudWatch 日志,以 CloudWatch Logs 定您的Amazon Web Services 账户将会话日志上载到,请选择以下项之一:

    • 从列表中选择日志组:选择已在账户中创建的日志组来存储会话日志数据。

    • 在文本框中输入日志组名称:输入已在账户中创建的用于存储会话日志数据的日志组的名称。

  8. 选择保存

有关使用 CloudWatch Logs 的更多信息,请参阅Amazon CloudWatch Logs 用户指南