

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Buat contoh deskripsi gambar Amazon Linux 2023
<a name="build-sample-ami"></a>

AWS memberikan contoh deskripsi gambar Amazon Linux 2023 yang dapat Anda gunakan sebagai titik awal untuk membuat Attestable kustom Anda sendiri AMIs untuk beban kerja Anda. Deskripsi gambar sampel mencakup Amazon Linux 2023 sebagai sistem operasi dasar, `dm-verity` dan `erofs` konfigurasi untuk kekekalan sistem file, dan menghapus semua akses interaktif (seperti SSH, koneksi instans EC2, dan konsol serial) untuk membuat lingkungan komputasi yang terisolasi. Untuk informasi selengkapnya tentang deskripsi gambar sampel, lihat repo [Github](https://github.com/amazonlinux/kiwi-image-descriptions-examples).

Deskripsi gambar sampel secara otomatis menginstal alat nitRotPM (`nitro-tpm-pcr-compute`dan`nitro-tpm-attest`) pada gambar bawaan di direktori. `/usr/bin/` Ini memastikan bahwa alat sudah diinstal sebelumnya pada instance yang diluncurkan dari AMI.

Deskripsi gambar sampel mencakup skrip`edit_boot_install.sh`, yang mencakup perintah yang diperlukan untuk menghasilkan pengukuran referensi. Script memasang file image disk mentah (`.raw`) yang dibuat oleh KIWI NG ke perangkat loopback, menempatkan UKI, yang memiliki ekstensi `.efi` file, dan kemudian menjalankan `nitro-tpm-pcr-compute` utilitas untuk menghasilkan pengukuran referensi untuk AMI. Skrip secara otomatis dijalankan oleh KIWI NG selama waktu pembuatan.

Tutorial ini menunjukkan cara membuat deskripsi gambar sampel untuk membuat AMI yang Dapat Dibuktikan.

Untuk informasi selengkapnya tentang membuat deskripsi gambar Anda sendiri, lihat dokumentasi KIWI NG berikut:
+ [Mulai Cepat](https://osinside.github.io/kiwi/quickstart.html)
+ [Deskripsi Gambar](https://osinside.github.io/kiwi/image_description.html)
+ [Contoh deskripsi gambar Amazon Linux 2023](https://github.com/amazonlinux/kiwi-image-descriptions-examples)

Prasyarat

Identitas IAM Anda harus memiliki izin berikut untuk menyelesaikan tutorial ini:
+ `ebs:CompleteSnapshot`,`ebs:StartSnapshot`, dan `ebs:PutSnapshotBlock` pada `arn:aws:ec2:*::snapshot/*`
+ `ec2:RegisterImage` di semua sumber daya

**Untuk membuat contoh deskripsi gambar Amazon Linux 2023 menggunakan KIWI NG**

1. Luncurkan instans Amazon EC2 menggunakan AMI AL2023 terbaru. Untuk memastikan instans Anda memiliki ruang penyimpanan yang cukup untuk membangun AMI, pastikan Anda menyediakan setidaknya 12 GB penyimpanan.

1. Instal dependensi yang diperlukan. Perintah berikut menginstal utilitas berikut:
   + `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
   ```

1. Instal `coldsnap` utilitas. Utilitas ini memungkinkan Anda membuat snapshot Amazon EBS dari data gambar mentah. Anda akan menggunakan utilitas ini untuk membuat snapshot EBS dari file gambar disk mentah yang dibuat oleh KIWI NG.

   ```
   git clone https://github.com/awslabs/coldsnap.git
   cd coldsnap
   cargo install --locked coldsnap
   cd ..
   ```

1. Dapatkan contoh file deskripsi gambar.

   ```
   sudo dnf install kiwi-image-descriptions-examples
   ```

   File deskripsi gambar sampel diunduh ke direktori berikut: `/usr/share/kiwi-image-descriptions-examples/al2023/attestable-image-example`

1. Bangun deskripsi gambar sampel menggunakan `system build` perintah KIWI NG. Perintah berikut membuat file image disk mentah dalam `./image` direktori.

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

   Untuk informasi selengkapnya, lihat dokumentasi [pembuatan sistem kiwi-ng](https://osinside.github.io/kiwi/commands/system_build.html).

1. Dapatkan pengukuran referensi untuk AMI. Pengukuran dihasilkan oleh `nitro-tpm-pcr-compute` utilitas selama waktu pembuatan gambar pada langkah sebelumnya. Anda dapat menemukan pengukuran referensi dalam file berikut:`./image/pcr_measurements.json`.

   Pengukuran disediakan dalam format JSON berikut:

   ```
   {
     "Measurements": {
       "HashAlgorithm": "SHA384 { ... }",
       "PCR4": "PCR4_measurement",
       "PCR7": "PCR7_measurement",
       "PCR12": "PCR12_measurement"
     }
   }
   ```

1. Gunakan `coldsnap` utilitas untuk mengunggah gambar disk mentah yang dibuat oleh KIWI NG ke snapshot EBS. Perintah mengembalikan ID snapshot. Buat catatan ID, Anda akan membutuhkannya untuk langkah berikutnya.

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

   Untuk informasi lebih lanjut tentang `coldsnap` utilitas, lihat repo [coldsnap GitHub ](https://github.com/awslabs/coldsnap).

1. Daftarkan AMI berkemampuan TPM 2.0 dengan mode boot UEFI menggunakan snapshot dari langkah sebelumnya. Untuk`--architecture`, tentukan `x86_64` untuk Intel, atau `arm64` untuk Graviton.

   ```
   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
   ```