Amazon Linux 2 上的内核实时修补
适用于 Amazon Linux 2 的内核实时修补使您能够将安全漏洞和严重错误修补程序应用于正在运行的 Linux 内核,而无需重启或中断正在运行的应用程序。这使您能够从改进的服务和应用程序可用性中受益,同时保持基础设施的安全和最新状态。
Amazon 发布了两种适用于 Amazon Linux 2 的内核实时修补程序:
-
安全更新 - 包括 Linux 常见漏洞和风险(CVE)的更新。通常使用 Amazon Linux 安全公告评级将这些更新评为重要 或关键。它们通常对应于通用漏洞评分系统 (CVSS) 的 7 分或更高。在某些情况下,Amazon 可能会在分配 CVE 之前提供更新。在这些情况下,修补程序可能会显示为错误修复。
-
错误修复 - 包括与 CVE 无关的关键错误和稳定性问题的修复。
Amazon 为 Amazon Linux 2 内核版本提供内核实时修补程序,最长可在发布后 3 个月内使用。在 3 个月期限之后,您必须更新到更高版本的内核才能继续接收内核实时修补程序。
Amazon Linux 2 内核实时修补程序在现有 Amazon Linux 2 存储库中作为签名的 RPM 软件包提供。补丁可以使用现有 yum 工作流安装在单个实例上,也可以使用 Amazon Systems Manager 安装在一组托管实例上。
在 Amazon Linux 2 上提供内核实时修补功能,无需额外费用。
支持的配置和先决条件
运行 Amazon Linux 2 的 Amazon EC2 实例和本地虚拟机支持内核实时修补。
要在 Amazon Linux 2 上使用内核实时修补,必须使用:
-
x86_64
架构的内核版本4.14
或5.10
-
ARM64
架构的内核版本5.10
策略要求
要从 Amazon Linux 存储库下载程序包,Amazon Elastic Compute Cloud 需要访问服务拥有的 Amazon S3 存储桶。如果您在环境中使用 Amazon S3 的 Amazon Virtual Private Cloud(VPC)端点,则需要确保您的 VPC 端点策略允许访问这些公有存储桶。
此表介绍了 EC2 访问“内核实时修补”可能需要的每种 Amazon S3 存储桶。
S3 存储桶 ARN | 描述 |
---|---|
arn:aws:s3:::packages.region .amazonaws.com/* |
包含 Amazon Linux AMI 程序包的 Amazon S3 存储桶 |
arn:aws:s3:::repo.region .amazonaws.com/* |
包含 Amazon Linux AMI 存储库的 Amazon S3 存储桶 |
arn:aws:s3:::amazonlinux.region .amazonaws.com/* |
包含 Amazon Linux 2 存储库的 Amazon S3 存储桶 |
arn:aws:s3:::amazonlinux-2-repos-region /* |
包含 Amazon Linux 2 存储库的 Amazon S3 存储桶 |
以下策略说明了如何限制对属于您组织的身份和资源的访问权,以及如何提供对“内核实时修补”所需的 Amazon S3 存储桶的访问权。使用您组织的相应值替换 region
、principal-org-id
和 resource-org-id
。
{ "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
/*" ] } ] }
使用内核实时修补
对于单个实例,您可以在实例本身上使用命令行启用并使用内核实时修补,或者使用 Amazon Systems Manager 在一组托管实例上启用和使用内核实时修补。
以下各节说明如何使用命令行在单个实例上启用并使用内核实时修补。
有关在一组托管实例上启用并使用内核实时修补的更多信息,请参阅 Amazon Systems Manager 用户指南中的在 Amazon Linux 2 实例上使用内核实时修补。
启用内核实时修补
默认情况下,在 Amazon Linux 2 上内核实时修补处于禁用状态。要使用实时修补,必须为内核实时修补安装 yum 插件,并启用实时修补功能。
先决条件
内核实时修补需要 binutils
。如果尚未安装 binutils
,请使用以下命令进行安装:
$
sudo yum install binutils
启用内核实时修补
-
内核实时补丁支持下列 Amazon Linux 2 内核版本。
-
x86_64
架构的内核版本4.14
或5.10
-
ARM64
架构的内核版本5.10
要检查内核版本,请运行以下命令。
$
sudo yum list kernel -
-
如果您已经拥有受支持的内核版本,请跳过此步骤。如果您没有受支持的内核版本,请运行以下命令将内核更新到最新版本并重启实例。
$
sudo yum install -y kernel$
sudo reboot -
为内核实时修补安装 yum 插件。
$
sudo yum install -y yum-plugin-kernel-livepatch -
为内核实时修补启用 yum 插件。
$
sudo yum kernel-livepatch enable -y此命令还会从配置的存储库安装最新版本的内核实时修补程序 RPM。
-
要确认用于内核实时修补的 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
-
安装 kpatch 软件包。
$
sudo yum install -y kpatch-runtime -
如果之前安装过 kpatch 服务,请更新它。
$
sudo yum update kpatch-runtime -
启动 kpatch 服务。此服务在初始化或启动时会加载所有内核实时修补程序。
$
sudo systemctl enable kpatch.service -
在 Amazon Linux 2 额外资源库中启用内核实时修补主题。本主题包含内核实时修补程序。
$
sudo amazon-linux-extras enable livepatch
查看可用的内核实时修补程序
Amazon Linux 安全警报会发布到 Amazon Linux 安全中心。有关 Amazon Linux 2 安全警报(包括内核实时修补程序的警报)的信息,请参阅 Amazon Linux 安全中心ALASLIVEPATCH
。Amazon Linux 安全中心可能不会列出解决错误的内核实时修补程序。
您还可以使用命令行搜索公告和 CVE 的可用内核实时修补程序。
列出所有可用的内核实时修补程序以获取公告
使用以下命令。
$
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
列出 CVE 的所有可用内核实时修补程序
使用以下命令。
$
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
应用内核实时补丁
您可以使用 yum 程序包管理器应用内核实时修补程序,方式与应用定期更新相同。用于内核实时修补功能的 yum 插件可管理要应用的内核实时修补程序,无需重启。
提示
我们建议您使用内核实时修补功能定期更新内核,以确保内核保持安全和最新状态。
您可以选择应用特定的内核实时修补程序,或者应用任何可用的内核实时修补程序以及定期安全更新。
应用特定内核实时修补程序
-
使用 查看可用的内核实时修补程序 中描述的命令之一获取内核实时修补程序版本。
-
为您的 Amazon Linux 2 内核应用内核实时修补程序。
$
sudo yum install kernel-livepatch-kernel_version
.x86_64例如,以下命令为 Amazon Linux 2 内核版本
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
选项将包含错误修复。
重要
-
应用内核实时修补程序后,内核版本不会更新。仅当实例重启后,版本才会更新到新版本。
-
Amazon Linux 2 内核在三个月的时间段内接收内核实时修补程序。三个月的时间段过去后,不会为该内核版本发布新的内核实时修补程序。要在三个月后继续接收内核实时修补程序,您必须重启实例以移动到新的内核版本,然后该版本将在接下来的三个月内继续接收内核实时修补程序。要检查内核版本的支持窗口,请运行
yum kernel-livepatch supported
。
查看应用的内核实时修补程序
查看应用的内核实时修补程序
使用以下命令。
$
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)
注意
单个内核实时修补程序可以包含和安装多个实时修补程序。
禁用内核实时修补功能
如果您不再需要使用内核实时修补,可以随时禁用它。
禁用内核实时修补功能
-
删除应用的内核实时修补程序的 RPM 软件包。
$
sudo yum kernel-livepatch disable -
卸载内核实时修补功能的 yum 插件。
$
sudo yum remove yum-plugin-kernel-livepatch -
重启实例。
$
sudo reboot
限制
内核实时修补功能具有以下限制:
-
在应用内核实时修补程序时,无法执行休眠、使用高级调试工具(例如 SystemTap、kprobes 和基于 eBPF 的工具)或者访问内核实时修补基础设施使用的 ftrace 输出文件。
常见问题
有关 Amazon Linux 2 的内核实时修补的常见问题,请参阅 Amazon Linux 2 内核实时修补常见问题