View a markdown version of this page

AL2023 中的儲存庫中繼資料簽署 - Amazon Linux 2023

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

AL2023 中的儲存庫中繼資料簽署

從版本 開始2023.11.20260406,AL2023 儲存庫包含儲存庫中繼資料的密碼編譯簽章。每個儲存庫repomd.xml的檔案都隨附分離的 GPG 簽章檔案 (repomd.xml.asc),您可以在下載套件之前用來驗證儲存庫中繼資料的真實性和完整性。

此簽署是現有 RPM 套件簽署 (gpgcheck) 的補充,可驗證個別套件。儲存庫中繼資料簽署會驗證描述儲存庫內容的中繼資料,例如可用套件的清單及其檢查總和。

儲存庫中繼資料簽署的運作方式

發佈 AL2023 儲存庫時,會使用 AWS KMS 金鑰簽署儲存庫中繼資料 (repomd.xml)。產生的分離簽章 (repomd.xml.asc) 會與儲存庫中的中繼資料一起放置。

當您在儲存庫組態repo_gpgcheck中啟用 時, DNF會自動下載並驗證 GPG 公有金鑰的repomd.xml.asc簽章,然後再使用儲存庫中繼資料。如果簽章驗證失敗, 會DNF拒絕儲存庫中繼資料,且不會從該儲存庫繼續套件操作。如需 的詳細資訊repo_gpgcheck,請參閱DNF組態參考

下列 AL2023 儲存庫包含簽章的中繼資料:

  • 核心儲存庫 (amazonlinux)

  • Kernel Livepatch 儲存庫 (kernel-livepatch)

  • NVIDIA 儲存庫 (amazonlinux-nvidia)

  • Amazon Linux 儲存庫的補充套件 (amazonlinux-spal)

gpgcheck 和 之間的差異 repo_gpgcheck

設定 它驗證的內容 AL2023 中的預設值
gpgcheck=1 在安裝之前,驗證個別 RPM 套件的 GPG 簽章。 已啟用
repo_gpgcheck=1 在使用儲存庫之前,驗證儲存庫中繼資料 (repomd.xml) 的 GPG 簽章。 已停用 (預設為從2023.12季度版本開始啟用)

我們強烈建議您同時啟用 gpgcheckrepo_gpgcheck。這可確保在使用前驗證儲存庫中繼資料和個別套件。

啟用儲存庫中繼資料驗證

您可以透過更新個別儲存庫的組態檔案來啟用儲存庫中繼資料驗證。

重要

2023.12季度版本開始, repo_gpgcheck=1 會在 AL2023 儲存庫組態檔案中預設啟用。

針對特定儲存庫啟用

預設/etc/yum.repos.d/設定 中的 AL2023 儲存庫組態檔案repo_gpgcheck=0。若要啟用儲存庫中繼資料驗證,請在儲存庫組態1中將此值變更為 。例如,若要為核心儲存庫啟用它:

[amazonlinux] name=Amazon Linux 2023 repository ... gpgcheck=1 repo_gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-amazon-linux-2023

驗證儲存庫中繼資料簽署是否正常運作

啟用 後repo_gpgcheck=1,您可以透過清除DNF快取並重新整理中繼資料來驗證中繼資料驗證是否正常運作:

[ec2-user ~]$ sudo dnf clean metadata [ec2-user ~]$ sudo dnf makecache

如果中繼資料驗證成功, 會DNF匯入 GPG 金鑰 (如果尚未匯入),並在沒有錯誤的情況下建立中繼資料快取。您將會看到類似下列的輸出:

Amazon Linux 2023 repository 1.7 MB/s | 1.8 kB 00:00 Importing GPG key 0xD832C631: Userid : "Amazon Linux <amazon-linux@amazon.com>" Fingerprint: B21C 50FA 44A9 9720 EAA7 2F7F E951 904A D832 C631 From : /etc/pki/rpm-gpg/RPM-GPG-KEY-amazon-linux-2023 Amazon Linux 2023 repository 18 MB/s | 55 MB 00:03 Metadata cache created.

如果簽章驗證失敗, DNF會顯示錯誤訊息,指出 GPG 簽章驗證失敗且中繼資料快取建立失敗。

AL2023 儲存庫的 GPG 公有金鑰

用於儲存庫中繼資料驗證的 GPG 公有金鑰由對應的儲存庫組態 RPMs 安裝至 /etc/pki/rpm-gpg/。下表列出每個儲存庫使用的公有金鑰。

儲存庫 套件簽署金鑰 Repodata 簽署金鑰 在 中分佈
核心 (amazonlinux) RPM-GPG-KEY-amazon-linux-2023 RPM-GPG-KEY-amazon-linux-2023 system-release
Kernel Livepatch (kernel-livepatch) RPM-GPG-KEY-amazon-linux-2023 RPM-GPG-KEY-amazon-linux-2023 system-release
NVIDIA (amazonlinux-nvidia) RPM-GPG-KEY-NVIDIA-D42D0685 RPM-GPG-KEY-amazon-linux-2023-nvidia nvidia-release
SPAL (amazonlinux-spal) RPM-GPG-KEY-amazonlinux-spal RPM-GPG-KEY-amazonlinux-spal spal-release

當您安裝對應的儲存庫組態 RPM 時,會自動安裝這些金鑰。