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

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

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

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

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

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

开始前的准备工作

要使用 Patch Manager 将内核实时补丁应用于 Amazon Linux 2 实例,请确保您的实例基于正确的架构和内核版本。想要了解有关信息,请参阅支持的配置和先决条件中的适用于 Linux 实例的 Amazon EC2 用户指南

关于内核实时修补和修补程序管理器

更新内核版本

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

卸载内核实时补丁

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

内核合规性

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

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

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

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

工作原理

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

Classification 严重性
Security Critical, Important
Bugfix All

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

注意

这些区域有:AWS-AmazonLinux2DefaultPatchBaseline配置指定在发布修补程序后等待七天,然后再自动安装。如果您不想等待七天才能自动批准内核活动修补程序,则可以创建并使用自定义修补程序基准。在修补程序基准中,您可以指定不自动批准等待期,也可以指定较短或更长的等待期。有关更多信息,请参阅 使用自定义修补程序基准(控制台)

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

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

  2. 使用 “运行命令”(Amazon Web Services Systems Manager,以运行Scan操作,使用预定义的AWS-AmazonLinux2DefaultPatchBaseline或仅针对目标的自定义补丁基准Security更新的严重性分类为CriticalImportant,以及Bugfix严重性All

  3. 使用法规遵从性,一种Amazon Web Services Systems Manager,以查看是否针对扫描的任何实例报告了修补不符合性。如果是这样,请查看实例合规性详细信息,以确定实例中是否缺少任何内核实时补丁。

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

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

    注意

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

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

使用运行命令启用内核实时修补功能

要启用内核实时修补功能,可以运行yum命令或使用您创建的自定义 Systems Manager 文档(SSM 文档)。

有关通过运行yum命令,请参阅启用内核实时修补中的适用于 Linux 实例的 Amazon EC2 用户指南

注意

启用内核实时修补时,如果实例上已运行的内核是早期THNkernel-4.14.165-131.185.amzn2.x86_64(支持的最低版本)时,进程将安装最新的可用内核版本并重新启动实例。如果实例已运行kernel-4.14.165-131.185.amzn2.x86_64或更高版本时,进程不会安装更新版本,也不会重新启动实例。

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

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

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

    -或者-

    如果Amazon Web Services Systems Manager首先打开主页,选择菜单图标( )打开导航窗格中的,然后选择,Run Command

  3. 选择运行命令

  4. 命令文档列表中,选择自定义 SSM 文档AWS-ConfigureKernelLivePatching

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

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

  7. 选择运行

启用内核实时修补 (AmazonCLI)

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

    Linux & macOS
    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"

    Replaceinstance-id替换为要启用该功能的亚马逊 Linux 2 实例的 ID,例如 I-02573CafCFF 示例。要在多个实例上启用该功能,您可以使用以下任一格式。

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

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

    有关可以在命令中使用的其他选项的信息,请参阅发送命令中的AmazonCLI 命令参考

使用运行命令应用内核实时补丁

要应用内核实时补丁,您可以运行yum命令或使用 “运行命令” 和 SSM 文档AWS-RunPatchBaseline

有关通过运行yum命令,请参阅应用内核实时修补程序中的适用于 Linux 实例的 Amazon EC2 用户指南

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

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

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

    -或者-

    如果Amazon Web Services Systems Manager首先打开主页,选择菜单图标( )打开导航窗格中的,然后选择,Run Command

  3. 选择运行命令

  4. 命令文档列表中,选择 SSM 文档AWS-RunPatchBaseline

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

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

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

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

  7. 选择运行

使用运行命令应用内核实时补丁 ()AmazonCLI)

  1. 若要执行Scan操作,请从本地计算机运行以下命令。

    Linux & macOS
    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\"]}

    有关可以在命令中使用的其他选项的信息,请参阅发送命令中的AmazonCLI 命令参考

  2. 执行Install操作,请从本地计算机运行以下命令。

    Linux & macOS
    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-02573CafCFF 示例。要在多个实例上启用该功能,您可以使用以下任一格式。

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

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

有关可以在这些命令中使用的其他选项的信息,请参阅发送命令中的AmazonCLI 命令参考

使用 Run 命令禁用内核实时修补功能

要禁用内核实时修补功能,可以运行yum命令或使用 “运行命令” 和自定义 SSM 文档AWS-ConfigureKernelLivePatching

注意

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

有关通过运行yum命令,请参阅启用内核实时修补中的适用于 Linux 实例的 Amazon EC2 用户指南

注意

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

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

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

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

    -或者-

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

  3. 选择运行命令

  4. 命令文档列表中,选择 SSM 文档AWS-ConfigureKernelLivePatching

  5. 命令参数部分中,为必需的参数指定值。

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

  7. 选择运行

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

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

    Linux & macOS
    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"

    Replaceinstance-id替换为要禁用该功能的亚马逊 Linux 2 实例的 ID,例如 I-02573CafCFF 示例。要在多个实例上禁用该功能,您可以使用以下任一格式。

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

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

    有关可以在命令中使用的其他选项的信息,请参阅发送命令中的AmazonCLI 命令参考