在 Amazon Linux 2 執行個體上使用 Kernel Live Patching - AWS Systems Manager

在 Amazon Linux 2 執行個體上使用 Kernel Live Patching

適用於 Amazon Linux 2 的 Kernel Live Patching 可讓您將安全性漏洞和重大錯誤修補程式套用至執行中的 Linux 核心,而不需要重新啟動或中斷執行中的應用程式。這可讓您從改善的服務和應用程式可用性中受益,同時保持基礎設施的安全和最新狀態。在 Amazon EC2 執行個體和執行 Amazon Linux 2 的內部部署虛擬機器上支援 Kernel Live Patching。

如需 Kernel Live Patching 的一般資訊,請參閱《Amazon EC2 Linux 執行個體使用者指南》中的 Amazon Linux 2 上的 Kernel Live Patching

您在 Amazon Linux 2 執行個體上開啟 Kernel Live Patching 後,您可以使用 Patch Manager (AWS Systems Manager 功能),將核心即時修補程式套用至執行個體。使用 Patch Manager 是在執行個體上使用現有 yum 工作流程來套用更新的替代方法。

開始之前

若要使用 Patch Manager 將核心即時修補程式套用至您的 Amazon Linux 2 執行個體,請確定您的執行個體是以正確的架構和核心版本為基礎。如需相關資訊,請參閱《Amazon EC2 Linux 執行個體使用者指南》中的支援的組態和先決條件

關於 Kernel Live Patching 和 Patch Manager

更新核心版本

套用核心即時修補程式更新後,您不需要重新啟動執行個體。不過,AWS 會在 Amazon Linux 2 核心版本的核心即時修補程式發行後提供長達三個月。在 3 個月期間過後,您必須更新至較新的核心版本,才能繼續接收核心即時修補程式。我們建議您使用維護時段,排程至少每三個月重新開機執行個體一次,以提示核心版本更新。

解除安裝核心即時修補程式

無法使用 Patch Manager 解除安裝核心即時修補程式。您可以改為關閉 Kernel Live Patching,這會為已套用核心即時修補程式移除 RPM 套件。如需更多詳細資訊,請參閱 使用 Run Command 關閉 Kernel Live Patching

核心合規

在某些情況下,從目前核心版本的即時修補程式安裝所有 CVE 修正程式,可能會使該核心達到與較新核心版本相同的合規狀態。發生這種情況時,會將較新的版本報告為 Installed,並將執行個體報告為 Compliant。但是,對於較新的核心版本,不會報告任何安裝時間。

一個核心即時修補程式,多個 CVE

如果核心即時修補程式可處理多個 CVE,且這些 CVE 具有各種分類和嚴重性值,則只會報告 CVE 中最高的分類和嚴重性。

本節的其餘部分說明如何使用 Patch Manager,將核心即時修補程式套用至符合這些要求的執行個體。

運作方式

AWS 發行兩種類型的 Amazon Linux 2 核心即時修補程式:安全更新和錯誤修正。若要套用這些類型的修補程式,您可以使用修補基準文件,僅針對下表所列分類與嚴重性。

分類 嚴重性
Security Critical, Important
Bugfix All

您可以建立自訂修補程式基準,僅針對這些修補程式,或使用預先定義的 AWS-AmazonLinux2DefaultPatchBaseline 修補程式基準。換句話說,您可以使用 AWS-AmazonLinux2DefaultPatchBaseline 搭配啟用 Kernel Live Patching 的 Amazon Linux 2 執行個體,如此將套用核心即時更新。

注意

AWS-AmazonLinux2DefaultPatchBaseline 組態會指定在自動安裝修補程式之前、發行修補程式之後的七天等待期。如果不想等待七天,讓核心即時修補程式自動核准,則您可以建立並使用自訂修補基準。在修補基準中,您可以指定非自動核准等待期間,或指定較短或較長的等待期間。如需更多詳細資訊,請參閱 使用自訂修補基準 (主控台)

我們建議您採用下列策略,以核心即時更新修補您的執行個體:

  1. 開啟 Amazon Linux 2 執行個體上的 Kernel Live Patching。

  2. 使用 Run Command (AWS Systems Manager 的一項功能) 在執行個體上使用預先定義 AWS-AmazonLinux2DefaultPatchBaseline 或自訂修補基準執行 Scan 操作,此自訂基準也只會針對分類為 CriticalImportantSecurity 更新,以及 AllBugfix 嚴重性。

  3. 使用合規 (AWS Systems Manager 功能) 以檢閱是否針對已掃描的任何執行個體報告不合規修補。若是如此,請檢視執行個體合規詳細資訊,以判斷執行個體是否遺漏任何核心即時修補程式。

  4. 若要安裝遺漏的核心即時修補程式,請使用 Run Command 搭配您之前指定的相同修補程式基準,但這次請執行 Install 操作而非 Scan 操作。

    由於安裝核心即時修補程式並不需要重新開機,因此您可以為此操作選擇 NoReboot 重新開機選項。

    注意

    如果安裝在執行個體上的其他類型修補程式有需要重新開機,或者您想要更新至較新的核心,仍然可以重新啟動執行個體。在這些情況下,請改選 RebootIfNeeded 重新開機選項。

  5. 返回 合規以確認已安裝核心即時修補程式。

使用 Run Command 開啟 Kernel Live Patching

若要開啟 Kernel Live Patching,您可以在執行個體上執行 yum 命令,或使用 Run Command 和您建立的自訂 Systems Manager 文件 (SSM 文件)。

如需透過直接在執行個體上執行 yum 命令來開啟 Kernel Live Patching 的相關資訊,請參閱《Amazon EC2 Linux 執行個體使用者指南》中的啟用 Kernel Live Patching

注意

當您開啟「核心即時修補」時,如果執行個體上已經執行的核心早於 kernel-4.14.165-131.185.amzn2.x86_64 (最低支援的版本),則程序會安裝最新的可用核心版本並重新開機執行個體。如果執行個體已在執行 kernel-4.14.165-131.185.amzn2.x86_64 或更新版本,則程序不會安裝較新的版本,也不會重新開機執行個體。

使用 Run Command 開啟 Kernel Live Patching (主控台)

  1. 開啟位於 AWS Systems Managerhttps://console.aws.amazon.com/systems-manager/ 的 主控台。https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Run Command

    -或-

    如果 AWS Systems Manager 首頁先開啟,選擇選單圖示 ( ) 以開啟導覽窗格,然後選擇 Run Command

  3. 選擇 Run command (執行命令)

  4. Command document (命令文件) 清單中,選擇 SSM 文件 AWS-ConfigureKernelLivePatching

  5. Command parameters (命令參數) 區段中,指定是否要在此操作中重新啟動執行個體。

  6. 如需使用此頁面上其餘控制項的詳細資訊,請參閱從主控台執行命令

  7. 選擇 Run (執行)

開啟 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
    aws ssm send-command ^ --document-name "AWS-ConfigureKernelLivePatching" ^ --parameters "EnableOrDisable=Enable" ^ --targets "Key=instanceids,Values=instance-id"

    將 iinstance-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 命令參考》中 send-command

使用 Run Command 套用核心即時修補程式

若要套用核心即時修補程式,您可以在執行個體上執行 yum 命令,或使用 Run Command 和 SSM 文件 AWS-RunPatchBaseline

如需透過直接在執行個體上執行 yum 命令來套用核心即時修補程式的詳細資訊,請參閱《Amazon EC2 Linux 執行個體使用者指南》中的套用核心即時修補程式

使用 Run Command 套用核心即時修補程式 (主控台)

  1. 開啟位於 AWS Systems Managerhttps://console.aws.amazon.com/systems-manager/ 的 主控台。https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Run Command

    -或-

    如果 AWS Systems Manager 首頁先開啟,選擇選單圖示 ( ) 以開啟導覽窗格,然後選擇 Run Command

  3. 選擇 Run command (執行命令)

  4. Command document (命令文件) 清單中,選擇 SSM 文件 AWS-RunPatchBaseline

  5. Command parameters (命令參數) 區段中,執行以下其中一項:

    • 如果您要檢查是否有新的核心即時修補程式,請在 Operaions (操作) 中選擇 Scan。對於 Reboot Option (重新開機選項),如果不希望執行個體在此操作之後重新啟動,請選擇 NoReboot。操作完成後,您可以在「合規」中檢查新的修補程式和合規狀態。

    • 如果您已檢查修補程式合規性,並準備好套用可用的核心即時修補程式,請在 Operation (操作) 中選擇 Install。對於 Reboot Option (重新開機選項),如果不希望執行個體在此操作之後重新啟動,請選擇 NoReboot

  6. 如需使用此頁面上其餘控制項的詳細資訊,請參閱從主控台執行命令

  7. 選擇 Run (執行)

使用 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
    aws ssm send-command ^ --document-name "AWS-RunPatchBaseline" ^ --targets "Key=InstanceIds,Values=instance-id" ^ --parameters {\"Operation\":[\"Scan\"],\"RebootOption\":[\"RebootIfNeeded\"]}

    如需可以在命令中使用之其他選項的相關資訊,請參閱《AWS CLI 命令參考》中 send-command

  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-02573cafcfEXAMPLE。若要在多個執行個體上開啟此功能,您可以使用下列其中一種格式。

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

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

如需可以在這些命令中使用之其他選項的相關資訊,請參閱《AWS CLI 命令參考》中 send-command

使用 Run Command 關閉 Kernel Live Patching

若要關閉 Kernel Live Patching,您可以在執行個體上執行 yum 命令,或使用 Run Command 和自訂 SSM 文件 AWS-ConfigureKernelLivePatching

注意

如果您不再需要使用 Kernel Live Patching,您可以隨時停用它。在大多數情況下,不需要關閉功能。

如需透過直接在執行個體上執行 yum 命令來關閉 Kernel Live Patching 的相關資訊,請參閱《Amazon EC2 Linux 執行個體使用者指南》中的啟用 Kernel Live Patching

注意

當您關閉 Kernel Live Patching 時,程序會解除安裝 Kernel Live Patching 外掛程式,然後重新開機執行個體。

使用 Run Command 關閉 Kernel Live Patching (主控台)

  1. 開啟位於 AWS Systems Managerhttps://console.aws.amazon.com/systems-manager/ 的 主控台。https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Run Command

    -或-

    如果 AWS Systems Manager 首頁先開啟,選擇選單圖示 ( ) 以開啟導覽窗格,然後選擇 Run Command

  3. 選擇 Run command (執行命令)

  4. Command document (命令文件) 清單中,選擇 SSM 文件 AWS-ConfigureKernelLivePatching

  5. Command parameters (命令參數) 區段,指定所需的參數值。

  6. 如需使用此頁面上其餘控制項的詳細資訊,請參閱從主控台執行命令

  7. 選擇 Run (執行)

關閉 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
    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 命令參考》中 send-command