檢視次數:

準備您的 AWS 環境以允許 Server & Workload Protection 支援安全啟動。

重要
重要
  • 您必須擁有平台金鑰才能註冊安全啟動金鑰。如果您沒有平台金鑰,請參閱 AWS 文件以生成安全啟動平台金鑰
  • 如果您無法存取在啟動時載入的所有裝置的韌體,例如 GPU,請勿更換平台金鑰。如果您無法更新韌體簽署鏈以使用您的新平台金鑰,安全啟動可能會導致該實例永久無法啟動。

步驟

  1. 從支援安全啟動的 Linux 發行版 AMI 建立 EC2 虛擬機器實例。
  2. 在該實例的控制台中,安裝機器擁有者密鑰(MOK)命令 mokutiluefivars 和 Python。
    例如,在 Red Hat Enterprise Linux 上,輸入以下命令:
    yum install mokutil
    yum install python3
    curl -L -o uefivars.zip https://github.com/awslabs/python-uefivars/archive/refs/heads/main.zip
    unzip uefivars.zip
    對於 Debian 或 Ubuntu,請使用以下命令:
    sudo apt-get update
    sudo apt-get install efitools
    sudo apt-get install python3
    curl -L -o uefivars.zip https://github.com/awslabs/python-uefivars/archive/refs/heads/main.zip
    unzip uefivars.zip
  3. 將 CA 憑證和趨勢科技公鑰上傳至該實例。
  4. 將平台金鑰、CA 憑證和趨勢科技公鑰合併成一個二進位檔案 (.bin)
    以下是範例程式碼,將每個項目轉換為.esl檔案,然後將它們合併並轉換為.bin,其中77fa9abd-0359-4d32-bd60-28f4e78f784b是Microsoft Corporation KEK CA 2011憑證的SignatureOwner欄位中的GUID。
    # Convert your platform key into signatures list format
    cert-to-efi-sig-list YOUR_PLATFORM_KEY.crt YOUR_PLATFORM_KEY.esl
    # Convert CA certificates
    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_CA_KEK.esl MicCorKEKCA2011_2011-06-24.crt
    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_CA_PROD.esl MicWinProPCA2011_2011-10-19.crt
    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_CA_UEFI.esl MicCorUEFCA2011_2011-06-27.crt
    # Convert Trend Micro public keys
    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output TREND_UEFI_db_DS20_v2.esl DS20_v2.der
    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output TREND_UEFI_db_DS2022.esl DS2022.der
    # Combine CA and vendor public keys into one signatures list
    cat MS_CA_PROD.esl MS_CA_UEFI.esl TREND_UEFI_db_DS20_v2.esl TREND_UEFI_db_DS2022.esl > ALL_SIGNATURES_db.esl
    cp *.esl /root/
    # Combine all and convert to binary
    ./python-uefivars-main/uefivars.py -i none -o aws -O YOUR_BINARY_SIGNING_CHAIN.bin -P ./YOUR_PLATFORM_KEY.esl -K ./MS_CA_KEK.esl --db ./ALL_SIGNATURES_db.esl
  5. 下載二進位檔案。
  6. 建立該實例的新 EC2 快照。
  7. 存取 AWS Cloudshell。
  8. 前往「處理行動」「檔案」「Upload file」並選擇二進位檔案。
  9. 使用您上傳的快照 ID 和 .bin 檔案建立新的 AMI。
    例如:
    aws ec2 register-image --name LIFT-UBUNTU20SecureBootX64 --uefi-data $(cat YOUR_BINARY_SIGNING_CHAIN.bin) --block-device-mappings "DeviceName=/dev/sda1,Ebs= {SnapshotId={{YOUR-SNAPSHOT-ID}},DeleteOnTermination=true}" --architecture x86_64 --root-device-name /dev/sda1 --virtualization-type hvm --boot-mode uefi
  10. 使用自訂映像來建立已啟動安全開機的新實例。
  11. 驗證金鑰是否已成功註冊到 MOK 清單中。
    使用命令 mokutil --db | grep Trend
  12. 驗證核心是否已成功載入趨勢科技的公開金鑰。
    使用命令 dmesg | grep cert