

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

# 内核实时补丁已开启 AL2
<a name="al2-live-patching"></a>

**重要**  
亚马逊 Linux 将于 2025-10-31 结束 AL2 内核 4.14 的上线补丁。鼓励客户使用内核 5.10 作为 AL2（参见[AL2 支持的内核）的默认内核](https://docs.aws.amazon.com/linux/al2/ug/aml2-kernel.html)，或者改 AL2023 用内核 6.1 和 6.12。  
亚马逊 Linux 将为 AL2 内核 5.10 提供实时补丁，直到 2026-06-30 的 AL2 生命周期结束。

Kernel Live Patching AL2 允许您将特定的安全漏洞和严重错误补丁应用于正在运行的 Linux 内核，而无需重启或中断正在运行的应用程序。这使您可以从更高的服务和应用程序可用性中受益，同时应用这些修复程序直到系统可以重新启动。

有关内核实时补丁的信息 AL2023，请参阅 A *mazon Linux 2023 用户 AL2023*指南中的[内核实时补丁](https://docs.aws.amazon.com/linux/al2023/ug/live-patching.html)。

AWS 发布了两种类型的内核实时补丁，用于 AL2：
+ **安全更新** - 包括 Linux 常见漏洞和风险（CVE）的更新。通常使用 Amazon Linux 安全通告评级将这些更新评为*重要* 或*关键*。它们通常对应于通用漏洞评分系统 (CVSS) 的 7 分或更高。在某些情况下， AWS 可能会在分配 CVE 之前提供更新。在这些情况下，补丁可能会显示为错误修复。
+ **错误修复**-包括针对与之无关的关键错误和稳定性问题的修复 CVEs。

AWS 在内 AL2 核版本发布后，为其提供最长 3 个月的内核实时补丁。在 3 个月期限之后，您必须更新到更高版本的内核才能继续接收内核实时修补程序。

AL2 内核实时补丁以已签名的 RPM 包的形式在现有 AL2 存储库中提供。可以使用现有 **yum 工作流程将补丁安装在单个实例上，也可以使用 Sy** AWS stems Manager 将其安装在一组托管实例上。

开启内核实时补丁 AL2 功能不收取额外费用。

**Topics**
+ [支持的配置和先决条件](#al2-live-patching-prereq)
+ [使用内核实时修补](#working-with-live-patching)
+ [限制](#al2-live-patching-limitations)
+ [常见问题](#al2-live-patching-faq)

## 支持的配置和先决条件
<a name="al2-live-patching-prereq"></a>

Amazon EC2 实例和运行 AL2的[本地虚拟机](amazon-linux-2-virtual-machine.md)支持内核实时补丁。

要在开启内核实时补丁 AL2，必须使用：
+ `x86_64` 架构的内核版本 `4.14` 或 `5.10`
+ `ARM64` 架构的内核版本 `5.10`

**策略要求**

<a name="aml-live-patching"></a>要从亚马逊 Linux 存储库下载软件包，亚马逊 EC2 需要访问服务拥有的 Amazon S3 存储桶。如果您在环境中使用 Amazon S3 的 Amazon Virtual Private Cloud（VPC）端点，则需要确保您的 VPC 端点策略允许访问这些公有存储桶。

此表介绍了 EC2 访问“内核实时修补”可能需要的每种 Amazon S3 存储桶。


| S3 存储桶 ARN | 说明 | 
| --- | --- | 
|  arn: aws: s3:: packages。 region.amazonaws.com/\$1  |  包含 Amazon Linux AMI 程序包的 Amazon S3 存储桶   | 
|  arn: aws: s3::: repo。 region.amazonaws.com/\$1  |  包含 Amazon Linux AMI 存储库的 Amazon S3 存储桶  | 
|  arn: aws: s3::: 亚马逊 linux。 region.amazonaws.com/\$1  |  包含存储库的 Amazon S3 AL2 存储桶  | 
|  arn: aws: s3::: amazonlinux-2-repos-/\$1 region  |  包含存储库的 Amazon S3 AL2 存储桶   | <a name="s3_live_patch_permissions"></a>

以下策略说明了如何限制对属于您组织的身份和资源的访问权，以及如何提供对“内核实时修补”所需的 Amazon S3 存储桶的访问权。将*region**principal-org-id*、*resource-org-id*替换为贵组织的价值观。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowRequestsByOrgsIdentitiesToOrgsResources",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalOrgID": "principal-org-id",
          "aws:ResourceOrgID": "resource-org-id"
        }
      }
    },
    {
      "Sid": "AllowAccessToAmazonLinuxAMIRepositories",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": [
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::packages.region.amazonaws.com/*",
        "arn:aws:s3:::repo.region.amazonaws.com/*",
        "arn:aws:s3:::amazonlinux.region.amazonaws.com/*",
        "arn:aws:s3:::amazonlinux-2-repos-region/*"
      ]
    }
  ]
}
```

------

## 使用内核实时修补
<a name="working-with-live-patching"></a>

您可以使用实例本身的命令行在单个实例上启用和使用内核实时补丁，也可以使用 Syst AWS ems Manager 在一组托管实例上启用和使用内核实时补丁。

以下部分介绍如何在单独的实例上使用命令行来启用和使用内核实时修补。

有关在一组托管实例上启用和使用内核实时补丁的更多信息，请参阅《*AWS Systems Manager 用户*指南》中的在[ AL2 实例上使用内核实时补丁](https://docs.aws.amazon.com/systems-manager/latest/userguide/kernel-live-patching.html)。

**Topics**
+ [启用内核实时修补](#al2-live-patching-enable)
+ [查看可用的内核实时补丁](#al2-live-patching-view-available)
+ [应用内核实时补丁](#al2-live-patching-apply)
+ [查看应用的内核实时修补程序](#al2-live-patching-view)
+ [禁用内核实时修补](#al2-live-patching-disable)

### 启用内核实时修补
<a name="al2-live-patching-enable"></a>

默认情况下，内核实时补丁处于禁用状态。 AL2要使用实时修补，必须为内核实时修补安装 **yum** 插件，并启用实时修补功能。

**先决条件**  
内核实时修补需要 `binutils`。如果尚未安装 `binutils`，请使用以下命令进行安装：

```
$ sudo yum install binutils
```

**启用内核实时修补**

1. 内核实时补丁适用于以下 AL2 内核版本：
   + `x86_64` 架构的内核版本 `4.14` 或 `5.10`
   + `ARM64` 架构的内核版本 `5.10`

   要检查内核版本，请运行以下命令。

   ```
   $ sudo yum list kernel
   ```

1. 如果您已经拥有受支持的内核版本，请跳过此步骤。如果您没有受支持的内核版本，请运行以下命令将内核更新到最新版本并重启实例。

   ```
   $ sudo yum install -y kernel
   ```

   ```
   $ sudo reboot
   ```

1. 为内核实时修补安装 **yum** 插件。

   ```
   $ sudo yum install -y yum-plugin-kernel-livepatch
   ```

1. 为内核实时修补启用 **yum** 插件。

   ```
   $ sudo yum kernel-livepatch enable -y
   ```

   此命令还会从配置的存储库安装最新版本的内核实时修补程序 RPM。

1. 要确认用于内核实时修补的 **yum** 插件已成功安装，请运行以下命令。

   ```
   $ rpm -qa | grep kernel-livepatch
   ```

   启用内核实时修补时，将自动应用空的内核实时修补程序 RPM。如果成功启用了内核实时修补，则此命令将返回一个列表，其中包括初始的空内核实时补丁 RPM。下面是示例输出。

   ```
   yum-plugin-kernel-livepatch-1.0-0.11.amzn2.noarch
   kernel-livepatch-5.10.102-99.473-1.0-0.amzn2.x86_64
   ```

1. 安装 **kpatch** 软件包。

   ```
   $ sudo yum install -y kpatch-runtime
   ```

1. 如果之前安装过 **kpatch** 服务，请更新它。

   ```
   $ sudo yum update kpatch-runtime
   ```

1. 启动 **kpatch** 服务。此服务在初始化或启动时会加载所有内核实时补丁。

   ```
   $ sudo systemctl enable kpatch.service && sudo systemctl start kpatch.service
   ```

1. 在 Ext AL2 ras 库中启用 “内核实时补丁” 主题。本主题包含内核实时修补程序。

   ```
   $ sudo amazon-linux-extras enable livepatch
   ```

### 查看可用的内核实时补丁
<a name="al2-live-patching-view-available"></a>

Amazon Linux 安全警报会发布到 Amazon Linux 安全中心。有关 AL2 安全警报（包括内核实时补丁警报）的更多信息，请参阅 [Amazon Linux 安全中心](https://alas.aws.amazon.com/alas2.html)。内核实时补丁的前缀为 `ALASLIVEPATCH`。Amazon Linux 安全中心可能不会列出解决错误的内核实时补丁。

您还可以 CVEs使用命令行查找可用的内核实时补丁以获取公告。

**列出所有可用的内核实时补丁以获取通告**  
使用以下命令。

```
$ yum updateinfo list
```

下面显示了示例输出。

```
Loaded plugins: extras_suggestions, kernel-livepatch, langpacks, priorities, update-motd
ALAS2LIVEPATCH-2020-002 important/Sec. kernel-livepatch-5.10.102-99.473-1.0-3.amzn2.x86_64
ALAS2LIVEPATCH-2020-005 medium/Sec. kernel-livepatch-5.10.102-99.473-1.0-4.amzn2.x86_64
updateinfo list done
```

**列出所有可用的内核实时补丁 CVEs**  
使用以下命令。

```
$ yum updateinfo list cves
```

下面显示了示例输出。

```
Loaded plugins: extras_suggestions, kernel-livepatch, langpacks, priorities, update-motdamzn2-core/2/x86_64 | 2.4 kB 00:00:00 
CVE-2019-15918 important/Sec. kernel-livepatch-5.10.102-99.473-1.0-3.amzn2.x86_64
CVE-2019-20096 important/Sec. kernel-livepatch-5.10.102-99.473-1.0-3.amzn2.x86_64
CVE-2020-8648 medium/Sec. kernel-livepatch-5.10.102-99.473-1.0-4.amzn2.x86_64
updateinfo list done
```

### 应用内核实时补丁
<a name="al2-live-patching-apply"></a>

您可以使用 **yum** 程序包管理器应用内核实时修补程序，方式与应用定期更新相同。用于 Kernel Live Patching 的 **yum** 插件管理可供应用的内核实时补丁。

**提示**  
我们建议您定期使用内核实时修补更新内核，以确保在系统可以重启之前接收特定的重要和关键安全修复。还请检查是否有其他修复已可用于本机内核程序包，这些修复无法作为实时补丁部署，并在这些情况下[更新并重启](https://docs.aws.amazon.com/linux/al2/ug/install-updates.html)到内核更新。

您可以选择应用特定的内核实时补丁，或者应用任何可用的内核实时补丁以及定期安全更新。

**应用特定内核实时补丁**

1. 使用 [查看可用的内核实时补丁](#al2-live-patching-view-available) 中描述的命令之一获取内核实时补丁版本。

1. 为您的 AL2 内核应用内核实时补丁。

   ```
   $ sudo yum install kernel-livepatch-kernel_version.x86_64
   ```

   例如，以下命令为 AL2 内核版本 `5.10.102-99.473` 应用内核实时修补程序。

   ```
   $ sudo yum install kernel-livepatch-5.10.102-99.473-1.0-4.amzn2.x86_64
   ```

**应用任何可用的内核实时补丁以及定期安全更新**  
使用以下命令。

```
$ sudo yum update --security
```

省略 `--security` 选项将包含错误修复。

**重要**  
应用内核实时修补程序后，内核版本不会更新。仅当实例重启后，版本才会更新到新版本。
内 AL2 核会收到为期三个月的内核实时补丁。三个月的时间段过去后，不会为该内核版本发布新的内核实时修补程序。要在三个月后继续接收内核实时修补程序，您必须重启实例以移动到新的内核版本，然后该版本将在接下来的三个月内继续接收内核实时修补程序。要检查内核版本的支持窗口，请运行 `yum kernel-livepatch supported`。

### 查看应用的内核实时修补程序
<a name="al2-live-patching-view"></a>

**查看应用的内核实时补丁**  
使用以下命令。

```
$ kpatch list
```

该命令返回已加载和安装的安全更新内核实时补丁的列表。下面是示例输出。

```
Loaded patch modules:
livepatch_cifs_lease_buffer_len [enabled]
livepatch_CVE_2019_20096 [enabled]
livepatch_CVE_2020_8648 [enabled]
	
Installed patch modules:
livepatch_cifs_lease_buffer_len (5.10.102-99.473.amzn2.x86_64)
livepatch_CVE_2019_20096 (5.10.102-99.473.amzn2.x86_64)
livepatch_CVE_2020_8648 (5.10.102-99.473.amzn2.x86_64)
```

**注意**  
单个内核实时补丁可以包含和安装多个实时补丁。

### 禁用内核实时修补
<a name="al2-live-patching-disable"></a>

如果您不再需要使用内核实时修补，可以随时禁用它。

**禁用内核实时修补功能**

1. 删除应用的内核实时修补程序的 RPM 软件包。

   ```
   $ sudo yum kernel-livepatch disable
   ```

1. 卸载内核实时修补功能的 **yum** 插件。

   ```
   $ sudo yum remove yum-plugin-kernel-livepatch
   ```

1. 重启实例。

   ```
   $ sudo reboot
   ```

## 限制
<a name="al2-live-patching-limitations"></a>

内核实时修补具有以下限制：
+ 在应用内核实时补丁时，您无法执行休眠、使用高级调试工具（例如 kprobes 和基于 EBPF 的工具）或访问内核实时补丁基础架构使用的 ftrace 输出文件。 SystemTap
+ 
**注意**  
由于技术限制，有些问题无法通过实时修补解决。因此，这些修复将不会在内核实时修补程序包中提供，而仅在本机内核程序包更新中提供。您可以像往常一样安装本机内核软件包[更新并重新启动](https://docs.aws.amazon.com/linux/al2/ug/install-updates.html)系统以激活补丁。

## 常见问题
<a name="al2-live-patching-faq"></a>

有关内核实时补丁的常见问题 AL2，请参阅 [Amazon Linux 2 内核实时补丁](https://aws.amazon.com//amazon-linux-2/faqs/)常见问题解答。