UEFI在 AL2 023 上進行安全啟動 - Amazon Linux 2023

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

UEFI在 AL2 023 上進行安全啟動

AL2從 2023.1 版開始,023 支援UEFI安全開機。您必須將 AL2 023 與同時UEFI支援UEFI安全開機的 Amazon EC2 執行個體搭配使用。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的啟動執行個體

AL2啟用 UEFI Secure Boot 的 023 個執行個體僅接受由簽署的核心層級程式碼 (包括 Linux 核心和模組),Amazon因此您可以確保執行個體只執行由 AWS簽署的核心層級程式碼。

如需 Amazon EC2 執行個體和UEFI安全開機的詳細資訊,請參閱 Amazon EC2 使用者指南中的UEFI安全開機

必要條件
  • 您必須使用AMI具有 AL2 023 版本 2023.1 或更高版本的版本。

  • 執行個體類型必須支援UEFI安全開機。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的啟動執行個體

在 AL2 023 上啟用UEFI安全開機

標準 AL2 023 AMIs 包含了一個引導加載程序和一個由我們的密鑰簽名的內核。您可以註冊現有的執行個體,或透過從快照註冊映像以預先啟UEFIAMIs用 UEFI Secure Boot 進行建立,以啟用安全開機。UEFI在標準 AL2 023 AMIs 上,默認情況下不啟用安全啟動。

AL2023 的開機模式設定AMIs為uefi-preferred,可確保使用這些執行個體啟動的執行個體AMIs將使用UEFI韌體 (如果執行個體類型支援UEFI)。如果執行個體類型不支援UEFI,則會使用舊版BIOS韌體啟動執行個體。執行個體以舊版BIOS模式啟動時,不會強制執行UEFI安全開機。

如需 Amazon EC2 執行個體上AMI啟動模式的詳細資訊,請參閱 Amazon EC2 使用者指南中的開機模式

註冊現有執行個體

若要註冊現有的執行個體,請在特定UEFI韌體變數中填入一組金鑰,讓韌體能夠驗證開機載入程式和開機載入程式,以便在下次開機時驗證核心。

  1. Amazon Linux 提供簡化註冊過程的工具。執行下列命令以佈建執行個體,並使用必要的金鑰和憑證集合來佈建執行個體。

    sudo amazon-linux-sb enroll
  2. 執行下列命令重新開機 執行個體。執行個體重新啟動後,將會啟用「UEFI安全開機」。

    sudo reboot
注意

Amazon Linux AMIs 目前不支持硝基可信平台模塊(硝基TPM)。如果您除了UEFI安全啟動TPM之外還需要 Nitro,請使用以下部分中的信息。

從快照註冊映像

使用 Amazon AMI 從 Amazon EBS 根磁碟區的快照註冊時 EC2 register-imageAPI,您可以使用包含UEFI變數存放區狀態的二進位 blob 進行佈建。AMI透過提供 AL2 023UefiData,即可啟用UEFI安全開機,而且不需要遵循上一節中的步驟。

如需有關建立和使用二進位 blob 的詳細資訊,請參閱 Amazon 使用EC2者指南的選項 B:建立包含預先填入的變數存放區的二進位 blob

AL2023 提供預先建置的二進位 Blob,可直接在 Amazon 執EC2行個體上使用。二進位 Blob 位於執行中執行個體的 /usr/share/amazon-linux-sb-keys/uefi.vars。此 Blob 是由從 2023.1 版AMIs開始的 AL2 023 上預設安裝的amazon-linux-sb-keysRPM套件所提供。

注意

若要確保您使用的是最新版本的金鑰和撤銷,請使用您用來建立. AL2 AMI

註冊影像時,建議使用RegisterImageAPI集合的BootMode參數為uefi。這可讓您TPM透過將TpmSupport參數設定為來v2.0啟用 Nitro。此外,在切換BootMode到不支援的執行個體類型時,uefi確保UEFI安全開機已啟用且無法意外停用的設定UEFI。

有關 Nitro 的更多信息TPM,請參閱 Amazon EC2 用戶指南TPM中的 Nitro

撤銷更新

Amazon Linux 可能需要發行新版本的開機載入器 grub2,或使用更新金鑰簽署的 Linux 核心。在這種情況下,可能需要撤銷舊密鑰,以防止允許引導加載程序以前版本的可利用錯誤繞過 UEFI Secure Boot 驗證過程的機會。

grub2kernel套件的套件更新一律會自動將撤銷清單更新到執行中執行個體的UEFI變數存放區中。這表示啟用安UEFI全開機後,您將無法在安裝套件的安全性更新之後,再執行舊版的套件。

UEFI安全啟動如何在 AL2 023 上運作

與其他 Linux 發行版不同,Amazon Linux 不提供稱為 Shim 的額外元件來作為第一階段的開機載入器。Shim 通常使用 Microsoft 金鑰簽署。例如,在具有 Shim 的 Linux 發行版上,Shim 會載入 grub2 開機載入器並 Shim 自己的程式碼來驗證 Linux 核心。此外,墊片會在位於UEFI變數存放區的 Machine Owner Key (MOK) 資料庫中維護自己的一組金鑰和撤銷,並由工具控制。mokutil

Amazon Linux 不提供 Shim。由於AMI擁有者控制UEFI變數,因此不需要此中繼步驟,而且會對啟動和開機時間產生不利影響。此外,我們選擇預設不包括對任何供應商金鑰的信任,以減少不需要的二進位檔案可以執行的機會。與往常一樣,如果客戶選擇這樣做,則可以包含二進位檔案。

使用 Amazon Linux,可以UEFI直接載入並驗證我們的開機載入grub2程式。grub2引導加載程序被修改為在加載 Linux 內核後用UEFI於驗證它。因此,Linux 內核使用存儲在普通UEFIdb變量(授權密鑰數據庫)中的相同證書進行驗證,並根據與引導加載程序和其他二進製文件相同的dbx變量(撤銷數據庫)進行測試。UEFI因為我們提供了自己的 PK 和KEK密鑰,這些密鑰可以控制對 db 數據庫和 dbx 數據庫的訪問,因此我們可以根據需要分發已簽名的更新和撤銷,而無需中介(如墊片)。

如需有關UEFI安全開機的詳細資訊,請參Amazon EC2 使用者指南中的UEFI安全開機運作方式。

註冊自有金鑰

如上一節所述,Amazon Linux 不需要在 Amazon 上shim進行UEFI安全啟動EC2。當您正在閱讀其他 Linux 發行版的文檔時,您可能會找到用於管理機器所有者密鑰(MOK)數據庫的文檔mokutil,這在 AL2 023 上不存在。shim和MOK環境解決了UEFI韌體中金鑰註冊的一些限制,這些限制不適用於 Amazon EC2 實作UEFI安全開機的方式。使用 Amazon,EC2有一些機制可以輕鬆地直接操作UEFI變量存儲中的密鑰。

如果您想要註冊自有金鑰,您可以在現有執行個體內操作變數存放區 (請參閱從執行個體內將金鑰新增至變數存放區),或建置預先填入的二進位 Blob (請參閱建立包含預先填入變數存放區的二進位 Blob)。