Beispiel-Image-Beschreibung für Amazon Linux 2023 erstellen - Amazon Elastic Compute Cloud

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.

Beispiel-Image-Beschreibung für Amazon Linux 2023 erstellen

AWS bietet ein Beispiel für eine Amazon Linux 2023-Imagebeschreibung, die Sie als Ausgangspunkt für die Erstellung Ihres eigenen benutzerdefinierten Attestable AMIs für Ihre Workloads verwenden können. Die Beschreibung des Beispielimages umfasst Amazon Linux 2023 als Basisbetriebssystem dm-verity und erofs Konfigurationen für die Unveränderlichkeit des Dateisystems. Außerdem wird jeglicher interaktiver Zugriff (wie SSH, EC2 Instance-Verbindung und serielle Konsole) entfernt, um eine isolierte Rechenumgebung zu schaffen. Weitere Informationen über die Beispiel-Image-Beschreibung finden Sie im Github-Repo.

Die Beispiel-Image-Beschreibung installiert automatisch die NitroTPM-Tools (nitro-tpm-pcr-compute und nitro-tpm-attest) im erstellten Image im Verzeichnis /usr/bin/. Dadurch wird sichergestellt, dass die Tools auf Instances vorinstalliert sind, die über das AMI gestartet werden.

Die Beispiel-Image-Beschreibung umfasst ein Skript, edit_boot_install.sh, das die Befehle enthält, die zum Generieren der Referenzmessungen erforderlich sind. Das Skript hängt die von KIWI NG erstellte rohe Festplatten-Image-Datei (.raw) auf einem Loopback-Gerät ein, lokalisiert die UKI mit der Dateierweiterung .efi und führt dann das Hilfsprogramm nitro-tpm-pcr-compute aus, um die Referenzmessungen für das AMI zu generieren. Das Skript wird während der Build-Zeit automatisch von KIWI NG ausgeführt.

In diesem Tutorial erfahren Sie, wie Sie die Beispiel-Image-Beschreibung erstellen, um ein attestierbares AMI zu erstellen.

Weitere Informationen zum Erstellen eigener Image-Beschreibungen finden Sie in der folgenden KIWI-NG-Dokumentation:

So erstellen Sie eine Beispiel-Image-Beschreibung für Amazon Linux 2023 mit KIWI NG
  1. Starten Sie eine EC2 Amazon-Instance mit dem neuesten AL2 023-AMI. Um sicherzustellen, dass Ihre Instance über ausreichend Speicherplatz für die Erstellung des AMI verfügt, stellen Sie sicher, dass Sie mindestens 12 GB Speicher bereitstellen.

  2. Installieren Sie die erforderlichen Abhängigkeiten. Der folgende Befehl installiert die folgenden Hilfsprogramme:

    • kiwi-cli

    • veritysetup

    • erofs-utils

    • aws-nitro-tpm-tools

    sudo dnf install -y kiwi-cli python3-kiwi kiwi-systemdeps-core python3-poetry-core qemu-img veritysetup erofs-utils git cargo aws-nitro-tpm-tools
  3. Installieren Sie das Hilfsprogramm coldsnap. Mit diesem Hilfsprogramm können Sie Amazon-EBS-Snapshots aus Image-Rohdaten erstellen. Sie verwenden dieses Hilfsprogramm, um einen EBS-Snapshot aus der von KIWI NG erstellten rohen Festplatten-Image-Datei zu erstellen.

    git clone https://github.com/awslabs/coldsnap.git cd coldsnap cargo install --locked coldsnap cd ..
  4. Rufen Sie die Dateien der Beispiel-Image-Beschreibung ab.

    sudo dnf install kiwi-image-descriptions-examples

    Die Dateien der Beispiel-Image-Beschreibung werden in das folgende Verzeichnis heruntergeladen: /usr/share/kiwi-image-descriptions-examples/al2023/attestable-image-example

  5. Erstellen Sie die Beispiel-Image-Beschreibung mit dem KIWI-NG-Befehl system build. Mit dem folgenden Befehl wird eine rohe Festplatten-Image-Datei im Verzeichnis ./image erstellt.

    sudo kiwi-ng \ --color-output \ --loglevel 0 \ system build \ --description /usr/share/kiwi-image-descriptions-examples/al2023/attestable-image-example \ --target-dir ./image

    Weitere Informationen finden Sie in der Dokumentation kiwi-ng system build.

  6. Rufen Sie die Referenzmessungen für das AMI ab. Die Messungen werden vom Hilfsprogramm nitro-tpm-pcr-compute während der Image-Erstellung im vorherigen Schritt generiert. Sie können die Referenzmessungen in der folgenden Datei finden: ./image/pcr_measurements.json.

    Die Messungen werden im folgenden JSON-Format bereitgestellt:

    { "Measurements": { "HashAlgorithm": "SHA384 { ... }", "PCR4": "PCR4_measurement", "PCR7": "PCR7_measurement", "PCR12": "PCR12_measurement" } }
  7. Verwenden Sie das Hilfsprogramm coldsnap, um das von KIWI NG erstellte rohe Festplatten-Image in einen EBS-Snapshot hochzuladen. Der Befehl gibt die Snapshot-ID zurück. Notieren Sie sich die ID, die Sie im nächsten Schritt benötigen.

    SNAPSHOT=$(.cargo/bin/coldsnap upload ./image/kiwi*.raw) echo "Created snapshot: $SNAPSHOT"

    Weitere Informationen über das coldsnap Hilfsprogramm finden Sie im GitHub Coldsnap-Repo.

  8. Registrieren Sie ein TPM-2.0-fähiges AMI im UEFI-Startmodus mithilfe des Snapshots aus dem vorherigen Schritt. Geben Sie bei --architecture den Wert x86_64 für Intel oder arm64 für Graviton an.

    aws ec2 register-image \ --name "attestable_isolated_al2023_ami" \ --virtualization-type hvm \ --boot-mode uefi \ --architecture x86_64|arm64 \ --root-device-name /dev/xvda \ --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=${SNAPSHOT}} \ --tpm-support v2.0 \ --ena-support