本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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韌體變數中填入一組金鑰,讓韌體能夠驗證開機載入程式和開機載入程式,以便在下次開機時驗證核心。
-
Amazon Linux 提供簡化註冊過程的工具。執行下列命令以佈建執行個體,並使用必要的金鑰和憑證集合來佈建執行個體。
sudo amazon-linux-sb enroll
-
執行下列命令重新開機 執行個體。執行個體重新啟動後,將會啟用「UEFI安全開機」。
sudo reboot
注意
Amazon Linux AMIs 目前不支持硝基可信平台模塊(硝基TPM)。如果您除了UEFI安全啟動TPM之外還需要 Nitro,請使用以下部分中的信息。
從快照註冊映像
使用 Amazon AMI 從 Amazon EBS 根磁碟區的快照註冊時 EC2 register-image
API,您可以使用包含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-keys
RPM套件所提供。
注意
若要確保您使用的是最新版本的金鑰和撤銷,請使用您用來建立. AL2 AMI
註冊影像時,建議使用RegisterImage
API集合的BootMode
參數為uefi
。這可讓您TPM透過將TpmSupport
參數設定為來v2.0
啟用 Nitro。此外,在切換BootMode
到不支援的執行個體類型時,uefi
確保UEFI安全開機已啟用且無法意外停用的設定UEFI。
有關 Nitro 的更多信息TPM,請參閱 Amazon EC2 用戶指南TPM中的 Nitro。
撤銷更新
Amazon Linux 可能需要發行新版本的開機載入器 grub2
,或使用更新金鑰簽署的 Linux 核心。在這種情況下,可能需要撤銷舊密鑰,以防止允許引導加載程序以前版本的可利用錯誤繞過 UEFI Secure Boot 驗證過程的機會。
grub2
或kernel
套件的套件更新一律會自動將撤銷清單更新到執行中執行個體的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)。