

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

# Dapat dibuktikan AMIs
<a name="attestable-ami"></a>

AMI yang Dapat Dibuktikan adalah Gambar Mesin Amazon (AMI) dengan hash kriptografi yang sesuai yang mewakili semua isinya. Hash dihasilkan selama proses pembuatan AMI, dan dihitung berdasarkan seluruh konten AMI itu, termasuk aplikasi, kode, dan proses boot.

## Mempertahankan Negara yang Dapat Dibuktikan
<a name="maintain-attestability"></a>

Pengukuran instance didasarkan pada status boot awalnya. Setiap perubahan perangkat lunak atau kode yang dibuat pada instance setelah peluncuran dan yang bertahan setelah restart akan mengubah pengukuran instance setelah restart. Jika pengukuran diubah, pengukuran tersebut menyimpang dari pengukuran referensi AMI yang Dapat Dibuktikan, dan instance tidak akan lagi dapat dibuktikan dengan sukses setelah instance dimulai ulang AWS KMS . Oleh karena itu, AMIs agar Attestable berguna, instance harus kembali ke status boot aslinya setelah restart.

Selalu kembali ke status boot asli memastikan bahwa sebuah instance dapat berhasil membuktikan setelah restart. Utilitas berikut dapat digunakan untuk memastikan bahwa instans Anda tetap dapat dibuktikan setelah restart:
+ `erofs`— Sistem File Baca-Saja yang Ditingkatkan. Utilitas ini memastikan bahwa sistem file root Anda hanya-baca. Dengan utilitas ini, menulis ke sistem file, termasuk,`/etc`, dan `/run``/var`, disimpan dalam memori dan hilang ketika instance dimulai ulang, meninggalkan sistem file root dalam status peluncuran aslinya. Untuk informasi selengkapnya, lihat dokumentasi [erofs.](https://docs.kernel.org/filesystems/erofs.html)
+ `dm-verity`— Memberikan perlindungan integritas untuk sistem file root read-only. Utilitas menghitung hash dari blok sistem file dan menyimpannya di baris perintah kernel. Hal ini memungkinkan kernel untuk memverifikasi integritas sistem file selama boot. Untuk informasi selengkapnya, lihat dokumentasi [dm-verity](https://docs.kernel.org/admin-guide/device-mapper/verity.html).

## Persyaratan untuk membuat Attestable AMIs
<a name="ami-attestable-requirements"></a>

Dapat dibuktikan AMIs memiliki persyaratan sebagai berikut:
+ **Sistem operasi dasar** [- Amazon Linux 2023 dan NixOS](https://github.com/aws/nitrotpm-attestation-samples)
+ **Arsitektur** — `x86_64` atau `arm64` arsitektur
+ **Dukungan TPM** - NitroTPM harus diaktifkan. Untuk informasi selengkapnya, lihat [Persyaratan untuk menggunakan NitroTPM dengan instans Amazon EC2](enable-nitrotpm-prerequisites.md).
+ **Mode boot — Mode** boot UEFI harus diaktifkan.

**Topics**
+ [Mempertahankan Negara yang Dapat Dibuktikan](#maintain-attestability)
+ [Persyaratan untuk membuat Attestable AMIs](#ami-attestable-requirements)
+ [Menciptakan Dapat Dibuktikan AMIs](#sample-ami)
+ [Membangun deskripsi gambar sampel](build-sample-ami.md)
+ [Contoh deskripsi gambar Amazon Linux 2023](al2023-isolated-compute-recipe.md)
+ [Sesuaikan deskripsi gambar sampel](customize-sample-ami.md)
+ [Hitung pengukuran PCR](create-pcr-compute.md)

## Menciptakan Dapat Dibuktikan AMIs
<a name="sample-ami"></a>

Untuk membuat AMI yang Dapat Dibuktikan, Anda harus menggunakan Amazon Linux 2023 dengan [KIWI Next Generation (KIWI](https://osinside.github.io/kiwi/) NG). Amazon Linux 2023 menyediakan semua perangkat lunak dan utilitas yang diperlukan untuk membangun AMI yang Dapat Dibuktikan menggunakan KIWI NG. 

KIWI NG adalah alat sumber terbuka untuk membangun gambar berbasis Linux yang telah dikonfigurasi sebelumnya. KIWI NG menggunakan *deskripsi gambar* XMLyang menentukan isi dari sebuah gambar. Deskripsi gambar menentukan sistem operasi dasar, perangkat lunak, konfigurasi kernel, dan skrip yang akan dijalankan untuk membangun ready-to-use AMI untuk kasus penggunaan tertentu.

Selama waktu pembuatan AMI, Anda perlu menggunakan `nitro-tpm-pcr-compute` utilitas untuk menghasilkan pengukuran referensi berdasarkan Unified Kernel Image (UKI) yang dihasilkan oleh KIWI NG. Untuk informasi selengkapnya tentang penggunaan `nitro-tpm-pcr-compute` utilitas, lihat[Hitung pengukuran PCR untuk AMI khusus](create-pcr-compute.md).

AWS menyediakan contoh deskripsi gambar Amazon Linux 2023 yang mencakup semua konfigurasi yang diperlukan untuk mengonfigurasi instans EC2 dalam lingkungan komputasi yang terisolasi. Untuk informasi selengkapnya, lihat [Buat contoh deskripsi gambar Amazon Linux 2023](build-sample-ami.md).

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

# Contoh deskripsi gambar Amazon Linux 2023
<a name="al2023-isolated-compute-recipe"></a>

Contoh deskripsi gambar Amazon Linux 2023 memiliki karakteristik sebagai berikut: 

1. Boot **Unified Kernel Image (UKI) — Boot** menggunakan biner tunggal bertanda tangan yang menggabungkan kernel,`initrd`, dan parameter boot menjadi satu gambar yang tidak dapat diubah.

1. Sistem **file root hanya-baca — Gunakan Sistem File Hanya** Baca yang Ditingkatkan (`erofs`) dengan perlindungan dm-verity untuk memastikan bahwa sistem file root tidak dapat dimodifikasi dan mempertahankan verifikasi integritas kriptografi.

1. **Sistem file overlay sementara — Buat sistem file** overlay sementara yang memungkinkan penulisan sementara ke direktori seperti,, dan. `/etc` `/run` `/var` Karena sistem file overlay ini hanya ada di memori, semua perubahan secara otomatis hilang saat instance reboot, memastikan sistem kembali ke status tepercaya aslinya.

1. **Metode akses jarak jauh yang dinonaktifkan** - Hapus mekanisme akses jarak jauh berikut untuk mencegah akses jarak jauh:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AWSEC2/latest/UserGuide/al2023-isolated-compute-recipe.html)

   \$1 Untuk informasi lebih lanjut, lihat [Elemen Deskripsi Gambar](https://osinside.github.io/kiwi/image_description/elements.html#packages-ignore).

# Sesuaikan contoh deskripsi gambar Amazon Linux 2023 untuk beban kerja Anda
<a name="customize-sample-ami"></a>

Anda dapat menyesuaikan contoh deskripsi gambar Amazon Linux 2023 dan menyertakan paket perangkat lunak, skrip, dan file yang diperlukan untuk beban kerja spesifik Anda. Kustomisasi dicapai dengan menambahkan atau memodifikasi berbagai elemen dalam deskripsi gambar KIWI NG.

**Topics**
+ [Manajemen repositori](#prepare-custom-image-repos)
+ [Manajemen Package](#customize-sample-ami-packages)
+ [Menambahkan file dan direktori](#customize-sample-ami-overlay)
+ [Menambahkan skrip kustom](#customize-sample-ami-script)

## Manajemen repositori
<a name="prepare-custom-image-repos"></a>

Secara default, deskripsi gambar sampel menyertakan satu `<repository>` elemen yang menunjuk ke titik akhir cermin untuk repositori inti Amazon Linux 2023. Jika perlu, Anda dapat menambahkan referensi ke repositori lain untuk menginstal perangkat lunak yang Anda butuhkan.

Deskripsi gambar sampel menggunakan manajer `dnf` paket, seperti yang didefinisikan dalam `<packagemanager>` elemen.

Untuk informasi selengkapnya tentang menambahkan repositori, lihat [Menyiapkan](https://osinside.github.io/kiwi/concept_and_workflow/repository_setup.html) Repositori.

## Manajemen Package
<a name="customize-sample-ami-packages"></a>

Secara default, deskripsi gambar sampel mencakup semua paket yang diperlukan untuk membuat AMI Amazon Linux 2023 yang Dapat Dibuktikan untuk lingkungan komputasi terisolasi dengan `erofs` sistem file hanya-baca.

Anda dapat menyertakan paket perangkat lunak tambahan dalam deskripsi gambar dengan menambahkannya ke `<packages>` elemen dalam deskripsi gambar. `<packages>`Elemen mendefinisikan semua perangkat lunak yang harus diinstal ke dalam AMI.

Anda juga dapat menggunakan `<packages>` elemen untuk menghapus atau menghapus paket perangkat lunak tertentu.

Untuk informasi selengkapnya tentang menambahkan atau menghapus paket dalam deskripsi gambar, lihat [Menambahkan dan Menghapus Paket](https://osinside.github.io/kiwi/concept_and_workflow/packages.html#).

## Menambahkan file dan direktori
<a name="customize-sample-ami-overlay"></a>

Deskripsi gambar sampel mencakup direktori pohon overlay (`/root/`). Direktori pohon overlay adalah direktori yang berisi file dan direktori yang akan disalin ke dalam gambar selama proses pembuatan gambar. File dan direktori apa pun yang Anda tempatkan ke direktori pohon overlay akan disalin langsung ke sistem file root gambar selama proses pembuatan gambar.

Direktori pohon overlay disalin ke dalam gambar setelah semua paket diinstal. File baru ditambahkan dan file yang ada ditimpa.

## Menambahkan skrip kustom
<a name="customize-sample-ami-script"></a>

Deskripsi gambar sampel mencakup skrip kustom tunggal,`edit_boot_install.sh`. Skrip ini mencakup perintah yang diperlukan untuk menjalankan `nitro-tpm-pcr-compute` utilitas, yang menghasilkan pengukuran referensi berdasarkan konten gambar. Skrip ini dipanggil segera setelah bootloader diinstal.

Jika diperlukan, Anda dapat menyertakan skrip kustom Anda sendiri dalam deskripsi gambar untuk melakukan tugas atau konfigurasi selama proses pembuatan gambar atau pada boot pertama gambar. Menggunakan skrip memungkinkan Anda untuk menyesuaikan gambar Anda dengan cara yang tidak dapat dicapai dengan menggunakan deskripsi gambar saja.

Untuk menyertakan skrip kustom dalam deskripsi gambar Anda, Anda perlu menamainya dengan benar berdasarkan jenis skrip, dan menambahkannya ke direktori yang sama dengan `appliance.kiwi` file. KIWI NG secara otomatis mendeteksi dan mengeksekusi skrip jika diberi nama dengan benar dan ditempatkan di lokasi yang benar, tanpa perlu secara eksplisit mereferensikannya dalam file deskripsi gambar.

Untuk informasi selengkapnya tentang skrip yang didukung oleh KIWI NG, lihat Skrip yang [Ditetapkan Pengguna](https://osinside.github.io/kiwi/concept_and_workflow/shell_scripts.html).

# Hitung pengukuran PCR untuk AMI khusus
<a name="create-pcr-compute"></a>

`nitro-tpm-pcr-compute`Utilitas ini memungkinkan Anda menghasilkan pengukuran referensi untuk AMI yang Dapat Dibuktikan selama waktu pembuatan berdasarkan Unified Kernel Image (UKI).

Contoh deskripsi gambar Amazon Linux 2023 secara otomatis menginstal utilitas pada gambar bawaan di `/usr/bin/` direktori. Deskripsi gambar sampel juga menyertakan skrip dengan perintah yang diperlukan untuk menjalankan utilitas untuk menghasilkan pengukuran referensi selama waktu pembuatan gambar. Jika Anda menggunakan deskripsi gambar sampel, Anda tidak perlu menginstal utilitas atau menjalankannya secara manual. Untuk informasi selengkapnya, lihat [Buat contoh deskripsi gambar Amazon Linux 2023](build-sample-ami.md).

## Instal `nitro-tpm-pcr-compute` utilitas
<a name="nitro-tpm-compute-install"></a>

Jika Anda menggunakan Amazon Linux 2023, Anda dapat menginstal `nitro-tpm-pcr-compute` utilitas dari repositori Amazon Linux sebagai berikut.

```
sudo yum install aws-nitro-tpm-tools
```

Alat-alat dipasang di `/usr/bin` direktori.

## Gunakan `nitro-tpm-pcr-compute` utilitas
<a name="nitro-tpm-compute-use"></a>

Utilitas menyediakan satu perintah,`nitro-tpm-pcr-compute`, untuk menghasilkan pengukuran referensi.

Ketika Anda menjalankan perintah, Anda harus menentukan yang berikut:
+ Unified kernel image (`UKI.efi`) - Diperlukan untuk boot Standar dan UEFI.

**Untuk menghasilkan pengukuran referensi untuk AMI yang Dapat Dibuktikan:**  
Gunakan perintah dan parameter berikut:

```
/usr/bin/nitro-tpm-pcr-compute \
--image UKI.efi
```

Utilitas mengembalikan pengukuran referensi dalam format JSON berikut:

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

Untuk contoh praktis tentang cara menggunakan `nitro-tpm-pcr-compute` utilitas, lihat `edit_boot_install.sh` skrip yang disertakan dalam [contoh deskripsi gambar Amazon Linux 2023](build-sample-ami.md).