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

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

启用和禁用会话活动日志记录

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

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

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

  • 生成您的会话活动通知 Amazon Web Services 账户,例如亚马逊简单通知服务 (Amazon SNS) Simple SNS Service 通知。

  • 根据会话活动的结果,自动启动对 Amazon 资源的另一项操作,例如运行 Amazon Lambda 函数、启动 Amazon CodePipeline 管道或运行 Amazon Systems Manager Run Command文档。

重要

对于 Session Manager,请注意以下要求和限制:

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

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

  • 如果使用的是 Linux 或 macOS 托管式节点,请确保已安装 screen 实用工具。否则,日志数据可能会被截断。在亚马逊 Linux 1、亚马逊 Linux 2 Ubuntu Server、AL2023 和,屏幕实用程序是默认安装的。要手动安装 screen,请根据您的 Linux 版本,运行 sudo yum install screensudo apt-get install screen

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

有关使用 Amazon S3 或 Amazon CloudWatch 日志记录会话数据所需的权限的更多信息,请参阅创建具有 Session Manager、Amazon S3 和 CloudWatch Logs 权限的 IAM 角色(控制台)

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

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

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

注意

要从 Windows Server 托管式节点流式传输会话数据,必须安装 PowerShell 5.1 或更高版本。默认情况下,Windows Server 2016 及更高版本已安装了所需的 PowerShell 版本。但是,默认情况下,Windows Server 2012 和 2012 R2 没有安装所需的 PowerShell 版本。如果您尚未在 PowerShell 2012 或 2012 R2 托管式节点上更新 Windows Server,可以使用 Run Command 执行此操作。有关使用 Run Command 更新 PowerShell 的信息,请参阅 PowerShell 使用更新 Run Command

重要

如果您在Windows Server托管节点上配置了PowerShell 转录策略设置,则将无法流式传输会话数据。

使用 Amazon L CloudWatch ogs(控制台)流式传输会话数据
  1. 打开 Amazon Systems Manager 控制台,网址为 https://console.aws.amazon.com/systems-manager/

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

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

  4. 选中 “CloudWatch 记录” 下的 “启用” 旁边的复选框。

  5. 选择 Stream session logs (流式传输会话日志) 选项。

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

  7. 对于CloudWatch 日志,要指定要将会话 CloudWatch 日志上传 Amazon Web Services 账户 到的现有日志日志组,请选择以下选项之一:

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

    • Browse log groups (浏览日志组):选择已在账户中创建的用于存储会话日志数据的日志组。

  8. 选择保存

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

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

重要

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

Amazon S3 存储桶加密

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

客户托管密钥

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

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

注意

您还可以使用 Amazon CLI 来指定或更改会话数据发送到的 Amazon S3 存储桶。有关信息,请参阅 更新 Session Manager 首选项(命令行)

要使用 Amazon S3 记录会话数据(控制台),请执行以下步骤:
  1. 打开 Amazon Systems Manager 控制台,网址为 https://console.aws.amazon.com/systems-manager/

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

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

  4. 选中 S3 logging (S3 日志记录)Enable (启用) 旁边的复选框。

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

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

    注意

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

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

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

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

  8. 选择保存

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

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

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

按照以下步骤进行配置 Amazon Systems Manager Session Manager,以便在会话结束时将会话 CloudWatch 日志数据发送到日志组。

注意

您还可以使用 Amazon CLI 来指定或更改会话数据发送到的 CloudWatch 日志日志组。有关信息,请参阅 更新 Session Manager 首选项(命令行)

使用 Amazon CloudWatch 日志记录会话数据(控制台)
  1. 打开 Amazon Systems Manager 控制台,网址为 https://console.aws.amazon.com/systems-manager/

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

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

  4. 选中 “CloudWatch 记录” 下的 “启用” 旁边的复选框。

  5. 选择 Upload session logs (上传会话日志) 选项。

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

  7. 对于CloudWatch 日志,要指定要将会话 CloudWatch 日志上传 Amazon Web Services 账户 到的现有日志日志组,请选择以下选项之一:

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

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

  8. 选择保存

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

在 CloudWatch 日志和 Amazon S3 中禁用Session Manager活动记录

您可以使用 Systems Manager 控制台或 Amazon CLI 在您的账户中禁用会话活动记录。

禁用会话活动日志记录(控制台)
  1. 打开 Amazon Systems Manager 控制台,网址为 https://console.aws.amazon.com/systems-manager/

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

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

  4. 要禁用 CloudWatch 日志记录,请在 “CloudWatch 记录” 部分中清除 “启用” 复选框。

  5. 要禁用 S3 日志记录,在 S3 日志记录部分中,清除启用复选框。

  6. 选择保存

禁用会话活动日志记录(Amazon CLI)

要使用禁用会话活动记录 Amazon CLI,请按照中的说明进行操作更新 Session Manager 首选项(命令行)

在您的 JSON 文件中,确保 s3BucketNamecloudWatchLogGroupName 的输入不包含任何值。例如:

"inputs": { "s3BucketName": "", ... "cloudWatchLogGroupName": "", ... }

或者,您可以从 JSON 文件中删除所有 S3*cloudWatch* 输入以禁用日志记录。