在 内核实时修补 实例上使用 Amazon Linux 2 - AWS Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

在 内核实时修补 实例上使用 Amazon Linux 2

适用于 内核实时修补 的 Amazon Linux 2 使您能够将安全漏洞和严重错误补丁应用于正在运行的 Linux 内核,而无需重启或中断正在运行的应用程序。这使您能够从改进的服务和应用程序可用性中受益,同时保持基础设施的安全和最新状态。在运行 内核实时修补 的 Amazon EC2 实例和本地虚拟机上支持 Amazon Linux 2.

有关 内核实时修补 的一般信息,请参阅 中的 内核实时修补 上的 Amazon Linux 2Amazon EC2 用户指南(适用于 Linux 实例)

在 内核实时修补 实例上启用 Amazon Linux 2 后,您可以使用 Patch Manager 将内核实时补丁应用于实例。使用 Patch Manager 是使用实例上的现有 yum 工作流程来应用更新的替代方法。

开始前的准备工作

要使用 Patch Manager 将内核实时修补程序应用于 Amazon Linux 2 实例,请确保您的实例基于正确的架构和内核版本。有关信息,请参阅 https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/al2-live-patching.html#al2-live-patching-prereq 中的支持的配置和先决条件Amazon EC2 用户指南(适用于 Linux 实例)。

关于 内核实时修补 和Patch Manager

更新内核版本

应用内核实时补丁更新后,无需重新启动实例。但是,AWS 为 Amazon Linux 2 内核版本提供内核实时补丁,最长可达其发布后三个月。在三个月期限之后,您必须更新到更高版本的内核才能继续接收内核实时补丁。我们建议您使用维护时段至少每三个月安排一次实例重新启动,以提示内核版本更新。

卸载内核实时补丁

无法使用 Patch Manager 卸载内核实时修补程序。相反,您可以禁用 内核实时修补,从而删除所应用的内核实时补丁的 RPM 程序包。有关更多信息,请参阅 使用 内核实时修补 禁用 Run Command.

内核合规性

在某些情况下,从当前内核版本的实时补丁安装所有 CVE 修补程序可能会使该内核进入与较新内核版本相同的合规性状态。发生这种情况时,较新版本报告为 Installed,而实例报告为 Compliant. 但是,对于较新的内核版本,不会报告安装时间。

一个内核实时补丁,多个 CVE

如果一个内核实时补丁解决多个 CVE,并且这些 CVE 具有各种分类和严重性值,则只针对该补丁报告 CVE 中的最高分类和严重性。

本节的其余部分介绍如何使用 Patch Manager 将内核实时补丁应用于满足这些要求的实例。

工作原理

AWS 为 Amazon Linux 2 发布了两种类型的内核实时补丁:安全更新和错误修复。要应用这些类型的补丁,请使用补丁基准文档,该文档仅针对下表中列出的分类和严重性。

分类。 严重性
Security Critical, Important
Bugfix All

您可以创建仅针对这些补丁的自定义补丁基准,也可以使用预定义的 AWS-AmazonLinux2DefaultPatchBaseline 补丁基准。换句话说,您可以将 AWS-AmazonLinux2DefaultPatchBaseline 与启用 Amazon Linux 2 的 内核实时修补 实例一起使用,并将应用内核实时更新。

注意

配置指定在自动安装补丁之前发布补丁后的七天等待期。AWS-AmazonLinux2DefaultPatchBaseline如果您不想等待七天,以便内核实时补丁自动得到批准,则可以创建并使用自定义补丁基准。在补丁基准中,您可以指定没有自动批准等待期,也可以指定一个更短或更长的等待期。有关更多信息,请参阅 使用自定义补丁基准.

我们建议使用以下策略通过内核实时更新来修补您的实例:

  1. 在您的 内核实时修补 实例上启用 Amazon Linux 2

  2. 使用 Run Command,通过预定义的 Scan 或自定义补丁基准在实例上运行 AWS-AmazonLinux2DefaultPatchBaseline 操作,该补丁基准仅针对严重性分类为 SecurityCritical 以及 Important 严重性的 Bugfix 更新。All

  3. 在 Systems Manager 上打开 https://console.aws.amazon.com/systems-manager/compliance 如果是这样,请查看实例合规性详细信息,以确定实例中是否缺少任何内核实时补丁。

  4. 要安装缺少的内核实时补丁,请将 Run Command 与之前指定的相同补丁基准一起使用,但这次运行 Install 操作而不是 Scan 操作。

    由于无需重新启动即可安装内核实时补丁,因此您可以为此操作选择 NoReboot 重新启动选项。

    注意

    如果实例上安装的其他类型的补丁需要,或者要更新到较新的内核,您仍然可以重新启动实例。在这些情况下,请改为选择 RebootIfNeeded 重新启动选项。

  5. 返回到 Systems Manager 合规性以验证安装了内核实时补丁。

使用 内核实时修补 启用 Run Command

要启用 内核实时修补,您可以在实例上运行 yum 命令,也可以使用 Run Command 和您创建的自定义 Systems Manager 文档。

有关通过直接在实例上运行 内核实时修补 命令来启用 yum 的信息,请参阅 内核实时修补 中的启用 。Amazon EC2 用户指南(适用于 Linux 实例)

注意

当您启用内核实时修补时,如果实例上已经运行的内核早于(最低支持版本),则该过程会安装最新的可用内核版本并重启实例。kernel-4.14.165-131.185.amzn2.x86_64如果实例已在运行 kernel-4.14.165-131.185.amzn2.x86_64 或更高版本,则进程不会安装较新版本并且不会重启实例。

使用 内核实时修补 控制台启用 Run Command(控制台)

  1. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

  2. 在导航窗格中,选择Run Command

    -或者-

    如果 AWS Systems Manager 主页首先打开,请选择菜单图标 ( ) 以打开导航窗格,然后选择 Run Command

  3. 选择运行命令.

  4. Command document (命令文档) 列表中,选择自定义 Systems Manager 文档 AWS-ConfigureKernelLivePatching

  5. Command parameters (命令参数) 部分中,指定您是否希望在此操作中重启实例。

  6. 有关使用此页上的其余控件的信息,请参阅 从控制台运行命令.

  7. 选择 Run.

启用 内核实时修补 (AWS CLI)

  • 在本地计算机上运行以下命令。

    Linux
    aws ssm send-command \ --document-name "AWS-ConfigureKernelLivePatching" \ --parameters "EnableOrDisable=Enable" \ --targets "Key=instanceids,Values=instance-id"
    Windows
    aws ssm send-command ^ --document-name "AWS-ConfigureKernelLivePatching" ^ --parameters "EnableOrDisable=Enable" ^ --targets "Key=instanceids,Values=instance-id"

    Replace instance-id 替换为要启用该功能的 Amazon Linux 2 实例的 ID,例如 i-02573cafcfEXAMPLE。要在多个实例上启用该功能,您可以使用以下任一格式。

    • --targets "Key=instanceids,Values=instance-id1,instance-id2"

    • --targets "Key=tag:tag-key,Values=tag-value"

    有关可以在命令中使用的其他选项的信息,请参阅 send-command 中的 AWS CLI Command Reference。

使用 应用内核实时补丁Run Command

要应用内核实时补丁,您可以在实例上运行 yum 命令,也可以使用 Run Command 和 Systems Manager 文档 AWS-RunPatchBaseline.

有关通过直接在实例上运行 yum 命令来应用内核实时修补程序的信息,请参阅 中的应用内核实时修补程序。Amazon EC2 用户指南(适用于 Linux 实例)

使用 Run Command 应用内核实时补丁(控制台)

  1. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

  2. 在导航窗格中,选择Run Command

    -或者-

    如果 AWS Systems Manager 主页首先打开,请选择菜单图标 ( ) 以打开导航窗格,然后选择 Run Command

  3. 选择运行命令.

  4. Command document (命令文档) 列表中,选择 Systems Manager 文档 AWS-RunPatchBaseline.

  5. Command parameters (命令参数) 部分中,执行下列操作之一:

    • 如果要检查是否有新的内核实时补丁,请对于 Operation (操作) 选择 Scan. 对于 Reboot Option (重新启动选项),如果不希望您的实例在此操作后重新启动,请选择 NoReboot. 操作完成后,您可以在 Systems Manager 合规性中检查新的补丁和合规性状态。

    • 如果您已经检查了补丁合规性,并准备好应用可用的内核实时补丁,请对于 Operation (操作) 选择 Install. 对于 Reboot Option (重新启动选项),如果您不希望您的实例在此操作后重新启动,请选择 NoReboot.

  6. 有关使用此页上的其余控件的信息,请参阅 从控制台运行命令.

  7. 选择 Run.

使用 Run Command ( (AWS CLI)) 应用内核实时补丁

  1. 要在 Scan 合规性中检查结果之前执行 Systems Manager 操作,请从本地计算机运行以下命令。

    Linux
    aws ssm send-command \ --document-name "AWS-RunPatchBaseline" \ --targets "Key=InstanceIds,Values=instance-id" \ --parameters '{"Operation":["Scan"],"RebootOption":["RebootIfNeeded"]}'
    Windows
    aws ssm send-command ^ --document-name "AWS-RunPatchBaseline" ^ --targets "Key=InstanceIds,Values=instance-id" ^ --parameters {\"Operation\":[\"Scan\"],\"RebootOption\":[\"RebootIfNeeded\"]}

    有关可以在命令中使用的其他选项的信息,请参阅 send-command 中的 AWS CLI Command Reference。

  2. 要在 Install 合规性中检查结果之后执行 Systems Manager 操作,请从本地计算机运行以下命令。

    Linux
    aws ssm send-command \ --document-name "AWS-RunPatchBaseline" \ --targets "Key=InstanceIds,Values=instance-id" \ --parameters '{"Operation":["Install"],"RebootOption":["NoReboot"]}'
    Windows
    aws ssm send-command ^ --document-name "AWS-RunPatchBaseline" ^ --targets "Key=InstanceIds,Values=instance-id" ^ --parameters {\"Operation\":[\"Install\"],\"RebootOption\":[\"NoReboot\"]}

在上述两个命令中,将 instance-id 替换为要对其应用内核实时补丁的 Amazon Linux 2 实例的 ID,例如 i-02573cafcfEXAMPLE。要在多个实例上启用该功能,您可以使用以下任一格式。

  • --targets "Key=instanceids,Values=instance-id1,instance-id2"

  • --targets "Key=tag:tag-key,Values=tag-value"

有关您可以在这些命令中使用的其他选项的信息,请参阅 send-command 中的 AWS CLI Command Reference。

使用 内核实时修补 禁用 Run Command

要禁用 内核实时修补,您可以在实例上运行 yum 命令,也可以使用 Run Command 和自定义 Systems Manager 文档 AWS-ConfigureKernelLivePatching

注意

如果您不再需要使用内核实时修补,可以随时禁用它。在大多数情况下,不需要禁用该功能。

有关通过直接在实例上运行 内核实时修补 命令来禁用 yum 的信息,请参阅 中的内核实时修补启用 Amazon EC2 用户指南(适用于 Linux 实例)

注意

当您禁用内核实时修补时,该过程将卸载内核实时修补插件,然后重新启动实例。

使用 内核实时修补 控制台禁用 Run Command(控制台)

  1. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

  2. 在导航窗格中,选择Run Command

    -或者-

    如果 AWS Systems Manager 主页首先打开,请选择菜单图标 ( ) 以打开导航窗格,然后选择 Run Command

  3. 选择运行命令.

  4. Command document (命令文档) 列表中,选择 Systems Manager 文档 AWS-ConfigureKernelLivePatching.

  5. Command parameters (命令参数) 部分中,指定所需参数的值。

  6. 有关使用此页上的其余控件的信息,请参阅 从控制台运行命令.

  7. 选择 Run.

禁用内核实时修补功能 (AWS CLI)

  • 运行类似于下面的命令。

    Linux
    aws ssm send-command \ --document-name "AWS-ConfigureKernelLivePatching" \ --targets "Key=instanceIds,Values=instance-id" \ --parameters "EnableOrDisable=Disable"
    Windows
    aws ssm send-command ^ --document-name "AWS-ConfigureKernelLivePatching" ^ --targets "Key=instanceIds,Values=instance-id" ^ --parameters "EnableOrDisable=Disable"

    Replace instance-id 替换为要禁用该功能的 Amazon Linux 2 实例的 ID,例如 i-02573cafcfEXAMPLE。要在多个实例上禁用该功能,您可以使用以下任一格式。

    • --targets "Key=instanceids,Values=instance-id1,instance-id2"

    • --targets "Key=tag:tag-key,Values=tag-value"

    有关可以在命令中使用的其他选项的信息,请参阅 send-command 中的 AWS CLI Command Reference。