Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Création de l’exemple de description d’image Amazon Linux 2023
AWS fournit un exemple de description d'image Amazon Linux 2023 que vous pouvez utiliser comme point de départ pour créer votre propre Attestable personnalisé AMIs pour vos charges de travail. L'exemple de description de l'image inclut Amazon Linux 2023 comme système d'exploitation de base, dm-verity ainsi que les erofs configurations pour l'immuabilité du système de fichiers, et supprime tous les accès interactifs (tels que SSH, connexion d' EC2 instance et console série) pour créer un environnement de calcul isolé. Pour plus d’informations sur l’exemple de description d’image, consultez le dépôt Github
L’exemple de description d’image installe automatiquement les outils NitroTPM (nitro-tpm-pcr-compute et nitro-tpm-attest) dans l’image créée dans le répertoire /usr/bin/. Cela garantit que les outils sont préinstallés sur les instances lancées depuis l’AMI.
L’exemple de description d’image inclut un script qui inclut les commandes nécessaires pour générer les mesures de référence edit_boot_install.sh. Le script monte le fichier image disque brut (.raw) créé par KIWI NG sur un périphérique de boucle, localise l’UKI, qui porte l’extension de fichier .efi, puis exécute l’utilitaire nitro-tpm-pcr-compute pour générer les mesures de référence pour l’AMI. Le script est automatiquement exécuté par KIWI NG pendant la phase de construction.
Ce didacticiel vous montre comment créer un exemple de description d’image pour créer une AMI vérifiable.
Pour plus d’informations sur la création de vos propres descriptions d’images, consultez la documentation KIWI NG suivante :
Pour créer l’exemple de description d’image Amazon Linux 2023 à l’aide de KIWI NG
-
Lancez une EC2 instance Amazon à l'aide de la dernière AMI AL2 023. Pour vous assurer que votre instance dispose de suffisamment d’espace de stockage pour créer l’AMI, assurez-vous de fournir au moins 12 Go de stockage.
-
Installez les dépendances obligatoires. La commande ci-dessous installe les utilitaires suivants :
-
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 -
-
Installez l’utilitaire
coldsnap. Cet utilitaire vous permet de créer des instantanés Amazon EBS à partir de données d’image brutes. Vous allez utiliser cet utilitaire pour créer un instantané EBS à partir du fichier image disque brut créé par KIWI NG.git clone https://github.com/awslabs/coldsnap.git cd coldsnap cargo install --locked coldsnap cd .. -
Obtenez les exemples de fichiers de description d’image.
sudo dnf install kiwi-image-descriptions-examplesLes exemples de fichiers de description d’image sont téléchargés dans le répertoire suivant :
/usr/share/kiwi-image-descriptions-examples/al2023/attestable-image-example -
Créez l’exemple de description d’image à l’aide de la commande KIWI NG
system build. La commande suivante crée un fichier image disque brut dans le répertoire./image.sudo kiwi-ng \ --color-output \ --loglevel 0 \ system build \ --description /usr/share/kiwi-image-descriptions-examples/al2023/attestable-image-example \ --target-dir ./imagePour plus d’informations, consultez la documentation de création de système kiwi-ng
. -
Obtenez les mesures de référence pour l’AMI. Les mesures sont générées par l’utilitaire
nitro-tpm-pcr-computelors de la création de l’image à l’étape précédente. Vous pouvez trouver les mesures de référence dans le fichier suivant :./image/pcr_measurements.jsonLes mesures sont fournies au format JSON suivant :
{ "Measurements": { "HashAlgorithm": "SHA384 { ... }", "PCR4": "PCR4_measurement", "PCR7": "PCR7_measurement", "PCR12": "PCR12_measurement" } } -
Utilisez l’utilitaire
coldsnappour télécharger l’image disque brute créée par KIWI NG sur un instantané EBS. La commande renvoie l’ID d’instantané. Notez l’ID, vous en aurez besoin pour l’étape suivante.SNAPSHOT=$(.cargo/bin/coldsnap upload ./image/kiwi*.raw) echo "Created snapshot: $SNAPSHOT"Pour plus d'informations sur cet
coldsnaputilitaire, consultez le dépôt coldsnap GitHub. -
Enregistrez une AMI compatible TPM 2.0 avec le mode de démarrage UEFI à l’aide de l’instantané de l’étape précédente. Pour
--architecture, spécifiezx86_64pour Intel ouarm64pour Graviton.aws ec2 register-image \ --name "attestable_isolated_al2023_ami" \ --virtualization-type hvm \ --boot-mode uefi \ --architecturex86_64|arm64\ --root-device-name /dev/xvda \ --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=${SNAPSHOT}} \ --tpm-support v2.0 \ --ena-support