Ansichten:

Bereiten Sie Ihre AWS-Umgebung vor, damit Server & Workload Protection Secure Boot unterstützen kann.

Wichtig
Wichtig
  • Sie müssen über einen Plattformschlüssel verfügen, um Secure Boot-Schlüssel zu registrieren. Wenn Sie keinen Plattformschlüssel haben, lesen Sie die AWS-Dokumentation, um einen Secure Boot-Plattformschlüssel zu generieren.
  • Ersetzen Sie den Plattform-Schlüssel nicht, wenn Sie nicht auf die Firmware aller Geräte zugreifen können, die während des Bootvorgangs geladen werden, wie z. B. die GPU. Wenn Sie die Firmware-Signaturkette nicht aktualisieren können, um Ihren neuen Plattform-Schlüssel zu verwenden, könnte Secure Boot dazu führen, dass die Instanz dauerhaft nicht mehr booten kann.

Prozedur

  1. Erstellen Sie eine EC2-Instanz einer virtuellen Maschine aus einem Linux-Distributions-AMI, das Secure Boot unterstützt.
  2. Installieren Sie in der Konsole für diese Instanz die Machine Owner Key (MOK)-Befehle mokutil, uefivars und Python.
    Geben Sie beispielsweise auf Red Hat Enterprise Linux die folgenden Befehle ein:
    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
    Für Debian oder Ubuntu verwenden Sie die Befehle:
    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. Laden Sie die CA-Zertifikate und die öffentlichen Schlüssel von TrendAI™ auf die Instanz hoch.
  4. Kombinieren Sie den Plattformschlüssel, die CA-Zertifikate und den TrendAI™ öffentlichen Schlüssel in eine einzelne Binärdatei (.bin)
    Der folgende Beispielcode konvertiert jedes Element in .esl-Dateien, kombiniert sie dann und konvertiert das Set in .bin, wobei 77fa9abd-0359-4d32-bd60-28f4e78f784b die GUID im SignatureOwner-Feld des Microsoft Corporation KEK CA 2011 Zertifikats ist.
    # 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 TrendAI™ 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. Laden Sie die Binärdatei herunter.
  6. Erstellen Sie einen neuen EC2-Snapshot der Instanz.
  7. Zugriff auf AWS Cloudshell.
  8. Gehen Sie zu AktionenDateienDatei hochladen und wählen Sie die Binärdatei aus.
  9. Erstellen Sie ein neues AMI mit der Snapshot-ID und der .bin-Datei, die Sie hochgeladen haben.
    Beispiel:
    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. Verwenden Sie das angepasste Image, um eine neue Instanz mit aktiviertem Secure Boot zu erstellen.
  11. Überprüfen Sie, ob die Schlüssel erfolgreich in die MOK-Liste aufgenommen wurden.
    Verwenden Sie den Befehl mokutil --db | grep Trend.
  12. Überprüfen Sie, ob der Kernel die TrendAI™ öffentlichen Schlüssel erfolgreich geladen hat.
    Verwenden Sie den Befehl dmesg | grep cert.