

• AWS Systems Manager CloudWatch 控制面板在 2026 年 4 月 30 日之后将不再可用。客户可以像现在一样继续使用 Amazon CloudWatch 控制台来查看、创建和管理其 Amazon CloudWatch 控制面板。有关更多信息，请参阅 [Amazon CloudWatch 控制面板文档](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

# 在 Amazon Linux 2 托管式节点上使用 Kernel Live Patching
<a name="patch-manager-kernel-live-patching"></a>

适用于 Amazon Linux 2 的 Kernel Live Patching 使您能够将安全漏洞和严重错误补丁应用于正在运行的 Linux 内核，而无需重启或中断正在运行的应用程序。这让您能够从改进的服务和应用程序可用性中受益，同时保持基础设施的安全和最新状态。在运行 Amazon Linux 2 的 Amazon EC2 实例、Kernel Live Patching 核心设备和[本地虚拟机](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-2-virtual-machine.html)上支持 AWS IoT Greengrass。

有关 Kernel Live Patching 的一般信息，请参阅 *Amazon Linux 2 User Guide* 中的 [Kernel Live Patching on AL2](https://docs.aws.amazon.com/linux/al2/ug/al2-live-patching.html)。

在 Amazon Linux 2 托管式节点上启用 Kernel Live Patching 之后，您可使用Patch Manager（AWS Systems Manager 中的一项工具）将内核实时补丁应用到托管式节点。使用 Patch Manager 是使用节点上的现有 yum 工作流来应用更新的替代方法。

**开始前的准备工作**  
要使用 Patch Manager 将内核实时补丁应用到 Amazon Linux 2 托管式节点上，请确保节点基于正确的架构和内核版本。要了解有关信息，请参阅《Amazon EC2 用户指南》**中的[支持的配置和先决条件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/al2-live-patching.html#al2-live-patching-prereq)。

**Topics**
+ [使用 Patch Manager 的 Kernel Live Patching](#about-klp)
+ [使用 Patch Manager 的 Kernel Live Patching 的原理](#how-klp-works)
+ [使用 Run Command 来启用 Kernel Live Patching](enable-klp.md)
+ [使用 Run Command 应用内核实时补丁](install-klp.md)
+ [使用 Run Command 来关闭 Kernel Live Patching](disable-klp.md)

## 使用 Patch Manager 的 Kernel Live Patching
<a name="about-klp"></a>

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

卸载内核实时补丁  
无法使用 Patch Manager 卸载内核实时补丁。相反，您可以关闭 Kernel Live Patching，从而删除所应用的内核实时补丁的 RPM 程序包。有关更多信息，请参阅 [使用 Run Command 来关闭 Kernel Live Patching](disable-klp.md)。

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

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

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

## 使用 Patch Manager 的 Kernel Live Patching 的原理
<a name="how-klp-works"></a>

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


| 分类 | 严重性 | 
| --- | --- | 
| Security | Critical, Important | 
| Bugfix | All | 

您可以创建仅针对这些补丁的自定义补丁基准，也可以使用预定义的 `AWS-AmazonLinux2DefaultPatchBaseline` 补丁基准。换句话说，您可以将 `AWS-AmazonLinux2DefaultPatchBaseline` 与启用 Kernel Live Patching 的 Amazon Linux 2 托管式节点一起使用，并且系统会应用内核实时更新。

**注意**  
`AWS-AmazonLinux2DefaultPatchBaseline` 配置指定发布最后更新补丁后的 7 天等待期，然后才会自动安装补丁。如果您不想等待 7 天再自动批准内核实时补丁，则可以创建并使用自定义补丁基准。在补丁基准中，您可以不指定自动批准等待期，也可以指定较短或更长的等待期。有关更多信息，请参阅 [使用自定义补丁基准](patch-manager-manage-patch-baselines.md)。

我们建议使用以下策略通过内核实时更新来修补托管式节点：

1. 在 Amazon Linux 2 托管式节点上启用 Kernel Live Patching。

1. 使用 Run Command（AWS Systems Manager 中的一项工具）在托管式节点上运行 `Scan` 操作，这些节点使用预定义 `AWS-AmazonLinux2DefaultPatchBaseline` 或自定义补丁基准，该基准也仅针对严重性分类为 `Critical` 和 `Important`，以及 `All` 的严重性为 `Bugfix` 的 `Security` 更新。

1. 使用 Compliance（AWS Systems Manager 中的一项工具）查看是否报告了任何被扫描托管式节点中存在不符合修补合规性的情况。如果是这样，请查看节点合规性详细信息，以确定托管式节点中是否缺少任何内核实时补丁。

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

   由于无需重启即可安装内核实时补丁，因此您可以为此操作选择 `NoReboot` 重启选项。
**注意**  
如果托管式节点上安装的其他类型补丁需要，或者要更新到较新的内核，您仍然可以重启托管式节点。在这些情况下，请改为选择 `RebootIfNeeded` 重启选项。

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

# 使用 Run Command 来启用 Kernel Live Patching
<a name="enable-klp"></a>

要启用 Kernel Live Patching，您可以在托管式节点上运行 `yum` 命令，或使用 Run Command 以及您创建的自定义 Systems Manager 文档（SSM 文档）。

有关通过直接在托管式节点上运行 `yum` 命令来打开 Kernel Live Patching 的信息，请参阅《Amazon EC2 用户指南》**中的[启用 Kernel Live Patching](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/al2-live-patching.html#al2-live-patching-prereq)。

**注意**  
当您启用内核实时修补时，如果已在托管式节点上运行的内核为比 `kernel-4.14.165-131.185.amzn2.x86_64`（支持的最低版本）*更早*，进程将安装最新的可用内核版本并重启托管式节点。如果节点已运行 `kernel-4.14.165-131.185.amzn2.x86_64` 或更高版本，进程不会安装更新的版本，也不会重启节点。

**使用 Run Command 来启用 Kernel Live Patching (控制台)**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，选择 **Run Command**。

1. 选择 **Run command（运行命令）**。

1. 在**命令文档**列表中，选择自定义 SSM 文档 `AWS-ConfigureKernelLivePatching`。

1. 在 **Command parameters**（命令参数）部分中，指定是否希望作为此操作的一部分重启托管式节点。

1. 有关使用此页上的其余控件的信息，请参阅 [从控制台运行命令](running-commands-console.md)。

1. 选择**运行**。

**启用 Kernel Live Patching (AWS CLI)**
+ 在本地计算机上运行以下命令。

------
#### [ Linux & macOS ]

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

------
#### [ Windows Server ]

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

------

  将 *instance-id* 替换为要启用该功能的 Amazon Linux 2 托管式节点的 ID，例如 i-02573cafcfEXAMPLE。您可以使用以下任一格式，在多个托管式节点上启用该功能。
  + `--targets "Key=instanceids,Values=instance-id1,instance-id2"`
  + `--targets "Key=tag:tag-key,Values=tag-value"`

  有关可以在命令中使用的其他选项的信息，请参阅《AWS CLI Command Reference》**中的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/send-command.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/send-command.html)。

# 使用 Run Command 应用内核实时补丁
<a name="install-klp"></a>

要应用内核实时补丁，您可以在托管式节点上运行 `yum` 命令，也可以使用 Run Command 和 SSM 文档 `AWS-RunPatchBaseline`。

有关通过在托管式节点上直接运行 `yum` 命令来应用内核实时补丁的信息，请参阅《Amazon EC2 用户指南》**中的[应用内核实时补丁](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/al2-live-patching.html#al2-live-patching-apply)。

**使用 Run Command 应用内核实时补丁（控制台）**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，选择 **Run Command**。

1. 选择 **Run command（运行命令）**。

1. 在**命令文档**列表中，请选择 SSM 文档 `AWS-RunPatchBaseline`。

1. 在 **Command parameters ( 命令参数)** 部分，执行以下操作之一：
   + 如果要检查是否有新的内核实时补丁，请对于 **Operation (操作)** 选择 `Scan`。对于 **Reboot Option**（重启选项），如果不希望托管式节点在此操作后重启，请选择 `NoReboot`。操作完成后，您可以在合规性中检查新的补丁和合规性状态。
   + 如果您已经检查了补丁合规性，并准备好应用可用的内核实时补丁，请对于 **Operation (操作)** 选择 `Install`。对于 **Reboot Option**（重启选项），如果不希望托管式节点在此操作后重启，请选择 `NoReboot`。

1. 有关使用此页上的其余控件的信息，请参阅 [从控制台运行命令](running-commands-console.md)。

1. 选择**运行**。

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

1. 要在合规性检查结果出来之前执行 `Scan` 操作，请从本地计算机运行以下命令。

------
#### [ Linux & macOS ]

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

------
#### [ Windows Server ]

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

------

   有关可以在命令中使用的其他选项的信息，请参阅《AWS CLI Command Reference》**中的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/send-command.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/send-command.html)。

1. 要在合规性检查结果出来之后执行 `Install` 操作，请从本地计算机运行以下命令。

------
#### [ Linux & macOS ]

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

------
#### [ Windows Server ]

   ```
   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"`

有关可以在这些命令中使用的其他选项的信息，请参阅《AWS CLI Command Reference》**中的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/send-command.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/send-command.html)。

# 使用 Run Command 来关闭 Kernel Live Patching
<a name="disable-klp"></a>

要关闭 Kernel Live Patching，您可以在托管式节点上运行 `yum` 命令，也可以使用 Run Command 以及自定义 SSM 文档 `AWS-ConfigureKernelLivePatching`。

**注意**  
如果您不再需要使用内核实时修补，可以随时关闭它。在大多数情况下，不需要关闭该功能。

有关通过直接在托管式节点上运行 `yum` 命令来关闭 Kernel Live Patching 的信息，请参阅《Amazon EC2 用户指南》**中的[启用 Kernel Live Patching](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/al2-live-patching.html#al2-live-patching-enable)。

**注意**  
关闭 Kernel Live Patching 时，该进程会卸载 Kernel Live Patching 插件，然后重启托管式节点。

**使用 Run Command 来关闭 Kernel Live Patching (控制台)**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，选择 **Run Command**。

1. 选择 **Run command（运行命令）**。

1. 在**命令文档** 列表中，请选择 SSM 文档 `AWS-ConfigureKernelLivePatching`。

1. 在 **Command parameters (命令参数)** 部分中，为必需的参数指定值。

1. 有关使用此页上的其余控件的信息，请参阅 [从控制台运行命令](running-commands-console.md)。

1. 选择**运行**。

**关闭 Kernel Live Patching (AWS CLI)**
+ 运行类似于下面的命令。

------
#### [ Linux & macOS ]

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

------
#### [ Windows Server ]

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

------

  将 *instance-id* 替换为要关闭该功能的 Amazon Linux 2 托管式节点的 ID，例如 i-02573cafcfEXAMPLE。要在多个托管式节点上关闭该功能，您可以使用以下任一格式。
  + `--targets "Key=instanceids,Values=instance-id1,instance-id2"`
  + `--targets "Key=tag:tag-key,Values=tag-value"`

  有关可以在命令中使用的其他选项的信息，请参阅《AWS CLI Command Reference》**中的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/send-command.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/send-command.html)。