使用 AMD SEV-SNP 進行認證 - Amazon Elastic Compute Cloud

使用 AMD SEV-SNP 進行認證

認證是一種程序,可讓您的執行個體證明其狀態和身分。當您為執行個體開啟 AMD SEV-SNP 時,可以向基礎處理器請求 AMD SEV-SNP 認證報告。AMD SEV-SNP 認證報告包含初始訪客記憶體內容的密碼編譯雜湊 (稱為啟動測量) 和初始 vCPU 狀態。認證報告採用 VLEK 簽章進行簽署,可以鏈接回 AMD 信任根源。您可以使用認證報告中包含的啟動測量來驗證執行個體是否在正版 AMD 環境中執行,並驗證用於啟動執行個體的初始啟動程式碼。

若要使用 AMD SEV-SNP 執行認證,請完成下列步驟。

步驟 1:取得認證報告

在此步驟中,您會安裝必要的工具,然後向處理器請求 AMD SEV-SNP 認證報告以及處理器的 VLEK 簽署金鑰。

  1. 您必須使用 sev-guest 公用程式向 CPU 請求認證報告。若要從 sev-guest repository 安裝 sev-guest 公用程式,請執行下列命令。

    $ git clone https://github.com/AMDESE/sev-guest.git $ cd sev-guest $ make sev-guest-get-report $ make sev-guest-parse-report
  2. 使用 sev-guest 公用程式請求認證報告和用於簽署認證報告的 VLEK 憑證。

    $ sudo ./sev-guest-get-report guest_report.bin -x

    該命令會建立兩個檔案:

    • guest_report.bin – 已簽署的認證報告。

    • a8074bc2-a25a-483e-aae6-39c045a0b8a1 – 用於簽署認證報告的 VLEK 憑證,它採用可辨別編碼規則 (DER) 格式。

步驟 2:驗證認證報告的簽章

使用 AMD 專為 AWS 簽發的憑證 (稱為 Versioned Loaded Endorsement Key (VLEK)) 簽署認證報告。在此步驟中,您將驗證 VLEK 憑證是由 AMD 簽發,且認證報告透過該 VLEK 憑證進行簽署。

  1. 您必須使用 sev-tool 公用程式來驗證認證報告是否由 VLEK 憑證簽署。此公用程式要求認證報告和 VLEK 憑證位於名為 /certs 的資料夾中。執行下列命令,建立 /certs 目錄。

    $ sudo mkdir certs
  2. 將 DER 編碼的 VLEK 憑證 (a8074bc2-a25a-483e-aae6-39c045a0b8a1) 轉換為 sev-guest 公用程式所需的 PEM 格式。

    $ sudo openssl x509 -inform der -in a8074bc2-a25a-483e-aae6-39c045a0b8a1 -out certs/vcek.pem

    VLEK 憑證會寫入 /certs 目錄中名為 vcek.pem 的新檔案。

  3. 從 AMD 官方網站將 VLEK 信任根憑證下載至 /certs 目錄。

    $ sudo curl --proto '=https' --tlsv1.2 -sSf https://kdsintf.amd.com/vlek/v1/Milan/cert_chain -o certs/cert_chain.pem
  4. 使用 openssl 來驗證 VLEK 憑證是否由 AMD 信任根憑證簽署。

    $ sudo openssl verify --CAfile certs/cert_chain.pem certs/vcek.pem

    預期的輸出結果。

    certs/vcek.pem: OK
  5. 將認證報告複製到 /certs 目錄。

    $ sudo cp guest_report.bin certs/
  6. 必須使用 sev-tool 公用程式來驗證認證報告簽章。執行以下命令,安裝 sev-tool 公用程式。

    $ cd .. $ git clone https://github.com/AMDESE/sev-tool.git $ cd sev-tool $ autoreconf -vif && ./configure && make
  7. 使用 sev-tool 公用程式來驗證認證報告由 VLEK 憑證簽署。

    $ sudo ./src/sevtool --ofolder ../sev-guest/certs --validate_guest_report

    預期的輸出結果。

    Guest report validated successfully!