View a markdown version of this page

UEFI Secure Boot aktiviert AL2023 - Amazon Linux 2023

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

UEFI Secure Boot aktiviert AL2023

AL2023 unterstützt UEFI Secure Boot ab Version 2023.1. AL2023 muss mit Amazon-EC2-Instances verwendet werden, die sowohl UEFI als auch UEFI Secure Boot unterstützen. Weitere Informationen finden Sie unter Anforderungen für den Start einer Amazon EC2 EC2-Instance im UEFI-Startmodus im Amazon EC2 EC2-Benutzerhandbuch.

AL2023 Instances mit aktiviertem UEFI Secure Boot akzeptieren nur Code auf Kernelebene, einschließlich des Linux-Kernels sowie Module, die signiert sind, Amazon sodass Sie sicherstellen können, dass Ihre Instance nur Codes auf Kernelebene ausführt, die von signiert wurden. AWS

Weitere Informationen zu Amazon EC2 EC2-Instances und UEFI Secure Boot finden Sie unter UEFI Secure Boot for Amazon Amazon EC2-Instances im Amazon EC2 EC2-Benutzerhandbuch.

Voraussetzungen

Aktivieren Sie UEFI Secure Boot auf AL2023

Standardmäßig sind ein Bootloader und ein mit unseren Schlüsseln signierter Kernel AL2023 AMIs enthalten. Sie können UEFI Secure Boot aktivieren, indem Sie entweder bestehende Instanzen registrieren oder wenn UEFI Secure Boot bereits aktiviert ist, indem Sie ein Image aus einem Snapshot registrieren. AMIs UEFI Secure Boot ist standardmäßig nicht aktiviert. AL2023 AMIs

Der Startmodus von AL2023 AMIs ist auf eingestelltuefi-preferred, wodurch sichergestellt AMIs wird, dass die damit gestarteten Instanzen die UEFI-Firmware verwenden, sofern der Instanztyp UEFI unterstützt. Sollte der Instance-Typ UEFI nicht unterstützen, dann wird die Instance mit Legacy-BIOS gestartet. Wird eine Instance im Legacy-BIOS-Modus gestartet, so wird UEFI Secure Boot nicht durchgesetzt.

Weitere Informationen zu AMI-Startmodi auf Amazon EC2 EC2-Instances finden Sie unter Instance-Startverhalten mit Amazon Amazon EC2-Startmodi im Amazon EC2 EC2-Benutzerhandbuch.

Registrierung einer vorhandenen Instance

Wenn Sie eine vorhandene Instanz registrieren möchten, befüllen Sie die spezifischen UEFI-Firmware-Variablen mit einem Schlüsselsatz, die der Firmware erlaubt, beim nächsten Start den Bootloader zu verifizieren und dem Bootloader erlaubt, den Kernel zu verifizieren.

  1. Amazon Linux bietet ein Tool zur Vereinfachung des Registrierungsprozesses. Mit dem folgenden Befehl stellen Sie der Instance den erforderlichen Satz von Schlüsseln und Zertifikaten bereit.

    sudo amazon-linux-sb enroll
  2. Führen Sie den folgenden Befehl aus, um die -Instance neu zu starten. UEFI Secure Boot wird nach dem Neustart der Instanz aktiviert.

    sudo reboot
Anmerkung

Amazon Linux unterstützt AMIs derzeit kein Nitro Trusted Platform Module (NitroTPM). Wenn Sie NitroTPM zusätzlich zu UEFI Secure Boot benötigen, helfen Ihnen die Informationen im folgenden Abschnitt weiter.

Image aus einem Snapshot registrieren

Wenn Sie mithilfe der Amazon-register-image-API ein AMI aus einem Snapshot eines Amazon EBS-Root-Volumes registrieren, können Sie das AMI mit einem binären Blob bereitstellen, der den Status des UEFI-Variablenspeichers enthält. Durch die AL2023 UefiData Bereitstellung von aktivieren Sie UEFI Secure Boot und müssen die Schritte im vorherigen Abschnitt nicht befolgen.

Weitere Informationen zum Erstellen und Verwenden eines binären Blobs finden Sie unter Erstellen eines binären Blobs mit einem vorausgefüllten Variablenspeicher im Amazon EC2 EC2-Benutzerhandbuch.

AL2023 bietet einen vorkonfigurierten binären Blob, der direkt auf Amazon-EC2-Instances verwendet werden kann. Der binäre Blob befindet sich auf einer laufenden Instance in /usr/share/amazon-linux-sb-keys/uefi.vars. Dieser Blob wird durch das amazon-linux-sb-keys RPM-Paket bereitgestellt, das ab Version 2023.1 standardmäßig installiert AL2023 AMIs wird.

Anmerkung

Um sicherzustellen, dass Sie die neueste Version von Keys and Revocations verwenden, verwenden Sie den Blob aus derselben Version, mit der Sie AL2023 das AMI erstellt haben.

Wir empfehlen, bei der Registrierung eines Images den BootMode-Parameter der RegisterImage-API auf uefi zu setzen. Das widerum erlaubt Ihnen, NitroTPM zu aktivieren, indem Sie den TpmSupport-Parameter auf v2.0 setzen. Die Einstellung des Parameters BootMode auf uefi stellt außerdem sicher, dass UEFI Secure Boot aktiviert ist und nicht versehentlich deaktiviert werden kann, wenn zu einem Instance-Typ gewechselt wird, der UEFI nicht unterstützt.

Weitere Informationen zu NitroTPM finden Sie unter NitroTPM für Amazon Amazon EC2-Instances im Amazon EC2 EC2-Benutzerhandbuch.

Widerruf-Updates

Möglicherweise muss Amazon Linux eine neue Version des Bootloaders grub2 oder des Linux-Kernels verteilen, die mit aktualisierten Schlüsseln signiert ist. In diesem Fall muss der alte Schlüssel möglicherweise widerrufen werden, um zu verhindern, dass ausnutzbare Bugs aus früheren Versionen des Bootloaders den UEFI-Secure-Boot-Verifizierungsprozess umgehen können.

Paketaktualisierungen der kernel- oder grub2-Pakete aktualisieren die Liste der Widerrufe immer automatisch im UEFI-Variablenspeicher der laufenden Instanz. Das bedeutet, dass wenn UEFI Secure Boot aktiviert ist, die alte Version eines Pakets nicht mehr ausgeführt werden kann, nachdem ein Sicherheits-Update für das Paket installiert wurde.

So funktioniert UEFI Secure Boot auf AL2023

Im Gegensatz zu anderen Linux-Distributionen bietet Amazon Linux keine zusätzliche Komponente (Shim), die als Bootloader der ersten Stufe fungiert. Ein Shim wird in der Regel mit Microsoft-Schlüsseln signiert. Bei Linux-Distributionen mit dem Shim lädt der Shim beispielsweise den grub2-Bootloader, der den eigenen Code des Shims verwendet, um den Linux-Kernel zu verifizieren. Außerdem verwaltet der Shim seinen eigenen Satz von Schlüsseln und Widerrufen in der MOK-Datenbank (Machine Owner Key), die sich im UEFI-Variablenspeicher befindet und mit dem mokutil-Tool gesteuert wird.

Amazon Linux stellt keinen Shim zur Verfügung. Da der AMI-Besitzer Kontrolle über die UEFI-Variablen hat, ist dieser Zwischenschritt nicht erforderlich und würde sich negativ auf die Start- und Boot-Zeiten auswirken. Wir haben uns dafür entschieden, standardmäßig keinen Herstellerschlüsseln zu vertrauen, um die Wahrscheinlichkeit zu verringern, dass unerwünschte Binärdateien ausgeführt werden könnten. Wie immer können Kunden natürlich eigene Binärdateien hinzufügen, wenn sie dies wünschen.

Bei Amazon Linux lädt und verifiziert UEFI unseren grub2-Bootloader direkt. Der grub2-Bootloader wurde so geändert, dass er UEFI zur Verifizierung des Linux-Kernels nach dem Laden verwendet. Der Linux-Kernel wird also mit denselben Zertifikaten verifiziert, die in der normalen UEFI-db-Variable (autorisierte Schlüsseldatenbank) gespeichert sind, und anhand derselben dbx-Variable (Sperrdatenbank) wie der Bootloader und andere UEFI-Binärdateien getestet. Da wir unsere eigenen PK- und KEK-Schlüssel bereitstellen, die den Zugriff auf die DB-Datenbank und die DBX-Datenbank steuern, können wir signierte Updates und Widerrufe nach Bedarf ohne Zwischenhändler wie den Shim verteilen.

Weitere Informationen zu UEFI Secure Boot finden Sie unter So funktioniert UEFI Secure Boot mit Amazon Amazon EC2-Instances im Amazon EC2 EC2-Benutzerhandbuch.

Eigene Schlüssel registrieren

Wie im vorherigen Abschnitt dokumentiert, benötigt Amazon Linux keinen shim für UEFI Secure Boot auf Amazon EC2. Wenn Sie die Dokumentation für andere Linux-Distributionen lesen, finden Sie möglicherweise eine Dokumentation zur Verwaltung der Machine Owner Key (MOK) -Datenbankmokutil, die nicht verfügbar ist. AL2023 Die shim- und MOK-Umgebungen umgehen einige Einschränkungen der Schlüsselregistrierung in der UEFI-Firmware, die nicht auf die Implementierung von UEFI Secure Boot durch Amazon EC2 zutreffen. Bei Amazon EC2 gibt es Mechanismen, um die Schlüssel im UEFI-Variablenspeicher ganz einfach direkt zu manipulieren.

Wenn Sie Ihre eigenen Schlüssel registrieren möchten, können Sie dies entweder tun, indem Sie den Variablenspeicher innerhalb einer vorhandenen Instanz manipulieren (siehe Schlüssel aus der Instanz zum Variablenspeicher hinzufügen) oder indem Sie einen binären Blob erstellen, der vorgefüllt ist (siehe Erstellen eines binären Blobs, der einen vorgefüllten Variablenspeicher enthält).