

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

# Kontrol penemuan dan penggunaan AMI di Amazon EC2 dengan AMI yang Diizinkan
<a name="ec2-allowed-amis"></a>

Untuk mengontrol penemuan dan penggunaan Amazon Machine Images (AMI) oleh pengguna di Anda Akun AWS, Anda dapat menggunakan fitur *AMI yang Diizinkan*. Anda menentukan kriteria yang harus dipenuhi oleh AMI agar terlihat dan tersedia dalam akun Anda. Ketika kriteria diaktifkan, pengguna yang meluncurkan instance hanya akan melihat dan memiliki akses ke AMI yang sesuai dengan kriteria yang ditentukan. Misalnya, Anda dapat menentukan daftar penyedia AMI tepercaya sebagai kriteria, dan hanya AMI dari penyedia ini yang akan terlihat dan tersedia untuk digunakan.

Sebelum mengaktifkan pengaturan AMI yang Diizinkan, Anda dapat mengaktifkan *mode audit* untuk melihat pratinjau AMI mana yang akan atau tidak akan terlihat dan tersedia untuk digunakan. Ini memungkinkan Anda menyempurnakan kriteria yang diperlukan untuk memastikan bahwa hanya AMI yang dituju yang terlihat dan tersedia bagi pengguna di akun Anda. Selain itu, gunakan perintah [describe-instance-image-metadata](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-image-metadata.html) untuk menemukan instance yang diluncurkan dengan AMI yang tidak memenuhi kriteria yang ditentukan. Informasi ini dapat memandu keputusan Anda untuk memperbarui konfigurasi peluncuran Anda untuk menggunakan AMI yang sesuai (misalnya, menentukan AMI yang berbeda dalam templat peluncuran) atau menyesuaikan kriteria Anda untuk mengizinkan AMI ini.

Anda menentukan pengaturan AMI yang Diizinkan di tingkat akun, baik secara langsung di akun atau dengan menggunakan kebijakan deklaratif. Pengaturan ini harus dikonfigurasi di setiap Wilayah AWS tempat Anda ingin mengontrol penggunaan AMI. Menggunakan kebijakan deklaratif memungkinkan Anda menerapkan pengaturan di beberapa Wilayah secara bersamaan, serta di beberapa akun secara bersamaan. Saat kebijakan deklaratif sedang digunakan, Anda tidak dapat mengubah pengaturan secara langsung di dalam akun. Topik ini menjelaskan cara mengonfigurasi pengaturan secara langsung di dalam akun. Untuk informasi tentang penggunaan kebijakan deklaratif, lihat [Kebijakan deklaratif](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) di *AWS Organizations Panduan Pengguna*.

**catatan**  
Fitur AMI yang Diizinkan hanya mengontrol penemuan dan penggunaan AMI publik atau AMI yang dibagikan dengan akun Anda. Ini tidak membatasi AMI yang dimiliki oleh akun Anda. Terlepas dari kriteria yang Anda tetapkan, AMI yang dibuat oleh akun Anda selalu dapat ditemukan dan dapat digunakan oleh pengguna di akun Anda.

**Manfaat Utama dari AMI yang Diizinkan**
+ **Kepatuhan dan keamanan**: Pengguna hanya dapat menemukan dan menggunakan AMI yang memenuhi kriteria yang ditentukan, sehingga mengurangi risiko penggunaan AMI yang tidak sesuai.
+ **Manajemen yang efisien**: Dengan mengurangi jumlah AMI yang diizinkan, mengelola yang tersisa menjadi lebih mudah dan lebih efisien.
+ **Implementasi tingkat akun terpusat**: Konfigurasikan pengaturan AMI yang Diizinkan di tingkat akun, baik secara langsung di dalam akun atau melalui kebijakan deklaratif. Ini menyediakan cara terpusat dan efisien untuk mengontrol penggunaan AMI di seluruh akun.

**Topics**
+ [Bagaimana AMI yang Diizinkan bekerja](#how-allowed-amis-works)
+ [Praktik terbaik untuk menerapkan AMI yang Diizinkan](#best-practice-for-implementing-allowed-amis)
+ [Izin IAM yang diperlukan](#iam-permissions-for-allowed-amis)
+ [Mengelola pengaturan untuk AMI yang Diizinkan](manage-settings-allowed-amis.md)

## Bagaimana AMI yang Diizinkan bekerja
<a name="how-allowed-amis-works"></a>

Untuk mengontrol AMI mana yang dapat ditemukan dan digunakan di akun Anda, Anda menentukan serangkaian kriteria untuk mengevaluasi AMI. Kriteria terdiri dari satu atau lebih `ImageCriterion` seperti yang ditunjukkan pada diagram berikut. Penjelasan mengikuti diagram.

![Hierarki ImageCriteria konfigurasi AMI yang Diizinkan.](http://docs.aws.amazon.com/id_id/AWSEC2/latest/UserGuide/images/ami_allowed-amis-imagecriteria.png)


Konfigurasi memiliki tiga level:
+ **1** — Nilai parameter
  + Multi-value parameter:
    + `ImageProviders`
    + `ImageNames`
    + `MarketplaceProductCodes`

      AMI dapat mencocokkan nilai *apa pun* dalam parameter yang akan diizinkan.

      Contoh: `ImageProviders` = `amazon` **ATAU** akun `111122223333` **ATAU** akun `444455556666` (Logika evaluasi untuk nilai parameter tidak ditampilkan dalam diagram.)
    + `ImageWatermarks`
  + Single-value parameter:
    + `CreationDateCondition`
    + `DeprecationTimeCondition`
+ **2** — `ImageCriterion`
  + Kelompokkan beberapa parameter dengan logika **AND**.
  + AMI harus cocok dengan *semua* parameter dalam a `ImageCriterion` untuk diizinkan.
  + Contoh: `ImageProviders` = `amazon` **AND** `CreationDateCondition` = 300 hari atau kurang
+ **3** — `ImageCriteria`
  + Kelompokkan beberapa `ImageCriterion` dengan logika **OR**.
  + AMI dapat mencocokkan *`ImageCriterion`apa pun* yang diizinkan.
  + Membentuk konfigurasi lengkap tempat AMI dievaluasi. 

**Topics**
+ [Parameter AMI yang diizinkan](#allowed-amis-criteria)
+ [Konfigurasi AMI yang diizinkan](#allowed-amis-json-configuration)
+ [Bagaimana kriteria dievaluasi](#how-allowed-amis-criteria-are-evaluated)
+ [Batas](#allowed-amis-json-configuration-limits)
+ [Operasi AMI yang diizinkan](#allowed-amis-operations)

### Parameter AMI yang diizinkan
<a name="allowed-amis-criteria"></a>

Parameter berikut dapat dikonfigurasi untuk membuat`ImageCriterion`:

`ImageProviders`  
Penyedia AMI yang AMI diizinkan.  
Nilai yang valid adalah alias yang didefinisikan oleh AWS, dan Akun AWS ID, sebagai berikut:  
+ `amazon`— Alias yang mengidentifikasi AMI yang dibuat oleh Amazon atau penyedia terverifikasi
+ `aws-marketplace`— Alias yang mengidentifikasi AMI yang dibuat oleh penyedia terverifikasi di AWS Marketplace
+ `aws-backup-vault`— Alias yang mengidentifikasi AMI cadangan yang berada di akun brankas Backup yang memiliki celah udara secara logis. AWS Jika Anda menggunakan fitur AWS Backup air-gapped vault secara logis, pastikan alias ini disertakan sebagai penyedia AMI.
+ Akun AWS ID — Satu atau lebih 12 digit Akun AWS ID
+ `none`— Menunjukkan bahwa hanya AMI yang dibuat oleh akun Anda yang dapat ditemukan dan digunakan. AMI publik atau bersama tidak dapat ditemukan dan digunakan. Ketika ditentukan, tidak ada kriteria lain yang dapat ditentukan.

`ImageNames`  
Nama-nama AMI yang diizinkan, menggunakan kecocokan persis atau wildcard (`?`atau`*`).

`MarketplaceProductCodes`  
Kode AWS Marketplace produk untuk AMI yang diizinkan.

`CreationDateCondition`  
Usia maksimum untuk AMI yang diizinkan.

`DeprecationTimeCondition`  
Periode maksimum sejak penghentian untuk AMI yang diizinkan.

`ImageWatermarks`  
Daftar filter watermark. Filter memungkinkan AMI jika ada tanda air pada AMI yang cocok dengan entri filter apa pun (logika OR). Setiap filter dapat mencakup bidang-bidang berikut:  
+ `WatermarkKey`— Tombol watermark untuk mencocokkan () `account-id:watermark-name`
+ `SourceImageRegion`— Wilayah AMI tempat Anda awalnya memasang tanda air
+ `MaximumDaysSinceSourceImageCreated`— Usia maksimum sumber AMI saat Anda menerapkan watermark
+ `MaximumDaysSinceWatermarkCreated`— Jumlah hari maksimum sejak Anda menerapkan tanda air

*Untuk nilai dan batasan yang valid untuk setiap kriteria, lihat di Referensi API [ImageCriterionRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImageCriterionRequest.html)Amazon EC2.*

### Konfigurasi AMI yang diizinkan
<a name="allowed-amis-json-configuration"></a>

Konfigurasi inti untuk AMI yang Diizinkan adalah `ImageCriteria` konfigurasi yang mendefinisikan kriteria untuk AMI yang diizinkan. Struktur JSON berikut menunjukkan parameter yang dapat ditentukan:

```
{
    "State": "enabled" | "disabled" | "audit-mode",  
    "ImageCriteria" : [
        {
            "ImageProviders": ["string",...],
            "MarketplaceProductCodes": ["string",...],           
            "ImageNames":["string",...],
            "CreationDateCondition" : {
                "MaximumDaysSinceCreated": integer
            },
            "DeprecationTimeCondition" : {
                "MaximumDaysSinceDeprecated": integer
            },
            "ImageWatermarks": [
                {
                    "WatermarkKey": "string",
                    "SourceImageRegion": "string",
                    "MaximumDaysSinceSourceImageCreated": integer,
                    "MaximumDaysSinceWatermarkCreated": integer
                },...
            ]
         },
         ...
}
```

#### ImageCriteria contoh
<a name="allowed-amis-json-configuration-example"></a>

`ImageCriteria`Contoh berikut mengkonfigurasi lima`ImageCriterion`. AMI diperbolehkan jika cocok dengan salah satu dari ini`ImageCriterion`. Untuk informasi tentang bagaimana kriteria dievaluasi, lihat[Bagaimana kriteria dievaluasi](#how-allowed-amis-criteria-are-evaluated).

```
{
    "ImageCriteria": [
        // ImageCriterion 1: Allow AWS Marketplace AMIs with product code "abcdefg1234567890"
        {
            "MarketplaceProductCodes": [
                "{{abcdefg1234567890}}"
            ]
        },
        // ImageCriterion 2: Allow AMIs from providers whose accounts are
        // "123456789012" OR "123456789013" AND AMI age is less than 300 days
        {
            "ImageProviders": [
                "{{123456789012}}",
                "{{123456789013}}"
            ],
            "CreationDateCondition": {
                "MaximumDaysSinceCreated": {{300}}
            }
        },
        // ImageCriterion 3: Allow AMIs from provider whose account is "123456789014" 
        // AND with names following the pattern "golden-ami-*"
        {
            "ImageProviders": [
                "{{123456789014}}"
            ],
            "ImageNames": [
                "{{golden-ami-*}}"
            ]
        },
        // ImageCriterion 4: Allow AMIs from Amazon or verified providers 
        // AND which aren't deprecated
        {
            "ImageProviders": [
                "amazon"
            ],
            "DeprecationTimeCondition": {
                "MaximumDaysSinceDeprecated": {{0}}
            }
        },
        // ImageCriterion 5: Allow AMIs that carry an approved watermark
        // from account "111122223333" AND the watermark was applied less than 90 days ago
        {
            "ImageWatermarks": [
                {
                    "WatermarkKey": "{{111122223333:prod-baseline}}",
                    "MaximumDaysSinceWatermarkCreated": {{90}}
                }
            ]
        }
    ]
}
```

### Bagaimana kriteria dievaluasi
<a name="how-allowed-amis-criteria-are-evaluated"></a>

Tabel berikut menjelaskan aturan evaluasi yang menentukan apakah AMI diizinkan, yang menunjukkan bagaimana `OR` operator `AND` atau diterapkan di setiap tingkat:


| Tingkat evaluasi | Operator | Persyaratan untuk menjadi AMI yang Diizinkan | 
| --- | --- | --- | 
| Nilai parameter untukImageProviders,ImageNames,MarketplaceProductCodes, dan ImageWatermarks | OR | AMI harus mencocokkan setidaknya satu nilai di setiap daftar parameter | 
| ImageCriterion | AND | AMI harus mencocokkan semua parameter di masing-masing ImageCriterion | 
| ImageCriteria | OR | AMI harus cocok dengan salah satu ImageCriterion | 

Dengan menggunakan aturan evaluasi sebelumnya, mari kita lihat bagaimana menerapkannya pada: [ImageCriteria contoh](#allowed-amis-json-configuration-example)
+ `ImageCriterion`1: Memungkinkan AMI yang memiliki kode AWS Marketplace produk `abcdefg1234567890`

  `OR`
+ `ImageCriterion`2: Memungkinkan AMI yang memenuhi kedua kriteria ini:
  + Dimiliki oleh salah satu akun `123456789012` `OR` `123456789013`
    + `AND`
  + Dibuat dalam 300 hari terakhir

  `OR`
+ `ImageCriterion`3: Memungkinkan AMI yang memenuhi kedua kriteria ini:
  + Dimiliki oleh akun `123456789014`
    + `AND`
  + Dinamakan dengan pola `golden-ami-*`

  `OR`
+ `ImageCriterion`4: Memungkinkan AMI yang memenuhi kedua kriteria ini:
  + Diterbitkan oleh Amazon atau penyedia terverifikasi (ditentukan oleh `amazon` alias)
    + `AND`
  + Tidak usang (hari maksimum sejak penghentian) `0`

  `OR`
+ `ImageCriterion`5: Memungkinkan AMI yang membawa pencocokan tanda air:
  + Kunci tanda air `111122223333:prod-baseline`
    + `AND`
  + Anda menerapkan tanda air kurang dari 90 hari yang lalu

### Batas
<a name="allowed-amis-json-configuration-limits"></a>

`ImageCriteria`Dapat mencakup hingga:
+ 10 `ImageCriterion`

Masing-masing `ImageCriterion` dapat mencakup hingga:
+ 200 nilai untuk `ImageProviders`
+ 50 nilai untuk `ImageNames` 
+ 50 nilai untuk `MarketplaceProductCodes` 
+ 50 nilai untuk `ImageWatermarks`

**Contoh batas**

Menggunakan yang sebelumnya[ImageCriteria contoh](#allowed-amis-json-configuration-example):
+ Ada 5`ImageCriterion`. Hingga 5 lagi dapat ditambahkan ke permintaan untuk mencapai batas 10.
+ Yang pertama`ImageCriterion`, ada 1 nilai untuk`MarketplaceProductCodes`. Hingga 49 lebih dapat ditambahkan ke ini `ImageCriterion` untuk mencapai batas 50.
+ Yang kedua`ImageCriterion`, ada 2 nilai untuk`ImageProviders`. Hingga 198 lebih dapat ditambahkan ke ini `ImageCriterion` untuk mencapai batas 200.
+ Yang ketiga`ImageCriterion`, ada 1 nilai untuk`ImageNames`. Hingga 49 lebih dapat ditambahkan ke ini `ImageCriterion` untuk mencapai batas 50.

### Operasi AMI yang diizinkan
<a name="allowed-amis-operations"></a>

Fitur AMI yang Diizinkan memiliki tiga status operasional untuk mengelola kriteria gambar: **mode **diaktifkan**, **dinonaktifkan**, dan audit**. Ini memungkinkan Anda untuk mengaktifkan atau menonaktifkan kriteria gambar, atau meninjaunya sesuai kebutuhan.

**Diaktifkan**

Saat AMI yang Diizinkan diaktifkan: 
+ Itu `ImageCriteria` diterapkan.
+ Hanya AMI yang diizinkan yang dapat ditemukan di konsol EC2 dan oleh API yang menggunakan gambar (misalnya, yang mendeskripsikan, menyalin, menyimpan, atau melakukan tindakan lain yang menggunakan gambar).
+ Instans hanya dapat diluncurkan menggunakan AMI yang diizinkan.

**Nonaktif**

Ketika AMI yang Diizinkan dinonaktifkan: 
+ Itu `ImageCriteria` tidak diterapkan.
+ Tidak ada batasan yang ditempatkan pada kemampuan penemuan atau penggunaan AMI. 

**Modus audit**

 Dalam mode audit:
+ `ImageCriteria`Ini diterapkan, tetapi tidak ada batasan yang ditempatkan pada kemampuan penemuan atau penggunaan AMI.
+ Di konsol EC2, untuk setiap AMI, bidang **gambar yang Diizinkan** menampilkan **Ya** atau **Tidak** untuk menunjukkan apakah AMI akan dapat ditemukan dan tersedia bagi pengguna di akun saat AMI yang Diizinkan diaktifkan.
+ Di baris perintah, respons untuk `describe-image` operasi mencakup `"ImageAllowed": true` atau `"ImageAllowed": false` untuk menunjukkan apakah AMI akan dapat ditemukan dan tersedia untuk pengguna di akun saat AMI yang Diizinkan diaktifkan.
+ Di konsol EC2, Katalog AMI menampilkan **Tidak diizinkan** di samping AMI yang tidak dapat ditemukan atau tersedia bagi pengguna di akun saat AMI yang Diizinkan diaktifkan.

## Praktik terbaik untuk menerapkan AMI yang Diizinkan
<a name="best-practice-for-implementing-allowed-amis"></a>

Saat menerapkan AMI yang Diizinkan, pertimbangkan praktik terbaik ini untuk memastikan transisi yang lancar dan meminimalkan potensi gangguan pada AWS lingkungan Anda.

1. **Aktifkan mode audit**

   Mulailah dengan mengaktifkan AMI yang Diizinkan dalam mode audit. Status ini memungkinkan Anda untuk melihat AMI mana yang akan terpengaruh oleh kriteria Anda tanpa benar-benar membatasi akses, memberikan periode evaluasi bebas risiko.

1. **Tetapkan kriteria AMI yang Diizinkan**

   Tetapkan dengan cermat penyedia AMI mana yang selaras dengan kebijakan keamanan, persyaratan kepatuhan, dan kebutuhan operasional organisasi Anda.
**catatan**  
Saat menggunakan layanan AWS terkelola, seperti Amazon ECS, Amazon EKS, atau Instans Terkelola AWS Lambda, sebaiknya tentukan alias untuk mengizinkan AMI `amazon` yang dibuat oleh. AWS Layanan ini bergantung pada Amazon-published AMI untuk meluncurkan instance.   
Berhati-hatilah saat menetapkan `CreationDateCondition` batasan untuk AMI apa pun. Menyetel kondisi tanggal yang terlalu ketat (misalnya, AMI harus berusia kurang dari 5 hari) dapat menyebabkan kegagalan peluncuran instance jika AMI, baik dari AWS atau penyedia lain, tidak diperbarui dalam jangka waktu yang Anda tentukan.  
Kami merekomendasikan pemasangan `ImageNames` dengan `ImageProviders` untuk kontrol dan spesifisitas yang lebih baik. Menggunakan `ImageNames` sendiri mungkin tidak secara unik mengidentifikasi AMI.

1. **Periksa dampak pada proses bisnis yang diharapkan**

   Anda dapat menggunakan konsol atau CLI untuk mengidentifikasi instance apa pun yang diluncurkan dengan AMI yang tidak memenuhi kriteria yang ditentukan. Informasi ini dapat memandu keputusan Anda untuk memperbarui konfigurasi peluncuran Anda untuk menggunakan AMI yang sesuai (misalnya, menentukan AMI yang berbeda dalam templat peluncuran) atau menyesuaikan kriteria Anda untuk mengizinkan AMI ini.

   Konsol: Gunakan AWS Config aturan [ec2-instance-launched-with-allowed-ami untuk memeriksa apakah instance yang sedang berjalan atau dihentikan diluncurkan dengan AMI](https://docs.aws.amazon.com/config/latest/developerguide/ec2-instance-launched-with-allowed-ami.html) yang memenuhi kriteria AMI yang Diizinkan. Aturannya adalah **NON\_COMPLIANT** jika AMI tidak memenuhi kriteria AMI yang Diizinkan, dan **COMPLIANT** jika memang demikian. Aturan hanya beroperasi ketika pengaturan AMI yang Diizinkan disetel ke **mode **aktif** atau audit**.

   CLI: Jalankan perintah [describe-instance-image-metadata](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-image-metadata.html) dan filter respons untuk mengidentifikasi instance apa pun yang diluncurkan dengan AMI yang tidak memenuhi kriteria yang ditentukan.

   Untuk instruksi konsol dan CLI, lihat. [Temukan instance yang diluncurkan dari AMI yang tidak diizinkan](manage-settings-allowed-amis.md#identify-instances-with-allowed-AMIs)

1. **Aktifkan AMI yang Diizinkan**

   Setelah Anda mengonfirmasi bahwa kriteria tidak akan mempengaruhi proses bisnis yang diharapkan, aktifkan AMI yang Diizinkan.

1. **Monitor peluncuran instance**

   Terus memantau peluncuran instans dari AMI di seluruh aplikasi dan layanan AWS terkelola yang Anda gunakan, seperti Amazon EMR, Amazon ECR, Amazon EKS, dan. AWS Elastic Beanstalk Periksa masalah yang tidak terduga dan buat penyesuaian yang diperlukan untuk kriteria AMI yang Diizinkan.

1. **Pilot AMI baru**

   Untuk menguji AMI pihak ketiga yang tidak mematuhi pengaturan AMI yang Diizinkan saat ini, AWS rekomendasikan pendekatan berikut:
   + Gunakan yang terpisah Akun AWS: Buat akun tanpa akses ke sumber daya penting bisnis Anda. Pastikan pengaturan AMI yang Diizinkan tidak diaktifkan di akun ini, atau AMI yang ingin Anda uji diizinkan secara eksplisit, sehingga Anda dapat mengujinya. 
   + Uji di tempat lain Wilayah AWS: Gunakan Wilayah tempat AMI pihak ketiga tersedia, tetapi di mana Anda belum mengaktifkan pengaturan AMI yang Diizinkan. 

   Pendekatan ini membantu memastikan sumber daya penting bisnis Anda tetap aman saat Anda menguji AMI baru.

## Izin IAM yang diperlukan
<a name="iam-permissions-for-allowed-amis"></a>

Untuk menggunakan fitur AMI yang Diizinkan, Anda memerlukan izin IAM berikut:
+ `GetAllowedImagesSettings`
+ `EnableAllowedImagesSettings`
+ `DisableAllowedImagesSettings`
+ `ReplaceImageCriteriaInAllowedImagesSettings`