

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

# Keamanan dalam Amazon EC2
<a name="ec2-security"></a>

Keamanan cloud di AWS adalah prioritas tertinggi. Sebagai AWS pelanggan, Anda mendapat manfaat dari pusat data dan arsitektur jaringan yang dibangun untuk memenuhi persyaratan organisasi yang paling sensitif terhadap keamanan.

Keamanan adalah tanggung jawab bersama antara Anda AWS dan Anda. [Model tanggung jawab bersama](https://aws.amazon.com/compliance/shared-responsibility-model/) menjelaskan hal ini sebagai keamanan cloud dan keamanan dalam cloud:
+ **Keamanan cloud** — AWS bertanggung jawab untuk melindungi infrastruktur yang menjalankan AWS layanan di AWS Cloud. AWS juga memberi Anda layanan yang dapat Anda gunakan dengan aman. Auditor pihak ketiga secara teratur menguji dan memverifikasi efektivitas keamanan kami sebagai bagian dari [Program AWS Kepatuhan Program AWS Kepatuhan](https://aws.amazon.com/compliance/programs/) . Untuk mempelajari tentang program kepatuhan yang berlaku untuk Amazon EC2, lihat [AWS Layanan dalam Lingkup berdasarkan AWS Layanan Program Kepatuhan dalam Lingkup oleh Program](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Keamanan dalam cloud** – Tanggung jawab Anda meliputi area-area berikut:
  + Mengontrol akses jaringan pada instans Anda, misalnya, dengan mengonfigurasi VPC dan grup keamanan Anda. Untuk informasi selengkapnya, lihat [Mengontrol lalu lintas jaringan](infrastructure-security.md#control-network-traffic).
  + Mengelola kredensial yang digunakan untuk terhubung ke instans Anda.
  + Mengelola sistem operasi tamu dan perangkat lunak yang diterapkan ke sistem operasi tamu, termasuk pembaruan dan patch keamanan. Untuk informasi selengkapnya, lihat [Manajemen pembaruan untuk instans Amazon EC2](update-management.md).
  + Mengonfigurasi IAM role yang dilampirkan pada instans dan izin yang dikaitkan peran tersebut. Untuk informasi selengkapnya, lihat [IAM role untuk Amazon EC2](iam-roles-for-amazon-ec2.md).

Dokumentasi ini akan membantu Anda dalam memahami cara menerapkan model tanggung jawab bersama saat Anda menggunakan Amazon EC2. Dokumentasi tersebut juga menunjukkan kepada Anda cara mengonfigurasi Amazon EC2 untuk memenuhi tujuan-tujuan keamanan dan kepatuhan Anda. Anda juga mempelajari cara menggunakan AWS layanan lain yang membantu Anda memantau dan mengamankan sumber daya Amazon EC2 Anda.

**Topics**
+ [Perlindungan data](data-protection.md)
+ [Keamanan infrastruktur](infrastructure-security.md)
+ [Ketahanan](disaster-recovery-resiliency.md)
+ [Validasi kepatuhan](compliance-validation.md)
+ [Manajemen identitas dan akses](security-iam.md)
+ [Manajemen pembaruan](update-management.md)
+ [Praktik terbaik untuk instans Windows](ec2-windows-security-best-practices.md)
+ [Pasangan kunci](ec2-key-pairs.md)
+ [Grup keamanan](ec2-security-groups.md)
+ [NitroTPM](nitrotpm.md)
+ [Pengesahan instans EC2](nitrotpm-attestation.md)
+ [Credential Guard untuk instance Windows](credential-guard.md)
+ [AWS PrivateLink](interface-vpc-endpoints.md)

# Perlindungan data dalam Amazon EC2
<a name="data-protection"></a>

[Model tanggung jawab AWS bersama model](https://aws.amazon.com/compliance/shared-responsibility-model/) berlaku untuk perlindungan data di Amazon Elastic Compute Cloud. Seperti yang dijelaskan dalam model AWS ini, bertanggung jawab untuk melindungi infrastruktur global yang menjalankan semua AWS Cloud. Anda bertanggung jawab untuk mempertahankan kendali atas konten yang di-host pada infrastruktur ini. Anda juga bertanggung jawab atas tugas-tugas konfigurasi dan manajemen keamanan untuk Layanan AWS yang Anda gunakan. Lihat informasi yang lebih lengkap tentang privasi data dalam [Pertanyaan Umum Privasi Data](https://aws.amazon.com/compliance/data-privacy-faq/). Lihat informasi tentang perlindungan data di Eropa di pos blog [Model Tanggung Jawab Bersama dan GDPR AWS](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di *Blog Keamanan AWS *.

Untuk tujuan perlindungan data, kami menyarankan Anda melindungi Akun AWS kredensyal dan mengatur pengguna individu dengan AWS IAM Identity Center atau AWS Identity and Access Management (IAM). Dengan cara itu, setiap pengguna hanya diberi izin yang diperlukan untuk memenuhi tanggung jawab tugasnya. Kami juga menyarankan supaya Anda mengamankan data dengan cara-cara berikut:
+ Gunakan autentikasi multi-faktor (MFA) pada setiap akun.
+ Gunakan SSL/TLS untuk berkomunikasi dengan AWS sumber daya. Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Siapkan API dan pencatatan aktivitas pengguna dengan AWS CloudTrail. Untuk informasi tentang penggunaan CloudTrail jejak untuk menangkap AWS aktivitas, lihat [Bekerja dengan CloudTrail jejak](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) di *AWS CloudTrail Panduan Pengguna*.
+ Gunakan solusi AWS enkripsi, bersama dengan semua kontrol keamanan default di dalamnya Layanan AWS.
+ Gunakan layanan keamanan terkelola tingkat lanjut seperti Amazon Macie, yang membantu menemukan dan mengamankan data sensitif yang disimpan di Amazon S3.
+ Jika Anda memerlukan modul kriptografi tervalidasi FIPS 140-3 saat mengakses AWS melalui antarmuka baris perintah atau API, gunakan titik akhir FIPS. Lihat informasi selengkapnya tentang titik akhir FIPS yang tersedia di [Standar Pemrosesan Informasi Federal (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Kami sangat merekomendasikan agar Anda tidak pernah memasukkan informasi identifikasi yang sensitif, seperti nomor rekening pelanggan Anda, ke dalam tanda atau bidang isian bebas seperti bidang **Nama**. Ini termasuk saat Anda bekerja dengan Amazon EC2 atau lainnya Layanan AWS menggunakan konsol, API AWS CLI, atau. AWS SDKs Data apa pun yang Anda masukkan ke dalam tanda atau bidang isian bebas yang digunakan untuk nama dapat digunakan untuk log penagihan atau log diagnostik. Saat Anda memberikan URL ke server eksternal, kami sangat menganjurkan supaya Anda tidak menyertakan informasi kredensial di dalam URL untuk memvalidasi permintaan Anda ke server itu.

**Topics**
+ [Keamanan data Amazon EBS](#ebs-data-security)
+ [Enkripsi saat tidak aktif](#encryption-rest)
+ [Enkripsi saat bergerak](#encryption-transit)

## Keamanan data Amazon EBS
<a name="ebs-data-security"></a>

Volume Amazon EBS disajikan kepada Anda sebagai perangkat blok mentah yang tidak terformat. Perangkat-perangkat ini adalah perangkat logis yang dibuat pada infrastruktur EBS dan layanan Amazon EBS akan memastikan bahwa perangkat-perangkat tersebut secara logis kosong (yakni bahwa, blok mentah tersebut sudah dikosongkan atau mengandung data pseudorandom secara kriptografis) sebelum digunakan atau digunakan kembali oleh pelanggan.

Jika Anda memiliki prosedur yang mengharuskan semua data dihapus menggunakan metode tertentu, baik setelah atau sebelum digunakan (atau keduanya), seperti yang dirinci dalam **DoD 5220.22-M** (Manual Operasi Program Keamanan Industri Nasional) atau **NIST 800-88**(Pedoman untuk Sanitisasi Media), Anda memiliki kemampuan untuk melakukannya di Amazon EBS. Aktivitas tingkat blok tersebut akan tercermin ke media penyimpanan yang mendasarinya dalam layanan Amazon EBS tersebut.

## Enkripsi saat tidak aktif
<a name="encryption-rest"></a>

**Volume EBS**  
Enkripsi Amazon EBS adalah solusi enkripsi untuk volume dan snapshot EBS Anda. Ia menggunakan AWS KMS keys. Untuk informasi selengkapnya, lihat [enkripsi Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) di *Panduan Pengguna Amazon EBS*.

[Instans Windows] Anda juga dapat menggunakan izin Microsoft EFS dan NTFS untuk enkripsi tingkat folder dan file.

**Volume penyimpanan instans**  
Data pada volume penyimpanan NVMe instance dienkripsi menggunakan cipher XTS-AES-256, diimplementasikan pada modul perangkat keras pada instance. Kunci yang digunakan untuk mengenkripsi data yang ditulis ke perangkat NVMe penyimpanan yang terpasang secara lokal adalah per pelanggan, dan per volume. Kunci yang dihasilkan oleh, dan yang hanya berada di dalam, modul perangkat keras, yang tidak dapat diakses personil AWS . Kunci enkripsi tersebut akan dihancurkan saat instans dihentikan atau diakhiri dan tidak dapat dipulihkan. Anda tidak akan dapat menonaktifkan enkripsi ini dan Anda juga tidak dapat menyediakan kunci enkripsi Anda sendiri.

Data pada volume penyimpanan instans HDD pada instans H1, D3, dan D3en dienkripsi menggunakan XTS-AES-256 dan kunci sekali pakai.

Saat Anda menghentikan, melakukan hibernasi, atau mengakhiri instans, setiap blok penyimpanan dalam volume penyimpanan instans akan diatur ulang. Oleh karena itu, data Anda tidak dapat diakses melalui penyimpanan instans dari instans yang lain.

**Memori**

Enkripsi memori diaktifkan pada instans-instans berikut:
+ Instans dengan AWS Graviton2 atau prosesor Graviton yang lebih baru mendukung AWS enkripsi memori yang selalu aktif. Kunci enkripsi yang secara aman dihasilkan dalam sistem host, tidak meninggalkan sistem host, dan akan hancur ketika host tersebut di-reboot atau dimatikan. Untuk informasi lainnya, lihat Prosesor [AWS Graviton](https://aws.amazon.com/ec2/graviton/).
+ Instans dengan prosesor Intel Xeon Scalable generasi ke-3 (Ice Lake), seperti instans M6i, dan prosesor Intel Xeon Scalable generasi ke-4 (Sapphire Rapids), seperti instans M7i. Prosesor-prosesor ini mendukung enkripsi memori yang selalu aktif menggunakan Intel Total Memory Encryption (TME).
+ Instans dengan prosesor AMD EPYC generasi ke-3 (Milan), seperti instans M6a, dan prosesor AMD EPYC generasi ke-4 (Genoa), seperti instans M7a. Prosesor ini mendukung enkripsi memori yang selalu aktif menggunakan AMD Secure Memory Encryption (SME).
+ AMD Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP) didukung untuk beberapa jenis instans berbasis AMD. Untuk informasi selengkapnya, lihat [Temukan jenis EC2 instans yang mendukung AMD SEV-SNP](snp-find-instance-types.md).

## Enkripsi saat bergerak
<a name="encryption-transit"></a>

**Enkripsi pada lapisan fisik**  
Semua data yang mengalir di seluruh AWS Wilayah melalui jaringan AWS global secara otomatis dienkripsi pada lapisan fisik sebelum meninggalkan fasilitas yang AWS aman. Semua lalu lintas di antaranya AZs dienkripsi. Lapisan-lapisan enkripsi tambahan, termasuk yang tercantum dalam bagian ini, dapat memberikan perlindungan tambahan.

**Enkripsi disediakan oleh peering VPC Amazon dan pengintipan lintas wilayah Gateway Transit**  
Semua lalu lintas lintas wilayah yang menggunakan peering VPC Amazon dan peering Transit Gateway secara otomatis dienkripsi massal saat keluar dari Wilayah. Lapisan enkripsi tambahan secara otomatis disediakan di lapisan fisik untuk semua lalu lintas sebelum meninggalkan fasilitas yang AWS aman, seperti yang disebutkan sebelumnya di bagian ini.

**Enkripsi antar instans**  
AWS menyediakan konektivitas aman dan pribadi antara instans EC2 dari semua jenis. Selain itu, beberapa tipe instans menggunakan kemampuan offload dari perangkat keras Nitro System yang mendasarinya untuk secara otomatis mengenkripsi lalu lintas dalam transit antar instans. Enkripsi ini menggunakan algoritma Authenticated Encryption with Associated Data (AEAD), dengan enkripsi 256-bit. Tidak ada dampak terhadap performa jaringan. Untuk mendukung enkripsi lalu lintas dalam transit tambahan ini antara instans, persyaratan-persyaratan berikut harus dipenuhi:
+ Instans-instans tersebut menggunakan tipe instans berikut:
  + **Tujuan umum**: M5dn, M5n, M5Zn, M6a, M6i, M6iD, M6idn, M6in, M7a, M7g, M7gd, M7i, M7i-flex, M8a, M8AZN, M8g, M8GB, M8gD, M8GN, M8i, M8id, M8i-Flex, Mac-M4, Mac-M4Pro
  + **Komputasi dioptimalkan:** C5n, C6a, C6GN, C6i, C6id, C6in, C7a, C7g, C7gd, C7GN, C7i, C7i-flex, C8a, C8g, C8gD, C8gD, C8gN, C8i, C8iB, C8iB, C8id, C8in, C8in Fleksibel
  + **Memori yang dioptimalkan:** R5dn, R5n, R6a, R6i, R6iD, R6iDn, R6in, R7a, R7g, R7gd, R7i, R7iZ, R8a, R8g, R8gd, R8gD, R8i, R8iD, R8i-flex, U-3tb1, U-6TB1, U-9TB1, U-12TB1, U-18tb1, U-24tb1, U7I-6TB, U7i-8tb, U7i-12tb, U7in-16TB, U7in-24TB, U7in-32TB, U7inh-32TB, X2iEDN, X2iEZN, X8g, X8AEDZ, X8i
  + **Penyimpanan dioptimalkan:** D3, D3en, i3en, i4G, i4i, i7i, i7ie, i8g, i8ge, iM4GN, Is4gen
  + **Komputasi yang dipercepat:** DL1, DL2q, F2, G4ad, G4dn, G5, G6, G6e, G6f, Gr6, Gr6f, G7e, Inf1, Inf2, P3dn, P4d, P4de, P5, P5e, P5en, P6-B200, P6-B300, P6e-, Trn1, Trn1N, Trn2, Trn2u, GB200 VT1
  + **Komputasi kinerja tinggi:** HPC6a, HPC6id, HPC7a, hPC7g, HPC8a
+ Instans-instans tersebut berada dalam Wilayah yang sama.
+ Instans berada dalam VPC atau VPCs peered yang sama, dan lalu lintas tidak melewati perangkat atau layanan jaringan virtual, seperti penyeimbang beban atau gateway transit.

Lapisan enkripsi tambahan secara otomatis disediakan di lapisan fisik untuk semua lalu lintas sebelum meninggalkan fasilitas yang AWS aman, seperti yang disebutkan sebelumnya di bagian ini.

**Untuk melihat jenis instance yang mengenkripsi lalu lintas dalam transit antar instance menggunakan AWS CLI**  
Gunakan perintah perintah [ describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) berikut ini.

```
aws ec2 describe-instance-types \
    --filters Name=network-info.encryption-in-transit-supported,Values=true \
    --query "InstanceTypes[*].[InstanceType]" \
    --output text | sort
```

**Enkripsi ke dan dari AWS Outposts**  
Outpost membuat koneksi jaringan khusus yang disebut *tautan layanan* ke Wilayah AWS asalnya dan, secara opsional, konektivitas pribadi ke subnet VPC yang Anda tentukan. Semua lalu lintas yang melalui koneksi tersebut sudah sepenuhnya dienkripsi. Untuk informasi selengkapnya, lihat [Konektivitas melalui tautan layanan](https://docs.aws.amazon.com/outposts/latest/userguide/region-connectivity.html#service-links) dan [Enkripsi dalam transit](https://docs.aws.amazon.com/outposts/latest/userguide/data-protection.html#encryption-transit) di *Panduan Pengguna AWS Outposts *.

**Enkripsi akses jarak jauh**  
Protokol SSH dan RDP menyediakan saluran komunikasi yang aman untuk akses jarak jauh ke instans Anda, baik secara langsung maupun melalui EC2 Instance Connect. Akses jarak jauh ke instans Anda menggunakan AWS Systems Manager Session Manager atau Run Command dienkripsi menggunakan TLS 1.2, dan permintaan untuk membuat koneksi ditandatangani menggunakan [SiGv4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html), dan diautentikasi serta diotorisasi oleh. [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)

Anda bertanggung jawab untuk menggunakan protokol enkripsi, seperti Keamanan Lapisan Pengangkutan (TLS), untuk mengenkripsi data bergerak sensitif Anda yang bergerak antara klien dan instans Amazon EC2 Anda.

(Instans Windows) Pastikan untuk hanya mengizinkan koneksi terenkripsi antara instans EC2 dan titik akhir AWS API atau layanan jaringan jarak jauh sensitif lainnya. Anda dapat menerapkan hal ini melalui grup keamanan ke luar atau aturan [Windows Firewall](https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/).

# Keamanan infrastruktur di Amazon EC2
<a name="infrastructure-security"></a>

Sebagai layanan terkelola, Amazon Elastic Compute Cloud dilindungi oleh keamanan jaringan AWS global. Untuk informasi tentang layanan AWS keamanan dan cara AWS melindungi infrastruktur, lihat [Keamanan AWS Cloud](https://aws.amazon.com/security/). Untuk mendesain AWS lingkungan Anda menggunakan praktik terbaik untuk keamanan infrastruktur, lihat [Perlindungan Infrastruktur dalam Kerangka Kerja](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) yang * AWS Diarsiteksikan dengan Baik Pilar Keamanan*.

Anda menggunakan panggilan API yang AWS dipublikasikan untuk mengakses Amazon EC2 melalui jaringan. Klien harus mendukung hal-hal berikut:
+ Keamanan Lapisan Pengangkutan (TLS). Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Sandi cocok dengan sistem kerahasiaan maju sempurna (perfect forward secrecy, PFS) seperti DHE (Ephemeral Diffie-Hellman) atau ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Sebagian besar sistem modern seperti Java 7 dan versi lebih baru mendukung mode-mode ini.

Untuk informasi selengkapnya, lihat [Perlindungan Infrastruktur](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) di *Pilar Keamanan — AWS Well-Architected* Framework.

## Isolasi jaringan
<a name="network-isolation"></a>

Virtual Private Cloud (VPC) adalah jaringan virtual di area Anda sendiri yang terisolasi secara logis di AWS Cloud. Gunakan terpisah VPCs untuk mengisolasi infrastruktur berdasarkan beban kerja atau entitas organisasi.

 subnet adalah serangkaian alamat IP di VPC. Saat Anda meluncurkan instans, Anda meluncurkan instans tersebut ke dalam subnet dalam VPC Anda. Gunakan subnet untuk melakukan isolasi terhadap jenjang-jenjang aplikasi Anda (misalnya web, aplikasi, dan basis data) dalam satu VPC. Gunakan subnet privat untuk instans Anda jika instan tersebut tidak dapat diakses secara langsung dari internet.

Untuk memanggil API Amazon EC2 dari VPC menggunakan alamat IP privat, gunakan AWS PrivateLink. Untuk informasi selengkapnya, lihat [Mengakses Amazon EC2 menggunakan titik akhir VPC antarmuka](interface-vpc-endpoints.md).

## Isolasi pada host fisik
<a name="physical-isolation"></a>

Instans-instans EC2 yang beragam pada host fisik yang sama diisolasi satu sama lain seolah-olah mereka berada dalam host fisik terpisah. Hypervisor mengisolasi CPU dan memori, dan instans disediakan dalam bentuk disk virtual, bukan berupa akses ke perangkat disk mentah.

Saat Anda menghentikan atau mengakhiri instans, memori yang dialokasikan untuk instans itu dibersihkan (diatur ke nol) oleh hypervisor sebelum dialokasikan ke instans baru, dan setiap blok penyimpanan akan diatur ulang. Hal ini untuk memastikan agar data Anda tidak terekspos secara tidak sengaja ke instans lain.

Alamat MAC jaringan secara dinamis ditetapkan ke instance oleh infrastruktur AWS jaringan. Alamat IP dapat ditetapkan secara dinamis ke instans oleh infrastruktur jaringan AWS , atau ditetapkan oleh administrator EC2 melalui permintaan API terautentikasi. AWS Jaringan memungkinkan instance untuk mengirim lalu lintas hanya dari MAC dan alamat IP yang diberikan kepada mereka. Jika tidak, lalu lintas akan menurun.

Secara default, instans tidak dapat menerima lalu lintas yang tidak secara khusus ditujukan padanya. Jika Anda perlu menjalankan terjemahan alamat jaringan (NAT), perutean, atau layanan firewall pada instance Anda, Anda dapat menonaktifkan source/destination pemeriksaan antarmuka jaringan.

## Mengontrol lalu lintas jaringan
<a name="control-network-traffic"></a>

Pertimbangkan opsi-opsi berikut untuk mengontrol lalu lintas jaringan pada instans EC2 Anda:
+ Batasi akses ke instans Anda menggunakan [grup keamanan](ec2-security-groups.md). Konfigurasikan aturan yang memungkinkan lalu lintas jaringan minimum yang diperlukan. Misalnya, Anda dapat mengizinkan lalu lintas hanya dari rentang alamat untuk jaringan perusahaan Anda atau hanya untuk protokol tertentu, seperti HTTPS. Untuk instance Windows, izinkan lalu lintas manajemen Windows dan koneksi keluar minimal.
+ Manfaatkan grup keamanan sebagai mekanisme utama untuk mengontrol akses jaringan ke instans Amazon EC2. Bila perlu, gunakan jaringan ACLs dengan hemat untuk menyediakan kontrol jaringan butir kasar tanpa kewarganegaraan. Grup keamanan lebih fleksibel daripada jaringan ACLs karena kemampuan mereka untuk melakukan penyaringan paket stateful dan membuat aturan yang merujuk pada kelompok keamanan lainnya. Namun, jaringan ACLs dapat efektif sebagai kontrol sekunder untuk menolak subset tertentu dari lalu lintas atau menyediakan rel penjaga subnet tingkat tinggi. Juga, karena jaringan ACLs berlaku untuk seluruh subnet, mereka dapat digunakan seolah-olah sebuah instance pernah diluncurkan defense-in-depth secara tidak sengaja tanpa grup keamanan yang benar.
+ [Instans Windows] Kelola pengaturan Windows Firewall secara terpusat dengan Objek Kebijakan Grup (GPO) untuk lebih meningkatkan kontrol jaringan. Para pelanggan sering menggunakan Windows Firewall untuk mendapatkan visibilitas ke dalam lalu lintas jaringan lebih jauh dan untuk melengkapi filter grup keamanan, membuat aturan-aturan lanjutan untuk memblokir aplikasi tertentu agar tidak mengakses jaringan atau untuk memfilter lalu lintas dari alamat IP subset. Sebagai contoh, Windows Firewall dapat membatasi akses ke alamat IP layanan metadata EC2 untuk pengguna atau aplikasi tertentu. Atau, layanan yang dapat diakses publik dapat menggunakan grup keamanan untuk membatasi lalu lintas ke port tertentu dan menggunakan Windows Firewall untuk memelihara daftar alamat IP yang diblokir secara eksplisit.
+ Gunakan subnet privat untuk instans Anda jika instan tersebut tidak dapat diakses secara langsung dari internet. Gunakan host bastion atau gateway NAT untuk akses internet dari instans di subnet privat.
+ [Instans Windows] Gunakan protokol administrasi yang aman seperti enkapsulasi RDP. SSL/TLS. The Remote Desktop Gateway Quick Start provides best practices for deploying remote desktop gateway, including configuring RDP to use SSL/TLS
+ [Instans Windows] Gunakan Active Directory atau Directory Service untuk mengontrol secara ketat dan terpusat dan memantau akses pengguna dan grup interaktif ke instance Windows, dan hindari izin pengguna lokal. Selain itu, hindari penggunaan Domain Administrator dan buatlah lebih banyak akun berbasis peran yang terperinci dan spesifik untuk aplikasi. Just Enough Administration (JEA) mengizinkan perubahan-perubahan pada instans Windows dikelola tanpa akses interaktif atau administrator. Selain itu, JEA memungkinkan organisasi untuk mengunci akses administratif pada subset perintah Windows PowerShell yang diperlukan untuk administrasi instans. Untuk informasi tambahan, lihat bagian "Mengelola Akses Tingkat OS pada Amazon EC2" dalam laporan resmi [Praktik Terbaik Keamanan AWS](https://d1.awsstatic.com/whitepapers/Security/AWS_Security_Best_Practices.pdf).
+ [Instans Windows] Administrator Sistem harus menggunakan akun Windows dengan akses terbatas untuk melakukan aktivitas sehari-hari, dan hanya meningkatkan akses bila diperlukan untuk melakukan perubahan konfigurasi tertentu. Selain itu, akses instans Windows secara langsung hanya bila benar-benar diperlukan. Sebaliknya, manfaatkan sistem manajemen konfigurasi pusat seperti EC2 Run Command, Systems Center Configuration Manager (SCCM), Windows PowerShell DSC, atau Amazon EC2 Systems Manager (SSM) untuk mendorong perubahan pada peladen Windows.
+ Lakukan konfigurasi pada tabel rute subnet Amazon VPC dengan rute jaringan syarat minimal. Misalnya, tempatkan hanya instans Amazon EC2 yang memerlukan akses Internet langsung ke subnet dengan rute ke gateway internet, dan tempatkan hanya instans Amazon EC2 yang memerlukan akses langsung ke jaringan internal ke subnet dengan rute ke gateway pribadi virtual.
+ Pertimbangkan untuk menggunakan grup keamanan tambahan atau antarmuka jaringan untuk mengontrol dan meng-audit lalu lintas pengelolaan instans Amazon EC2 secara terpisah dari lalu lintas aplikasi reguler. Pendekatan ini memungkinkan pelanggan untuk melaksanakan kebijakan IAM khusus untuk kontrol pengubahan, mempermudahnya untuk meng-audit perubahan pada aturan grup keamanan atau skrip verifikasi aturan otomatis. Menggunakan beberapa antarmuka jaringan juga menyediakan opsi tambahan untuk mengontrol lalu lintas jaringan, termasuk kemampuan untuk membuat kebijakan perutean berbasis host atau memanfaatkan aturan perutean subnet VPC yang berbeda berdasarkan subnet yang ditetapkan dari antarmuka jaringan.
+ Gunakan AWS Virtual Private Network atau Direct Connect untuk membuat koneksi pribadi dari jaringan jarak jauh Anda ke jaringan Anda VPCs. Untuk informasi selengkapnya, lihat Opsi [Konektivitas Network-to-Amazon VPC](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html).
+ Gunakan [Log Aliran VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) untuk memantau lalu lintas yang menjangkau instans Anda.
+ Gunakan [Perlindungan GuardDuty Malware](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html) untuk mengidentifikasi perilaku mencurigakan yang menunjukkan perangkat lunak berbahaya pada instans Anda yang dapat membahayakan beban kerja Anda, menggunakan kembali sumber daya untuk penggunaan berbahaya, dan mendapatkan akses tidak sah ke data Anda.
+ Gunakan [GuardDuty Runtime Monitoring](https://docs.aws.amazon.com/guardduty/latest/ug/runtime-monitoring.html) untuk mengidentifikasi dan merespons potensi ancaman terhadap instans Anda. Untuk informasi selengkapnya, lihat [Cara kerja Runtime Monitoring dengan instans Amazon EC2](https://docs.aws.amazon.com/guardduty/latest/ug/how-runtime-monitoring-works-ec2.html).
+ Gunakan [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/), [Reachability Analyzer](https://docs.aws.amazon.com/vpc/latest/reachability/), [atau Network Access Analyzer untuk memeriksa aksesibilitas jaringan](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/) yang tidak diinginkan dari instans Anda.
+ Gunakan [EC2 Instance Connect](connect-linux-inst-eic.md) untuk terhubung ke instans Anda menggunakan Secure Shell (SSH) tanpa perlu berbagi dan mengelola kunci SSH.
+ Gunakan [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) untuk mengakses instans Anda dari jarak jauh alih-alih membuka port SSH atau RDP masuk dan mengelola pasangan kunci.
+ Gunakan [AWS Systems Manager Run Command](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html) untuk mengotomatiskan tugas administratif umum alih-alih menghubungkan ke instance Anda.
+ [Instans Windows] Banyak peran OS Windows dan aplikasi bisnis Microsoft juga menyediakan fungsionalitas yang ditingkatkan seperti pembatasan Rentang Alamat IP dalam IIS, kebijakan TCP/IP penyaringan di Microsoft SQL Server, dan kebijakan filter koneksi di Microsoft Exchange. Fungsionalitas pembatasan jaringan dalam lapisan aplikasi dapat menyediakan lapisan pertahanan tambahan untuk server aplikasi bisnis penting.

Amazon VPC mendukung kontrol keamanan jaringan tambahan, seperti gateway, server proxy, dan opsi pemantauan jaringan. Untuk informasi selengkapnya, lihat [Mengontrol lalu lintas jaringan](https://docs.aws.amazon.com/vpc/latest/userguide/infrastructure-security.html#control-network-traffic) di *Panduan Pengguna Amazon VPC*.

# Ketahanan dalam Amazon EC2
<a name="disaster-recovery-resiliency"></a>

Infrastruktur AWS global dibangun di sekitar AWS Wilayah dan Zona Ketersediaan. Wilayah memberikan beberapa Zona Ketersediaan yang terpisah dan terisolasi secara fisik, yang terkoneksi melalui jaringan latensi rendah, throughput tinggi, dan sangat redundan. Dengan Zona Ketersediaan, Anda dapat merancang serta mengoperasikan aplikasi dan basis data yang secara otomatis melakukan fail over di antara zona tanpa gangguan. Zona Ketersediaan memiliki ketersediaan dan toleransi kesalahan yang lebih baik, dan dapat diskalakan dibandingkan infrastruktur pusat data tunggal atau multi tradisional.

Jika Anda harus melakukan replikasi data atau aplikasi Anda pada jarak geografis yang lebih luas, gunakan Zona Lokal AWS . Zona AWS Lokal adalah perpanjangan dari AWS Wilayah dalam kedekatan geografis dengan pengguna Anda. Zona Lokal memiliki koneksinya sendiri ke internet dan mendukung Direct Connect. Seperti semua AWS Wilayah, AWS Local Zones benar-benar terisolasi dari AWS Zona lain.

Jika Anda perlu mereplikasi data atau aplikasi Anda di Zona AWS Lokal, AWS sarankan Anda menggunakan salah satu zona berikut sebagai zona failover:
+ Zona Lokal Lainnya
+  Zona Ketersediaan dalam Wilayah yang bukan merupakan zona induk. Anda dapat menggunakan [describe-availability-zones](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-availability-zones.html)perintah untuk melihat zona induk.

Untuk informasi selengkapnya tentang AWS Wilayah dan Availability Zone, lihat [Infrastruktur AWS Global](https://aws.amazon.com/about-aws/global-infrastructure/).

Selain infrastruktur AWS global, Amazon EC2 menawarkan fitur-fitur berikut untuk mendukung ketahanan data Anda:
+ Menyalin AMIs lintas Wilayah
+ Menyalin snapshot EBS di seluruh Wilayah
+ Mengotomatiskan EBS yang didukung AMIs menggunakan Amazon Data Lifecycle Manager
+ Menerapkan otomatisasi snapshot EBS menggunakan Amazon Data Lifecycle Manager
+ Menjaga kondisi dan ketersediaan armada Anda menggunakan Amazon EC2 Auto Scaling
+ Mendistribusikan lalu lintas masuk pada berbagai instans dalam satu Zona Ketersediaan atau beberapa Zona Ketersediaan menggunakan Elastic Load Balancing

# Validasi kepatuhan untuk Amazon EC2
<a name="compliance-validation"></a>

Untuk mempelajari apakah an Layanan AWS berada dalam lingkup program kepatuhan tertentu, lihat [Layanan AWS di Lingkup oleh Program Kepatuhan Layanan AWS](https://aws.amazon.com/compliance/services-in-scope/) dan pilih program kepatuhan yang Anda minati. Untuk informasi umum, lihat [Program AWS Kepatuhan Program AWS](https://aws.amazon.com/compliance/programs/) .

Anda dapat mengunduh laporan audit pihak ketiga menggunakan AWS Artifact. Untuk informasi selengkapnya, lihat [Mengunduh Laporan di AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

Tanggung jawab kepatuhan Anda saat menggunakan Layanan AWS ditentukan oleh sensitivitas data Anda, tujuan kepatuhan perusahaan Anda, dan hukum dan peraturan yang berlaku. Untuk informasi selengkapnya tentang tanggung jawab kepatuhan Anda saat menggunakan Layanan AWS, lihat [Dokumentasi AWS Keamanan](https://docs.aws.amazon.com/security/).

# Manajemen identitas dan akses untuk Amazon EC2
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) adalah Layanan AWS yang membantu administrator mengontrol akses ke AWS sumber daya dengan aman. Administrator IAM mengontrol siapa yang dapat *diautentikasi* (masuk) dan *diotorisasi* (memiliki izin) untuk menggunakan sumber daya Amazon EC2. IAM adalah Layanan AWS yang dapat Anda gunakan tanpa biaya tambahan.

Kredensi keamanan Anda mengidentifikasi Anda ke layanan AWS dan memberi Anda akses ke AWS sumber daya, seperti sumber daya Amazon EC2 Anda. Anda dapat menggunakan fitur Amazon EC2 dan IAM untuk memungkinkan pengguna, layanan, dan aplikasi lain menggunakan sumber daya Amazon EC2 Anda tanpa membagikan kredensil keamanan Anda. Anda dapat menggunakan IAM untuk mengontrol cara pengguna lain menggunakan sumber daya di Anda Akun AWS, dan Anda dapat menggunakan grup keamanan untuk mengontrol akses ke instans Amazon EC2 Anda. Anda dapat memilih untuk mengizinkan penggunaan penuh atau terbatas sumber daya Amazon EC2 Anda.

Jika Anda seorang pengembang, Anda dapat menggunakan peran IAM untuk mengelola kredenal keamanan yang dibutuhkan oleh aplikasi yang Anda jalankan pada instans EC2 Anda. Setelah Anda melampirkan peran IAM ke instans Anda, aplikasi yang berjalan pada instance dapat mengambil kredensil dari Layanan Metadata Instance (IMDS).

Untuk praktik terbaik untuk mengamankan AWS sumber daya Anda menggunakan IAM, lihat [Praktik terbaik keamanan di IAM di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) Pengguna *IAM*.

**Topics**
+ [Kebijakan berbasis identitas untuk Amazon EC2](iam-policies-for-amazon-ec2.md)
+ [Contoh kebijakan untuk mengontrol akses API Amazon EC2](ExamplePolicies_EC2.md)
+ [Contoh kebijakan untuk mengontrol akses ke konsol Amazon EC2](iam-policies-ec2-console.md)
+ [AWS kebijakan terkelola untuk Amazon EC2](security-iam-awsmanpol.md)
+ [IAM role untuk Amazon EC2](iam-roles-for-amazon-ec2.md)

# Kebijakan berbasis identitas untuk Amazon EC2
<a name="iam-policies-for-amazon-ec2"></a>

Secara default, pengguna tidak memiliki izin untuk membuat atau memodifikasi sumber daya Amazon EC2, atau melakukan tugas menggunakan API Amazon EC2, konsol Amazon EC2, atau CLI. Untuk memungkinkan pengguna membuat atau memodifikasi sumber daya dan melakukan tugas, Anda harus membuat kebijakan IAM yang memberikan izin kepada pengguna untuk menggunakan sumber daya serta tindakan API tertentu yang akan mereka perlukan, lalu melampirkan kebijakan tersebut ke pengguna, grup, atau peran IAM yang memerlukan izin tersebut.

Saat Anda melampirkan kebijakan ke pengguna atau grup pengguna atau peran, kebijakan tersebut akan mengizinkan atau menolak izin pengguna untuk melakukan tugas tertentu pada sumber daya tertentu. Untuk informasi umum selengkapnya tentang kebijakan IAM, lihat [Kebijakan dan izin di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) di *Panduan Pengguna IAM*. Untuk informasi selengkapnya tentang mengelola dan membuat kebijakan IAM, lihat [Mengelola kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html).

 kebijakan IAM harus mengizinkan atau menolak izin untuk menggunakan satu atau beberapa tindakan Amazon EC2. Kebijakan tersebut juga harus menentukan sumber daya yang dapat digunakan bersama dengan tindakan tersebut, yang dapat berupa semua sumber daya, atau dalam beberapa kasus, sumber daya tertentu. Kebijakan ini juga dapat mencakup syarat-syarat yang Anda terapkan pada sumber daya.

Untuk memulai, Anda dapat memeriksa apakah kebijakan AWS terkelola untuk Amazon EC2 memenuhi kebutuhan Anda. Jika tidak, Anda dapat membuat kebijakan khusus Anda sendiri. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola untuk Amazon EC2](security-iam-awsmanpol.md).

**Topics**
+ [Sintaksis kebijakan](#policy-syntax)
+ [Tindakan-tindakan untuk Amazon EC2](#UsingWithEC2_Actions)
+ [Izin tingkat sumber daya yang mendukung tindakan API Amazon EC2](#ec2-supported-iam-actions-resources)
+ [Amazon Resource Name (ARN) untuk Amazon EC2](#EC2_ARN_Format)
+ [Kunci syarat untuk Amazon EC2](#amazon-ec2-keys)
+ [Kontrol akses menggunakan akses berbasis atribut](#control-access-with-tags)
+ [Berikan izin kepada pengguna, grup, dan peran](#granting-iam-permissions)
+ [Memeriksa apakah pengguna memiliki izin yang diperlukan](#check-required-permissions)

## Sintaksis kebijakan
<a name="policy-syntax"></a>

 kebijakan IAM adalah dokumen JSON yang terdiri dari satu atau beberapa pernyataan. Masing-masing pernyataan memiliki struktur sebagai berikut.

```
{
  "Statement":[{
    "Effect":"effect",
    "Action":"action",
    "Resource":"arn",
    "Condition":{
      "condition":{
        "key":"value"
        }
      }
    }
  ]
}
```

Ada berbagai elemen yang membentuk pernyataan:
+ **Efek:** *Efek* bisa berupa `Allow` atau `Deny`. Secara default, pengguna tidak memiliki izin untuk menggunakan sumber daya dan tindakan API, sehingga semua permintaan akan ditolak. izin eksplisit akan menggantikan izin default. penolakan eksplisit akan menggantikan izin apa pun.
+ **Tindakan**: *Tindakan* adalah tindakan API tertentu yang Anda izinkan atau tolak. Untuk mempelajari tentang cara menentukan *tindakan*, lihat [Tindakan-tindakan untuk Amazon EC2](#UsingWithEC2_Actions). 
+ **Sumber daya**: Sumber daya yang dipengaruhi oleh tindakan. Beberapa tindakan Amazon EC2 API memungkinkan Anda untuk menyertakan sumber daya tertentu dalam kebijakan Anda yang dapat dibuat atau dimodifikasi oleh tindakan tersebut. Anda dapat menentukan sumber daya menggunakan Amazon Resource Name (ARN) atau menggunakan wildcard (\$1) untuk menunjukkan bahwa pernyataan berlaku untuk semua sumber daya. Untuk informasi selengkapnya, lihat [Izin tingkat sumber daya yang mendukung tindakan API Amazon EC2](#ec2-supported-iam-actions-resources). 
+ **Syarat**: Syarat-syarat bersifat opsional. Syarat-syarat ini dapat digunakan untuk mengendalikan kapan kebijakan Anda berlaku. Untuk informasi selengkapnya tentang cara menentukan syarat untuk Amazon EC2, lihat [Kunci syarat untuk Amazon EC2](#amazon-ec2-keys).

Untuk informasi selengkapnya tentang persyaratan kebijakan, lihat [Referensi kebijakan IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) di *Panduan Pengguna IAM*. Misalnya pernyataan kebijakan IAM untuk Amazon EC2, lihat [Contoh kebijakan untuk mengontrol akses API Amazon EC2](ExamplePolicies_EC2.md). 

## Tindakan-tindakan untuk Amazon EC2
<a name="UsingWithEC2_Actions"></a>

Dalam pernyataan kebijakan IAM, Anda dapat menentukan tindakan API apa pun dari layanan apa pun yang mendukung IAM. Untuk Amazon EC2, gunakan awalan berikut ini dengan nama dari tindakan API: `ec2:`. Misalnya: `ec2:RunInstances` dan `ec2:CreateImage`.

Untuk menetapkan beberapa tindakan dalam satu pernyataan, pisahkan tindakan-tindakan tersebut menggunakan koma seperti berikut:

```
"Action": ["ec2:action1", "ec2:action2"]
```

Anda juga dapat menentukan beberapa tindakan menggunakan wildcard. Sebagai contoh, Anda dapat menentukan semua tindakan yang namanya dimulai dengan kata “Describe” seperti berikut ini:

```
"Action": "ec2:Describe*"
```

**catatan**  
Saat ini, tindakan API Describe\$1 Amazon EC2 tidak mendukung izin tingkat sumber daya. Untuk informasi selengkapnya tentang izin tingkat sumber daya untuk Amazon EC2, lihat [Kebijakan berbasis identitas untuk Amazon EC2](#iam-policies-for-amazon-ec2).

Untuk menentukan semua tindakan API Amazon EC2, gunakan wildcard \$1 sebagai berikut:

```
"Action": "ec2:*"
```

Untuk melihat daftar tindakan Amazon EC2, lihat [Actions defined by Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions) (Tindakan yang ditentukan oleh Amazon EC2) di *Referensi Otorisasi Layanan*.

## Izin tingkat sumber daya yang mendukung tindakan API Amazon EC2
<a name="ec2-supported-iam-actions-resources"></a>

*Izin tingkat sumber daya* mengacu pada kemampuan untuk menentukan sumber daya mana yang boleh digunakan oleh para pengguna untuk melakukan tindakan. Amazon EC2 memiliki dukungan parsial untuk izin tingkat sumber daya. Artinya untuk tindakan Amazon EC2 tertentu, Anda dapat mengontrol kapan para pengguna diizinkan untuk menggunakan tindakan tersebut berdasarkan syarat yang harus dipenuhi, atau sumber daya tertentu yang diizinkan untuk digunakan oleh pengguna. Sebagai contoh, Anda dapat memberikan izin kepada para pengguna untuk meluncurkan instans, tetapi hanya untuk tipe instans tertentu, dan hanya menggunakan AMI tertentu.

Untuk menentukan sumber daya di pernyataan kebijakan IAM, gunakan Amazon Resource Name (ARN) sumber daya tersebut. Untuk informasi selengkapnya tentang cara menentukan nilai ARN, lihat [Amazon Resource Name (ARN) untuk Amazon EC2](#EC2_ARN_Format). Jika tindakan API tidak mendukung individu ARNs, Anda harus menggunakan wildcard (\$1) untuk menentukan bahwa semua sumber daya dapat terpengaruh oleh tindakan tersebut. 

Untuk melihat tabel yang mengidentifikasi tindakan API Amazon EC2 mana yang mendukung izin tingkat sumber daya, serta kunci kondisi ARNs dan yang dapat Anda gunakan dalam kebijakan, lihat [Tindakan, sumber daya, dan kunci kondisi](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html) untuk Amazon EC2.

Ingatlah bahwa Anda dapat menerapkan izin tingkat sumber daya berbasis tanda dalam kebijakan IAM yang Anda gunakan untuk tindakan API Amazon EC2. Hal ini akan memberikan Anda kontrol yang lebih baik atas sumber daya yang dapat dibuat, dimodifikasi, atau digunakan oleh seorang pengguna. Untuk informasi selengkapnya, lihat [Berikan izin untuk menandai sumber daya Amazon EC2 selama pembuatan](supported-iam-actions-tagging.md). 

## Amazon Resource Name (ARN) untuk Amazon EC2
<a name="EC2_ARN_Format"></a>

Setiap pernyataan kebijakan IAM berlaku untuk sumber daya yang Anda tentukan menggunakan mereka ARNs. 

 ARN memiliki sintaksis umum sebagai berikut:

```
arn:aws:[service]:[region]:[account-id]:resourceType/resourcePath
```

*layanan*  
Layanan (contohnya, `ec2`).

*wilayah*  
Wilayah untuk sumber daya (contohnya, `us-east-1`).

*account-id*  
ID AWS akun, tanpa tanda hubung (misalnya,`123456789012`).

*resourceType*  
Jenis dari sumber daya (contohnya, `instance`).

*resourcePath*  
 jalur yang mengidentifikasi sumber daya. Anda dapat menggunakan wildcard \$1 dalam jalur Anda.

Sebagai contoh, Anda dapat mengindikasikan instans tertentu (`i-1234567890abcdef0`) dalam pernyataan Anda menggunakan ARN seperti berikut ini. 

```
"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"
```

Anda dapat menentukan semua instans yang menjadi milik dari akun tertentu menggunakan wildcard \$1 seperti berikut ini.

```
"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*"
```

Anda juga dapat menentukan semua sumber daya Amazon EC2 yang menjadi milik dari akun tertentu menggunakan wildcard \$1 seperti berikut ini.

```
"Resource": "arn:aws:ec2:us-east-1:123456789012:*"
```

Untuk menentukan semua sumber daya, atau jika tindakan API tertentu tidak mendukung ARNs, gunakan wildcard \$1 dalam `Resource` elemen sebagai berikut.

```
"Resource": "*"
```

Banyak tindakan API Amazon EC2 yang melibatkan beberapa sumber daya. Misalnya, `AttachVolume` melampirkan volume Amazon EBS pada instans, sehingga pengguna harus memiliki izin untuk menggunakan volume dan instans tersebut. Untuk menentukan beberapa sumber daya dalam satu pernyataan, pisahkan ARNs dengan koma, sebagai berikut.

```
"Resource": ["arn1", "arn2"]
```

Untuk melihat daftar ARN untuk sumber daya Amazon EC2, lihat [Jenis sumber daya yang ditentukan oleh Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-resources-for-iam-policies).

## Kunci syarat untuk Amazon EC2
<a name="amazon-ec2-keys"></a>

di pernyataan kebijakan, Anda dapat secara opsional menentukan syarat yang mengontrol kapan pernyataan tersebut berlaku. Setiap syarat mengandung satu atau beberapa pasangan nilai-kunci . Kunci syarat tidak memedulikan huruf besar atau kecil. Kami telah menetapkan kunci kondisi AWS global, ditambah kunci kondisi khusus layanan tambahan.

Untuk melihat daftar kunci syarat spesifik layanan untuk Amazon EC2, lihat [Kunci syarat untuk Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-policy-keys). Amazon EC2 juga mengimplementasikan kunci kondisi AWS global. Untuk informasi selengkapnya, lihat [Informasi yang tersedia dalam semua permintaan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infoallreqs) dalam *Panduan Pengguna IAM*.

Semua tindakan Amazon EC2 mendukung kunci syarat `aws:RequestedRegion` dan `ec2:Region`. Untuk informasi selengkapnya, lihat [Contoh: Membatasi akses ke suatu Wilayah tertentu](ExamplePolicies_EC2.md#iam-example-region).

Untuk menggunakan kunci syarat dalam kebijakan IAM Anda, gunakan pernyataan `Condition`. Sebagai contoh, kebijakan berikut memberikan izin kepada para pengguna untuk menambah dan menghapus aturan ke dalam dan ke luar untuk grup keamanan apa pun. Kebijakan tersebut menggunakan kunci syarat `ec2:Vpc` untuk menentukan bahwa tindakan ini hanya dapat dilakukan pada grup keamanan di VPC tertentu.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
  "Statement":[{
    "Effect":"Allow",
    "Action": [
       "ec2:AuthorizeSecurityGroupIngress",
       "ec2:AuthorizeSecurityGroupEgress",
       "ec2:RevokeSecurityGroupIngress",
       "ec2:RevokeSecurityGroupEgress"],
     "Resource": "arn:aws:ec2:us-east-1:111122223333:security-group/*",
      "Condition": {
        "StringEquals": {
          "ec2:Vpc": "arn:aws:ec2:us-east-1:111122223333:vpc/vpc-11223344556677889"
        }
      }
    }
  ]
}
```

------

Jika Anda menentukan beberapa syarat, atau beberapa kunci dalam satu syarat, maka kami akan mengevaluasinya menggunakan operasi logika AND. Jika Anda menentukan satu syarat dengan beberapa nilai untuk satu kunci, kami akan mengevaluasi syarat tersebut menggunakan operasi logika OR. Agar izin bisa diberikan, semua syarat harus terpenuhi.

Anda juga dapat menggunakan placeholder saat menentukan syarat. Untuk informasi lebih lanjut, lihat [Elemen kebijakan IAM: Variabel dan tanda](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html) dalam *Panduan Pengguna IAM*.

**penting**  
Beberapa kunci syarat bersifat khusus untuk sumber daya, dan beberapa tindakan API menggunakan beberapa sumber daya. Jika Anda menyusun kebijakan dengan kunci syarat, gunakan elemen `Resource` dari pernyataan tersebut untuk menentukan sumber daya yang padanya kunci syarat tersebut berlaku. Jika tidak, kebijakan ini dapat membuat pengguna tidak bisa melakukan tindakan sama sekali, karena pemeriksaan syarat gagal sebab kunci syarat tidak berlaku terhadap sumber daya tersebut. Jika Anda tidak ingin menentukan sumber daya, atau jika Anda telah menyusun elemen `Action` dari kebijakan Anda untuk menyertakan beberapa tindakan API, maka Anda harus menggunakan jenis syarat `...IfExists` untuk memastikan bahwa kunci syarat diabaikan untuk sumber daya yang tidak menggunakannya. Untuk informasi lebih lanjut, lihat[... IfExists Ketentuan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Conditions_IfExists) dalam *Panduan Pengguna IAM*.

**Topics**
+ [Kunci syarat ec2:Attribute](#attribute-key)
+ [Kunci syarat ec2:ResourceID](#imageId-key)
+ [Kunci syarat ec2:SourceInstanceARN](#SourceInstanceARN)

### Kunci syarat ec2:Attribute
<a name="attribute-key"></a>

Kunci syarat `ec2:Attribute` dapat digunakan untuk syarat-syarat yang memfilter akses berdasarkan atribut sumber daya.

Kunci kondisi ini hanya mendukung properti yang bertipe data primitif (seperti string atau bilangan bulat), atau **[AttributeValue](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AttributeValue.html)**objek kompleks yang hanya berisi properti **Value** (seperti **Deskripsi** atau **ImdsSupport**objek aksi [ModifyImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html)API). Kunci kondisi tidak dapat digunakan dengan objek kompleks yang berisi beberapa properti, seperti **LaunchPermission**objek dari [ModifyImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html).

Misalnya, kebijakan berikut menggunakan kunci `ec2:Attribute/Description` kondisi untuk memfilter akses berdasarkan objek **Description** kompleks dari tindakan **ModifyImageAttribute**API. Kunci syarat hanya mengizinkan permintaan yang memodifikasi deskripsi citra ke `Production` atau `Development`. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:ModifyImageAttribute",
      "Resource": "arn:aws:ec2:us-east-1::image/ami-*",
      "Condition": {
        "StringEquals": {
          "ec2:Attribute/Description": [
            "Production",
            "Development"
          ]
        }
      }
    }
  ]
}
```

------

Kebijakan contoh berikut menggunakan kunci `ec2:Attribute` kondisi untuk memfilter akses berdasarkan properti **Atribut** primitif dari tindakan **ModifyImageAttribute**API. Kunci syarat menolak semua permintaan yang berusaha memodifikasi deskripsi citra.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "ec2:ModifyImageAttribute",
      "Resource": "arn:aws:ec2:us-east-1::image/ami-*",
      "Condition": {
        "StringEquals": {
          "ec2:Attribute": "Description"
        }
      }
    }
  ]
}
```

------

### Kunci syarat ec2:ResourceID
<a name="imageId-key"></a>

Saat menggunakan kunci syarat `ec2:ResourceID` berikut dengan tindakan API tertentu, nilai kunci syarat digunakan untuk menentukan sumber daya yang dihasilkan yang dibuat oleh tindakan API. Kunci syarat `ec2:ResourceID` tidak dapat digunakan untuk menentukan sumber daya sumber yang ditentukan dalam permintaan API. Jika Anda menggunakan salah satu dari kunci syarat `ec2:ResourceID` berikut dengan API tertentu, maka Anda harus selalu menentukan wildcard (`*`). Jika Anda menentukan nilai yang berbeda, syarat tersebut selalu diselesaikan dengan `*` selama runtime. Misalnya, untuk menggunakan kunci `ec2:ImageId` kondisi dengan **CopyImage**API, maka Anda harus menentukan kunci kondisi sebagai berikut:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:CopyImage",
      "Resource": "arn:aws:ec2:us-east-1::image/ami-*",
      "Condition": {
        "StringEquals": {
          "ec2:ImageID": "*"
        }
      }
    }
  ]
}
```

------

Kami menyarankan Anda menghindari penggunaan kunci kondisi ini dengan tindakan API ini:
+ `ec2:DhcpOptionsID` – `CreateDhcpOptions`
+ `ec2:ImageID`—`CopyImage`,`CreateImage`,`ImportImage`, dan `RegisterImage`
+ `ec2:InstanceID`— `RunInstances` dan `ImportInstance`
+ `ec2:InternetGatewayID` – `CreateInternetGateway`
+ `ec2:NetworkAclID` – `CreateNetworkAcl`
+ `ec2:NetworkInterfaceID` – `CreateNetworkInterface`
+ `ec2:PlacementGroupName` – `CreatePlacementGroup`
+ `ec2:RouteTableID` – `CreateRouteTable`
+ `ec2:SecurityGroupID` – `CreateSecurityGroup`
+ `ec2:SnapshotID`—`CopySnapshot`,`CreateSnapshot`,`CreateSnapshots`, dan `ImportSnapshots`
+ `ec2:SubnetID` – `CreateSubnet`
+ `ec2:VolumeID`— `CreateVolume` dan `ImportVolume`
+ `ec2:VpcID` – `CreateVpc`
+ `ec2:VpcPeeringConnectionID` – `CreateVpcPeeringConnection`

Untuk memfilter akses berdasarkan sumber daya tertentu IDs, sebaiknya gunakan elemen `Resource` kebijakan sebagai berikut.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:CopyImage",
      "Resource": "arn:aws:ec2:us-east-1::image/ami-01234567890abcdef"
    }
  ]
}
```

------

### Kunci syarat ec2:SourceInstanceARN
<a name="SourceInstanceARN"></a>

Gunakan `ec2:SourceInstanceARN` untuk menentukan ARN dari instance dari mana permintaan dibuat. Ini adalah [kunci kondisi AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html), yang berarti Anda dapat menggunakannya dengan layanan selain Amazon EC2. Untuk contoh kebijakan, lihat[Contoh: Izinkan instance tertentu untuk melihat sumber daya di AWS layanan lain](ExamplePolicies_EC2.md#iam-example-source-instance).

## Kontrol akses menggunakan akses berbasis atribut
<a name="control-access-with-tags"></a>

Saat membuat kebijakan IAM yang memberikan izin kepada pengguna untuk menggunakan sumber daya EC2, Anda dapat menyertakan informasi tanda dalam elemen `Condition` dari kebijakan tersebut untuk mengontrol akses berdasarkan tanda. Hal ini dikenal sebagai kendali akses berbasis atribut (ABAC). ABAC memberikan Anda kendali yang lebih baik atas sumber daya mengenai sumber daya mana yang dapat diubah, digunakan, atau dihapus oleh seorang pengguna. Untuk informasi lebih lanjut, lihat [Apa fungsi ABAC untuk AWS?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)

Sebagai contoh, Anda dapat membuat kebijakan yang memungkinkan para pengguna untuk mengakhiri instans, tetapi menolak tindakan itu jika instans tersebut memiliki tanda `environment=production`. Untuk melakukan hal ini, Anda bisa menggunakan kunci syarat `aws:ResourceTag` untuk mengizinkan atau menolak akses ke sumber daya berdasarkan tanda yang dilampirkan pada sumber daya.

```
"StringEquals": { "aws:ResourceTag/environment": "production" }
```

Untuk mempelajari apakah tindakan API Amazon EC2 mendukung kontrol akses menggunakan kunci syarat `aws:ResourceTag`, lihat [Tindakan, sumber daya, dan kunci syarat untuk Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html). Perhatikan bahwa tindakan `Describe` tidak mendukung izin tingkat sumber daya, sehingga Anda harus menentukannya dalam pernyataan terpisah yang tidak disertai syarat.

Untuk contoh kebijakan IAM, lihat [Contoh kebijakan untuk mengontrol akses API Amazon EC2](ExamplePolicies_EC2.md). 

Jika Anda mengizinkan atau menolak akses para pengguna ke sumber daya berdasarkan tanda, maka Anda harus mempertimbangkan untuk menolak secara eksplisit memberikan kemampuan kepada pengguna untuk menambahkan atau menghapus tanda tersebut dari sumber daya yang sama. Jika tidak, pengguna dapat mengakali pembatasan Anda dan mendapatkan akses atas sumber daya dengan melakukan modifikasi pada tanda dari sumber daya tersebut.

## Berikan izin kepada pengguna, grup, dan peran
<a name="granting-iam-permissions"></a>

Untuk memberikan akses dan menambahkan izin bagi pengguna, grup, atau peran Anda:
+ Pengguna dan grup di AWS IAM Identity Center:

  Buat rangkaian izin. Ikuti instruksi di [Buat rangkaian izin](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) dalam *Panduan Pengguna AWS IAM Identity Center *.
+ Pengguna yang dikelola di IAM melalui penyedia identitas:

  Buat peran untuk federasi identitas. Ikuti instruksi dalam [Buat peran untuk penyedia identitas pihak ketiga (federasi)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) dalam *Panduan Pengguna IAM*.
+ Pengguna IAM:
  + Buat peran yang dapat diambil pengguna Anda. Ikuti instruksi dalam [Buat peran untuk pengguna IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) dalam *Panduan Pengguna IAM*.
  + (Tidak disarankan) Lampirkan kebijakan langsung ke pengguna atau tambahkan pengguna ke grup pengguna. Ikuti petunjuk dalam [Menambahkan izin ke pengguna (konsol)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) dalam *Panduan Pengguna IAM*.

## Memeriksa apakah pengguna memiliki izin yang diperlukan
<a name="check-required-permissions"></a>

Setelah Anda membuat kebijakan IAM, kami merekomendasikan agar Anda memeriksa apakah kebijakan itu memberikan izin kepada para pengguna untuk menggunakan tindakan API dan sumber daya tertentu yang mereka butuhkan sebelum Anda memasukkan kebijakan tersebut ke dalam produksi.

Pertama-tama, buatlah pengguna untuk tujuan pengujian, lalu lampirkan kebijakan IAM yang Anda buat tersebut ke pengguna pengujian. Kemudian, buatlah permintaan sebagai pengguna uji.

Jika tindakan Amazon EC2 yang Anda uji membuat atau memodifikasi sumber daya, maka Anda harus mengajukan permintaan menggunakan parameter `DryRun` (atau jalankan perintah AWS CLI dengan opsi `--dry-run`). Dalam hal ini, perintah akan menyelesaikan pemeriksaan otorisasi, tetapi tidak akan menyelesaikan operasi. Sebagai contoh, Anda dapat memeriksa apakah pengguna dapat mengakhiri instans tertentu tanpa benar-benar mengakhirinya. Jika pengguna uji tersebut memiliki izin yang diperlukan, maka permintaan itu akan menampilkan `DryRunOperation`; jika tidak, `UnauthorizedOperation` yang akan ditampilkan.

Jika kebijakan tersebut tidak memberikan izin kepada pengguna seperti yang Anda harapkan, atau terlalu longgar dalam memberikan izin, maka Anda dapat menyesuaikan kebijakan itu sesuai kebutuhan Anda dan menguji ulang hingga Anda mendapatkan hasil yang Anda inginkan. 

**penting**  
Pengujian ini dapat memakan waktu beberapa menit sebelum perubahan terjadi pada kebijakan untuk ditransmisikan sebelum diberlakukan. Oleh karena itu, kami merekomendasikan Anda memberikan waktu lima menit sebelum Anda menguji pembaruan kebijakan Anda.

Jika pemeriksaan otorisasi gagal, maka permintaan akan menampilkan informasi berenkode yang memuat informasi diagnostik. Anda dapat melakukan dekode pada pesan tersebut menggunakan tindakan `DecodeAuthorizationMessage`. Untuk informasi selengkapnya, lihat [DecodeAuthorizationMessage](https://docs.aws.amazon.com/STS/latest/APIReference/API_DecodeAuthorizationMessage.html)di *Referensi AWS Security Token Service API*, dan [decode-authorization-message](https://docs.aws.amazon.com/cli/latest/reference/sts/decode-authorization-message.html).

# Contoh kebijakan untuk mengontrol akses API Amazon EC2
<a name="ExamplePolicies_EC2"></a>

Anda dapat menggunakan kebijakan IAM untuk memberi pengguna izin yang diperlukan untuk bekerja dengan Amazon EC2. Untuk step-by-step petunjuk arah, lihat [Membuat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) di *Panduan Pengguna IAM*.

Contoh berikut menunjukkan pernyataan kebijakan yang dapat Anda gunakan untuk memberikan izin kepada pengguna untuk menggunakan Amazon EC2. Kebijakan ini dirancang untuk permintaan yang dibuat menggunakan SDK AWS CLI atau AWS SDK. Dalam contoh berikut, ganti masing-masing *user input placeholder* dengan informasi Anda sendiri.

**Topics**
+ [Akses hanya-baca](#iam-example-read-only)
+ [Membatasi akses ke suatu Wilayah tertentu](#iam-example-region)
+ [Cara menggunakan instans](#iam-example-instances)
+ [Luncurkan instance () RunInstances](#iam-example-runinstances)
+ [Cara Menggunakan Instans Spot](#iam-example-spot-instances)
+ [Cara Menggunakan Instans Cadangan](#iam-example-reservedinstances)
+ [Memberi tanda pada sumber daya](#iam-example-taggingresources)
+ [Cara menggunakan IAM role](#iam-example-iam-roles)
+ [Cara menggunakan tabel rute](#iam-example-route-tables)
+ [Izinkan instance tertentu untuk melihat sumber daya di AWS layanan lain](#iam-example-source-instance)
+ [Cara menggunakan templat peluncuran](#iam-example-launch-templates)
+ [Cara menggunakan metadata instans](#iam-example-instance-metadata)
+ [Bekerja dengan volume dan snapshot Amazon EBS](#iam-example-ebs)

Untuk contoh kebijakan yang digunakan dalam konsol Amazon EC2, lihat [Contoh kebijakan untuk mengontrol akses ke konsol Amazon EC2](iam-policies-ec2-console.md).

## Contoh: Akses hanya-baca
<a name="iam-example-read-only"></a>

Kebijakan berikut memberikan izin kepada para pengguna untuk menggunakan semua tindakan API Amazon EC2 yang memiliki nama dimulai dengan `Describe`. Elemen `Resource` menggunakan wildcard untuk mengindikasikan bahwa para pengguna dapat menentukan semua sumber daya dengan tindakan API ini. Wildcard \$1 juga Anda perlukan jika tindakan API tidak mendukung izin tingkat sumber daya. Untuk informasi selengkapnya tentang ARN mana yang dapat Anda gunakan bersama dengan tindakan API Amazon EC2 yang mana, lihat [Tindakan, sumber daya, dan kunci syarat untuk Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

Para pengguna tidak memiliki izin untuk melakukan tindakan apa pun atas sumber daya (kecuali jika pernyataan lain memberikan mereka izin untuk melakukannya) karena mereka tidak mendapatkan izin untuk menggunakan tindakan API secara default.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource": "*"
    }
   ]
}
```

------

## Contoh: Membatasi akses ke suatu Wilayah tertentu
<a name="iam-example-region"></a>

Kebijakan berikut menolak pemberian izin kepada para pengguna untuk menggunakan semua tindakan API Amazon EC2 kecuali Wilayah tersebut adalah Eropa (Frankfurt). Kebijakan ini menggunakan kunci syarat global `aws:RequestedRegion`, yang didukung oleh semua tindakan API Amazon EC2.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
       {
      "Effect": "Deny",
      "Action": "ec2:*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedRegion": "eu-central-1"
        }
      }
    }  
  ]
}
```

------

Atau, Anda dapat menggunakan kunci syarat `ec2:Region`, yang dikhususkan untuk Amazon EC2 dan didukung oleh semua tindakan API Amazon EC2.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
       {
      "Effect": "Deny",
      "Action": "ec2:*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "ec2:Region": "eu-central-1"
        }
      }
    }  
  ]
}
```

------

## Cara menggunakan instans
<a name="iam-example-instances"></a>

**Topics**
+ [Contoh: Mendeskripsikan, meluncurkan, menghentikan, memulai, dan mengakhiri semua instans](#iam-example-instances-all)
+ [Contoh: Mendeskripsikan semua instans, dan menghentikan, memulai, dan mengakhiri instans tertentu saja](#iam-example-instances-specific)

### Contoh: Mendeskripsikan, meluncurkan, menghentikan, memulai, dan mengakhiri semua instans
<a name="iam-example-instances-all"></a>

Kebijakan berikut memberikan izin kepada para pengguna untuk menggunakan tindakan API yang ditentukan dalam elemen `Action`. Elemen `Resource` menggunakan wildcard \$1 untuk mengindikasikan bahwa para pengguna dapat menentukan semua sumber daya dengan tindakan API ini. Wildcard \$1 juga Anda perlukan jika tindakan API tidak mendukung izin tingkat sumber daya. Untuk informasi selengkapnya tentang ARN mana yang dapat Anda gunakan bersama dengan tindakan API Amazon EC2 yang mana, lihat [Tindakan, sumber daya, dan kunci syarat untuk Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

Para pengguna tidak memiliki izin untuk menggunakan tindakan API apa pun (kecuali jika pernyataan lain memberikan mereka izin untuk melakukannya) karena para pengguna tersebut tidak mendapatkan izin untuk menggunakan tindakan API secara default.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeInstances", 
        "ec2:DescribeImages",
        "ec2:DescribeKeyPairs", 
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeAvailabilityZones",
        "ec2:RunInstances", 
        "ec2:TerminateInstances",
        "ec2:StopInstances", 
        "ec2:StartInstances"
      ],
      "Resource": "*"
    }
   ]
}
```

------

### Contoh: Mendeskripsikan semua instans, dan menghentikan, memulai, dan mengakhiri instans tertentu saja
<a name="iam-example-instances-specific"></a>

Kebijakan berikut memungkinkan pengguna untuk mendeskripsikan semua instance, untuk memulai dan menghentikan hanya instance i-1234567890abcdef0 dan i-0598c7d356eba48d7, dan untuk mengakhiri hanya instance di Wilayah, dengan tag sumber daya "”. `us-east-1` `purpose=test` 

Pernyataan pertama menggunakan wildcard \$1 untuk elemen `Resource` untuk mengindikasikan bahwa para pengguna dapat menentukan semua sumber daya dengan tindakan tersebut; dalam hal ini, mereka dapat mencantumkan semua instans. Wildcard \$1 tersebut juga Anda perlukan jika tindakan API tidak mendukung izin tingkat sumber daya (dalam hal ini, `ec2:DescribeInstances`). Untuk informasi selengkapnya tentang ARN mana yang dapat Anda gunakan bersama dengan tindakan API Amazon EC2 yang mana, lihat [Tindakan, sumber daya, dan kunci syarat untuk Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

Pernyataan kedua menggunakan izin tingkat sumber daya untuk tindakan `StopInstances` dan `StartInstances`. Contoh spesifik ditunjukkan oleh `Resource` elemen mereka ARNs .

Pernyataan ketiga memungkinkan pengguna untuk menghentikan semua instance di `us-east-1` Wilayah yang termasuk dalam AWS akun yang ditentukan, tetapi hanya jika instance memiliki tag. `"purpose=test"` Elemen `Condition` memenuhi syarat ketika pernyataan kebijakan berlaku. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
   {
   "Effect": "Allow",
      "Action": "ec2:DescribeInstances",
      "Resource": "*"
   },
   {
      "Effect": "Allow",
      "Action": [
        "ec2:StopInstances", 
        "ec2:StartInstances"
      ],
      "Resource": [
        "arn:aws:ec2:us-east-1:111122223333:instance/i-1234567890abcdef0",
        "arn:aws:ec2:us-east-1:111122223333:instance/i-0598c7d356eba48d7"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "ec2:TerminateInstances",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
      "Condition": {
         "StringEquals": {
            "aws:ResourceTag/purpose": "test"
         }
      }
   }

   ]
}
```

------

## Luncurkan instance () RunInstances
<a name="iam-example-runinstances"></a>

Tindakan [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html)API meluncurkan satu atau beberapa Instans Sesuai Permintaan atau satu atau beberapa Instans Spot. `RunInstances`membutuhkan AMI dan membuat instance. Para pengguna dapat menentukan pasangan kunci dan grup keamanan dalam permintaan. Peluncuran ke dalam VPC memerlukan subnet, dan akan membuat antarmuka jaringan. Peluncuran dari AMI yang didukung Amazon EBS akan membuat volume. Oleh karena itu, para pengguna harus memiliki izin untuk menggunakan sumber daya Amazon EC2 ini. Anda dapat membuat pernyataan kebijakan yang mengharuskan pengguna menentukan parameter opsional pada `RunInstances`, atau membatasi pengguna pada nilai tertentu sebagai parameter.

Untuk informasi selengkapnya tentang izin tingkat sumber daya yang diperlukan untuk meluncurkan instans, lihat [Tindakan, sumber daya, dan kunci syarat untuk Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

Secara default, para pengguna tidak memiliki izin untuk mendeskripsikan, memulai, menghentikan, atau mengakhiri instans yang dihasilkan. Salah satu cara untuk memberikan izin kepada para pengguna untuk mengelola instans yang dihasilkan adalah dengan membuat tanda tertentu untuk setiap instans, dan kemudian membuat pernyataan yang memungkinkan mereka mengelola instans-instans itu dengan tanda tersebut. Untuk informasi selengkapnya, lihat [Cara menggunakan instans](#iam-example-instances).

**Topics**
+ [AMIs](#iam-example-runinstances-ami)
+ [Tipe instans](#iam-example-runinstances-instance-type)
+ [Subnet](#iam-example-runinstances-subnet)
+ [Volume EBS](#iam-example-runinstances-volumes)
+ [Tanda](#iam-example-runinstances-tags)
+ [Tanda di templat peluncuran](#iam-example-tags-launch-template)
+ [Elastis GPUs](#iam-example-runinstances-egpu)
+ [Templat peluncuran](#iam-example-runinstances-launch-templates)

### AMIs
<a name="iam-example-runinstances-ami"></a>

Kebijakan berikut memungkinkan pengguna untuk meluncurkan instance hanya menggunakan yang ditentukan AMIs, `ami-9e1670f7` dan`ami-45cf5c3c`. Pengguna tidak dapat meluncurkan instance menggunakan other AMIs (kecuali pernyataan lain memberikan izin kepada pengguna untuk melakukannya).

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
        "arn:aws:ec2:us-east-1::image/ami-9e1670f7",
        "arn:aws:ec2:us-east-1::image/ami-45cf5c3c",
        "arn:aws:ec2:us-east-1:111122223333:instance/*",
        "arn:aws:ec2:us-east-1:111122223333:volume/*",
        "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
        "arn:aws:ec2:us-east-1:111122223333:security-group/*",
        "arn:aws:ec2:us-east-1:111122223333:subnet/*",
        "arn:aws:ec2:us-east-1:111122223333:network-interface/*"
      ]
    }
   ]
}
```

------

Atau, kebijakan berikut memungkinkan pengguna untuk meluncurkan instans dari semua yang AMIs dimiliki oleh Amazon, atau mitra tepercaya dan terverifikasi tertentu. Elemen `Condition` dari pernyataan pertama menguji apakah `ec2:Owner` adalah `amazon`. Pengguna tidak dapat meluncurkan instance menggunakan other AMIs (kecuali pernyataan lain memberikan izin kepada pengguna untuk melakukannya).

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
         {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [ 
         "arn:aws:ec2:us-east-1::image/ami-*"
      ],
      "Condition": {
         "StringEquals": {
            "ec2:Owner": "amazon"
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [ 
         "arn:aws:ec2:us-east-1:111122223333:instance/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:volume/*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*"
         ]
      }
   ]
}
```

------

### Tipe instans
<a name="iam-example-runinstances-instance-type"></a>

Kebijakan berikut memungkinkan para pengguna untuk meluncurkan instans dengan hanya menggunakan tipe instans `t2.micro` atau `t2.small`, hal ini mungkin Anda lakukan untuk mengontrol biaya. Para pengguna tidak dapat meluncurkan instans yang lebih besar karena elemen `Condition` dari pernyataan pertama menguji apakah `ec2:InstanceType` merupakan `t2.micro` atau `t2.small`. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1:111122223333:instance/*"
      ],
      "Condition": {
         "StringEquals": {
            "ec2:InstanceType": ["t2.micro", "t2.small"]
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1::image/ami-*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:volume/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*"
         ]
      }
   ]
}
```

------

Atau, Anda dapat membuat kebijakan yang menolak memberikan izin kepada pengguna untuk meluncurkan instans apa pun kecuali tipe instans `t2.micro` dan `t2.small`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        { 
      "Effect": "Deny",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1:111122223333:instance/*"
      ],
      "Condition": {
         "StringNotEquals": {
            "ec2:InstanceType": ["t2.micro", "t2.small"]
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1::image/ami-*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:instance/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:volume/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*"
         ]
      }
   ]
}
```

------

### Subnet
<a name="iam-example-runinstances-subnet"></a>

Kebijakan berikut memungkinkan para pengguna untuk meluncurkan instans hanya menggunakan subnet yang ditentukan, `subnet-12345678`. Grup tidak dapat meluncurkan instans ke subnet lain mana pun (kecuali pernyataan lain memberikan izin kepada pengguna untuk melakukannya).

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
        "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-12345678",
        "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
        "arn:aws:ec2:us-east-1:111122223333:instance/*",
        "arn:aws:ec2:us-east-1:111122223333:volume/*",
        "arn:aws:ec2:us-east-1::image/ami-*",
        "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
        "arn:aws:ec2:us-east-1:111122223333:security-group/*"
      ]
    }
   ]
}
```

------

Atau, Anda dapat membuat kebijakan yang menolak memberikan izin kepada pengguna untuk meluncurkan instans ke dalam subnet lain mana pun. Pernyataan tersebut menjalankan hal ini dengan menolak memberikan izin untuk membuat antarmuka jaringan, kecuali jika subnet `subnet-12345678` telah ditentukan. Penolakan ini akan mengabaikan kebijakan lain yang dibuat untuk memungkinkan peluncuran instans ke dalam subnet lain.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
         {
      "Effect": "Deny",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*"
      ],
      "Condition": {
         "ArnNotEquals": {
            "ec2:Subnet": "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-12345678"
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1::image/ami-*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:instance/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:volume/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*"
         ]
      }
   ]
}
```

------

### Volume EBS
<a name="iam-example-runinstances-volumes"></a>

Kebijakan berikut memungkinkan para pengguna untuk meluncurkan instans hanya jika volume EBS untuk instans tersebut sudah dienkripsi. Pengguna harus meluncurkan instans dari AMI yang dibuat dengan snapshot yang dienkripsi untuk memastikan volume root sudah dienkripsi. Volume tambahan apa pun yang dilampirkan oleh pengguna pada instans saat dilakukan peluncuran juga harus sudah dienkripsi.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
                {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*:*:volume/*"
            ],
            "Condition": {
                "Bool": {
                    "ec2:Encrypted": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*::image/ami-*",
                "arn:aws:ec2:*:*:network-interface/*",
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:key-pair/*",
                "arn:aws:ec2:*:*:security-group/*"
            ]
        }
    ]
}
```

------

### Tanda
<a name="iam-example-runinstances-tags"></a>

**Memberi tanda pada instans pada saat instans dibuat**

Kebijakan berikut memungkinkan para pengguna untuk meluncurkan instans dan memberi tanda pada instans saat instans sedang dibuat. Untuk tindakan-tindakan yang digunakan untuk membuat sumber daya yang menerapkan tanda, para pengguna harus memiliki izin untuk menggunakan tindakan `CreateTags`. Pernyataan kedua menggunakan kunci syarat `ec2:CreateAction` untuk memungkinkan para pengguna membuat tanda hanya dalam konteks `RunInstances`, dan hanya untuk instans. Para pengguna tidak dapat memberi tanda pada sumber daya yang sudah ada, dan para pengguna tidak dapat memberi tanda pada volume menggunakan permintaan `RunInstances`. 

Untuk informasi selengkapnya, lihat [Berikan izin untuk menandai sumber daya Amazon EC2 selama pembuatan](supported-iam-actions-tagging.md).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
      "Condition": {
         "StringEquals": {
             "ec2:CreateAction" : "RunInstances"
          }
       }
    }
  ]
}
```

------

**Memberi tanda pada instans dan volume pada saat pembuatan dengan tanda tertentu**

Kebijakan berikut mencakup kunci syarat `aws:RequestTag` yang mengharuskan para pengguna untuk menandai setiap instans dan volume yang dibuat oleh `RunInstances` dengan tanda `environment=production` dan `purpose=webserver`. Jika pengguna tidak meneruskan tanda tertentu ini, atau jika mereka tidak menentukan tanda sama sekali, maka permintaan itu akan gagal.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
   {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-1::image/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": [
          "arn:aws:ec2:us-east-1:111122223333:volume/*",
          "arn:aws:ec2:us-east-1:111122223333:instance/*"
      ],
      "Condition": {
         "StringEquals": {
             "aws:RequestTag/environment": "production" ,
             "aws:RequestTag/purpose": "webserver"
          }
       }
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
      "Condition": {
         "StringEquals": {
             "ec2:CreateAction" : "RunInstances"
          }
       }
    }
  ]
}
```

------

**Memberi tanda pada instans dan volume pada saat pembuatan dengan setidaknya satu tanda tertentu**

Kebijakan berikut menggunakan pemodifikasi `ForAnyValue` berdasarkan syarat `aws:TagKeys` untuk mengindikasikan bahwa setidaknya satu tanda harus ditentukan dalam permintaan, dan harus berisi kunci `environment` atau `webserver`. Tanda harus diterapkan baik untuk instans maupun volume. Nilai tanda apa pun juga dapat ditentukan dalam permintaan. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
   {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-1::image/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
          "ec2:RunInstances"
      ],
      "Resource": [
          "arn:aws:ec2:us-east-1:111122223333:volume/*",
          "arn:aws:ec2:us-east-1:111122223333:instance/*"
      ],
      "Condition": {
          "ForAnyValue:StringEquals": {
              "aws:TagKeys": ["environment","webserver"]
          }
       }
    },
    {
      "Effect": "Allow",
      "Action": [
          "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
      "Condition": {
          "StringEquals": {
              "ec2:CreateAction" : "RunInstances"
          }
       }
    }
  ]
}
```

------

**Jika instans diberi tanda pada saat instans dibuat, maka instans tersebut harus diberi tanda dengan tanda tertentu**

Dalam kebijakan berikut, para pengguna tidak perlu menentukan tanda dalam permintaan, tetapi jika mereka melakukannya, tanda harus berupa `purpose=test`. Tidak ada tanda lain yang diperbolehkan. Pengguna dapat menerapkan tanda ke sumber daya mana pun yang dapat diberi tanda dalam permintaan `RunInstances`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
      "Condition": {
         "StringEquals": {
             "aws:RequestTag/purpose": "test",
             "ec2:CreateAction" : "RunInstances"
          },
          "ForAllValues:StringEquals": {
              "aws:TagKeys": "purpose"
          }
       }
    }
  ]
}
```

------

Untuk melarang siapa pun yang dipanggil tag di create for RunInstances



------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Effect": "Deny",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

Hanya izinkan tag tertentu untuk spot-instances-request. Inkonsistensi kejutan nomor 2 akan mempengaruhi hasilnya. Dalam keadaan normal, tidak menentukan tanda akan menghasilkan Tidak terautentikasi. Dalam hal ini spot-instances-request, kebijakan ini tidak akan dievaluasi jika tidak ada spot-instances-request tag, sehingga permintaan Spot on Run non-tag akan berhasil. 

### Tanda di templat peluncuran
<a name="iam-example-tags-launch-template"></a>

Dalam contoh berikut ini, para pengguna dapat meluncurkan beberapa instans, tetapi hanya jika mereka menggunakan templat peluncuran tertentu (`lt-09477bcd97b0d310e`). Kunci syarat `ec2:IsLaunchTemplateResource` mencegah para pengguna untuk mengganti sumber daya apa pun yang ditentukan dalam templat peluncuran tersebut. Bagian kedua dari pernyataan ini memungkinkan para pengguna untuk memberikan tanda pada instans saat instans dibuat—bagian pernyataan ini diperlukan jika tanda ditentukan untuk instans dalam templat peluncuran.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/lt-09477bcd97b0d310e" 
          },
          "Bool": {
             "ec2:IsLaunchTemplateResource": "true"
          }
       }
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
      "Condition": {
         "StringEquals": {
             "ec2:CreateAction" : "RunInstances"
          }
       }
    }
  ]
}
```

------

### Elastis GPUs
<a name="iam-example-runinstances-egpu"></a>

Dalam kebijakan berikut, para pengguna dapat meluncurkan instans dan menentukan GPU elastis untuk dilampirkan ke instans. Pengguna dapat meluncurkan instans di Wilayah mana pun, tetapi mereka hanya dapat melampirkan GPU elastis saat dilakukan peluncuran dalam Wilayah `us-east-2`. 

Kunci syarat `ec2:ElasticGpuType` memastikan bahwa instans menggunakan tipe GPU elastis `eg1.medium` atau `eg1.large`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
             {
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:*:111122223333:elastic-gpu/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:Region": "us-east-2",
                    "ec2:ElasticGpuType": [
                        "eg1.medium",
                        "eg1.large"
                    ]
                }  
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*::image/ami-*",
                "arn:aws:ec2:*:111122223333:network-interface/*",
                "arn:aws:ec2:*:111122223333:instance/*",
                "arn:aws:ec2:*:111122223333:subnet/*",
                "arn:aws:ec2:*:111122223333:volume/*",
                "arn:aws:ec2:*:111122223333:key-pair/*",
                "arn:aws:ec2:*:111122223333:security-group/*"
            ]
        }
    ]
}
```

------

### Templat peluncuran
<a name="iam-example-runinstances-launch-templates"></a>

Dalam contoh berikut ini, para pengguna dapat meluncurkan beberapa instans, tetapi hanya jika mereka menggunakan templat peluncuran tertentu (`lt-09477bcd97b0d310e`). Para pengguna dapat mengganti parameter apa pun dalam templat peluncuran itu dengan menentukan parameter dalam tindakan `RunInstances`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
         {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/lt-09477bcd97b0d310e" 
          }
       }
    }
  ]
}
```

------

Dalam contoh berikut, para pengguna dapat meluncurkan instans hanya jika mereka menggunakan templat peluncuran. Kebijakan ini menggunakan kunci `ec2:IsLaunchTemplateResource` kondisi untuk mencegah pengguna mengganti semua yang sudah ada sebelumnya ARNs dalam template peluncuran.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
         {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/*" 
          },
          "Bool": {
             "ec2:IsLaunchTemplateResource": "true"
          }
       }
    }
  ]
}
```

------

Contoh kebijakan berikut ini memungkinkan para pengguna untuk meluncurkan instans, tetapi hanya jika mereka menggunakan templat peluncuran. Para pengguna tidak dapat mengganti parameter subnet dan antarmuka jaringan dalam permintaan; parameter-parameter ini hanya dapat ditentukan dalam templat peluncuran. Bagian pertama pernyataan menggunakan elemen [NotResource](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notresource.html) untuk memungkinkan semua sumber daya kecuali subnet dan antarmuka jaringan. Bagian kedua dari pernyataan mengizinkan sumber daya subnet dan antarmuka jaringan, tetapi hanya jika sumber tersebut berasal dari templat peluncuran.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
        {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "NotResource": ["arn:aws:ec2:us-east-1:111122223333:subnet/*",
                      "arn:aws:ec2:us-east-1:111122223333:network-interface/*" ],
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/*" 
          }
       }
    },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": ["arn:aws:ec2:us-east-1:111122223333:subnet/*",
                   "arn:aws:ec2:us-east-1:111122223333:network-interface/*" ],
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/*" 
          },
          "Bool": {
             "ec2:IsLaunchTemplateResource": "true"
          }
       }
    }
  ]
}
```

------

Contoh berikut ini memungkinkan para pengguna untuk meluncurkan instans hanya jika mereka menggunakan templat peluncuran, dan hanya jika templat peluncuran memiliki tanda `Purpose=Webservers`. Para pengguna tidak dapat mengganti parameter templat peluncuran dalam tindakan `RunInstances`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
        {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "NotResource": "arn:aws:ec2:us-east-1:111122223333:launch-template/*",
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/*" 
          },
         "Bool": {
             "ec2:IsLaunchTemplateResource": "true"
          }
       }
    },
    {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:launch-template/*",
      "Condition": {
       "StringEquals": {
           "aws:ResourceTag/Purpose": "Webservers" 
        }
       }
     }
  ]
}
```

------

## Cara Menggunakan Instans Spot
<a name="iam-example-spot-instances"></a>

Anda dapat menggunakan RunInstances tindakan untuk membuat permintaan Instans Spot, dan menandai permintaan Instans Spot saat membuat. Sumber daya yang akan ditentukan RunInstances adalah`spot-instances-request`.

Sumber daya `spot-instances-request` dievaluasi dalam kebijakan IAM sebagaimana berikut ini:
+ Jika Anda tidak memberi tag pada permintaan Instans Spot saat dibuat, Amazon EC2 tidak mengevaluasi`spot-instances-request` sumber daya di RunInstances pernyataan.
+ Jika Anda memberi tag pada permintaan Instans Spot saat dibuat, Amazon EC2 mengevaluasi`spot-instances-request` sumber daya di RunInstances pernyataan.

Oleh karena itu, untuk sumber daya `spot-instances-request`, aturan-aturan berikut berlaku untuk kebijakan IAM:
+ Jika Anda menggunakan RunInstances untuk membuat permintaan Instance Spot dan Anda tidak bermaksud untuk menandai permintaan Instans Spot saat membuat, Anda tidak perlu secara eksplisit mengizinkan `spot-instances-request` sumber daya; panggilan akan berhasil.
+ Jika Anda menggunakan RunInstances untuk membuat permintaan Instans Spot dan bermaksud untuk menandai permintaan Instans Spot saat membuat, Anda harus menyertakan `spot-instances-request` sumber daya dalam pernyataan RunInstances allow, jika tidak panggilan akan gagal.
+ Jika Anda menggunakan RunInstances untuk membuat permintaan Instans Spot dan bermaksud untuk menandai permintaan Instans Spot saat membuat, Anda harus menentukan `spot-instances-request` sumber daya atau `*` wildcard dalam pernyataan CreateTags allow, jika tidak panggilan akan gagal. 

Anda dapat meminta Instans Spot menggunakan RunInstances atau RequestSpotInstances. Contoh berikut kebijakan IAM hanya berlaku saat meminta Instans Spot menggunakan. RunInstances

**Contoh: Minta Instans Spot menggunakan RunInstances**

Kebijakan berikut memungkinkan pengguna untuk meminta Instans Spot dengan menggunakan RunInstances tindakan. Sumber `spot-instances-request` daya, yang dibuat oleh RunInstances, meminta Instans Spot.

**catatan**  
Untuk digunakan RunInstances untuk membuat permintaan Instans Spot, Anda dapat menghilangkan `spot-instances-request` dari `Resource` daftar jika Anda tidak bermaksud untuk menandai permintaan Instans Spot saat membuat. Hal ini dikarenakan Amazon EC2 tidak mengevaluasi sumber daya `spot-instances-request` dalam pernyataan RunInstances jika permintaan Instans Spot tidak diberi tag pada saat penciptaan.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        }
    ]
}
```

------

**Awas**  
**TIDAK DIDUKUNG - Contoh: Tolak izin pengguna untuk meminta Instans Spot menggunakan RunInstances**  
Kebijakan berikut ini tidak mendukung sumber daya `spot-instances-request`.  
Kebijakan berikut ini dimaksudkan untuk memberikan izin kepada para pengguna untuk meluncurkan Instans Sesuai Permintaan, tetapi menolak memberikan izin untuk permintaan Instans Spot. `spot-instances-request`Sumber daya, yang dibuat oleh RunInstances, adalah sumber daya yang meminta Instans Spot. Pernyataan kedua dimaksudkan untuk menolak RunInstances tindakan untuk `spot-instances-request` sumber daya. Namun, kondisi ini tidak didukung karena Amazon EC2 tidak mengevaluasi `spot-instances-request` sumber daya dalam RunInstances pernyataan jika permintaan Instans Spot tidak ditandai pada create.  

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*"
            ]
        },
        {
            "Sid": "DenySpotInstancesRequestsNOTSUPPORTEDDONOTUSE",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
        }
    ]
}
```

**Contoh: Memberikan tanda pada permintaan Instans Spot pada saat dibuat**

Kebijakan berikut ini memungkinkan para pengguna untuk memberikan tanda pada semua sumber daya yang dibuat saat dilakukan peluncuran instans. Pernyataan pertama memungkinkan RunInstances untuk membuat sumber daya yang terdaftar. `spot-instances-request`Sumber daya, yang dibuat oleh RunInstances, adalah sumber daya yang meminta Instans Spot. Pernyataan kedua menyediakan wildcard `*` untuk mengizinkan semua sumber daya diberi tanda pada saat dibuat ketika peluncuran instans.

**catatan**  
Jika Anda menandai permintaan Instans Spot saat membuat, Amazon EC2 akan mengevaluasi `spot-instances-request` sumber daya dalam pernyataan. RunInstances Oleh karena itu, Anda harus secara eksplisit mengizinkan `spot-instances-request` sumber daya untuk RunInstances tindakan tersebut, jika tidak panggilan akan gagal.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Sid": "TagResources",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

**Contoh: Menolak tanda pada saat dibuat untuk permintaan Instans Spot**

Kebijakan berikut ini menolak memberikan izin kepada para pengguna untuk memberikan tanda pada semua sumber daya yang dibuat saat dilakukan peluncuran instans.

Pernyataan pertama memungkinkan RunInstances untuk membuat sumber daya yang terdaftar. `spot-instances-request`Sumber daya, yang dibuat oleh RunInstances, adalah sumber daya yang meminta Instans Spot. Pernyataan kedua menyediakan wildcard `*` untuk menolak semua sumber daya yang sedang diberi tanda pada saat dibuat ketika peluncuran instans. Jika `spot-instances-request` atau sumber daya lain diberi tag pada saat penciptaan, perintah RunInstances akan gagal.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Sid": "DenyTagResources",
            "Effect": "Deny",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

**Awas**  
**TIDAK DIDUKUNG - Contoh: Mengizinkan pembuatan permintaan Instans Spot hanya jika ada tanda khusus yang ditetapkan untuknya**  
Kebijakan berikut ini tidak mendukung sumber daya `spot-instances-request`.  
Kebijakan berikut dimaksudkan untuk memberikan RunInstances izin untuk membuat permintaan Instans Spot hanya jika permintaan ditandai dengan tag tertentu.   
Pernyataan pertama memungkinkan RunInstances untuk membuat sumber daya yang terdaftar.  
Pernyataan kedua dimaksudkan untuk memberikan izin kepada para pengguna untuk membuat permintaan Instans Spot hanya jika permintaan itu memiliki tanda `environment=production`. Jika kondisi ini diterapkan ke sumber daya lain yang dibuat oleh RunInstances, menentukan tidak ada tag menghasilkan `Unauthenticated` kesalahan. Namun, jika tidak ada tag yang ditentukan untuk permintaan Instans Spot, Amazon EC2 tidak mengevaluasi `spot-instances-request` sumber daya dalam RunInstances pernyataan, yang menghasilkan permintaan Instans Spot yang tidak diberi tag dibuat oleh. RunInstances  
Perhatikan bahwa penentuan tag lain selain `environment=production` akan menghasilkan eror `Unauthenticated` karena jika pengguna memberi tag pada permintaan Instans Spot, Amazon EC2 akan mengevaluasi sumber daya`spot-instances-request` dalam pernyataan RunInstances .  

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*"
            ]
        },
        {
            "Sid": "RequestSpotInstancesOnlyIfTagIsEnvironmentProductionNOTSUPPORTEDDONOTUSE",
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:us-east-1:*:spot-instances-request/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/environment": "production"
                }
            }
        },
        {
            "Sid": "TagResources",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }

    ]
}
```

**Contoh: Menolak membuat permintaan Instans Spot jika ada tanda tertentu yang ditetapkan untuknya**

Kebijakan berikut menolak RunInstances izin untuk membuat permintaan Instans Spot jika permintaan tersebut ditandai dengan. `environment=production` 

Pernyataan pertama memungkinkan RunInstances untuk membuat sumber daya yang terdaftar.

Pernyataan kedua menolak memberikan izin kepada para pengguna untuk membuat permintaan Instans Spot jika permintaan itu memiliki tanda `environment=production`. Menentukan `environment=production` sebagai tanda akan mengakibatkan munculnya kesalahan `Unauthenticated`. Menentukan tanda lain atau tidak menentukan tanda akan mengakibatkan terciptanya permintaan Instans Spot.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Sid": "DenySpotInstancesRequests",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:us-east-1:*:spot-instances-request/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/environment": "production"
                }
            }
        },
        {
            "Sid": "TagResources",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

## Contoh: Cara Menggunakan Instans Cadangan
<a name="iam-example-reservedinstances"></a>

Kebijakan berikut ini memberikan izin kepada para pengguna untuk menampilkan, memodifikasi, dan membeli Instans Cadangan dalam akun Anda.

Pengaturan izin tingkat sumber daya untuk masing-masing Instans Cadangan tidak bisa dilakukan. Kebijakan ini berarti para pengguna memiliki akses ke semua Instans Cadangan dalam akun tersebut.

Elemen `Resource` menggunakan wildcard \$1 untuk mengindikasikan bahwa para pengguna dapat menentukan semua sumber daya dengan tindakan; dalam hal ini, mereka dapat mencantumkan dan memodifikasi semua Instans Cadangan dalam akun. Mereka juga dapat membeli Instans Cadangan menggunakan kredensial akun. Wildcard \$1 juga Anda perlukan jika tindakan API tidak mendukung izin tingkat sumber daya.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeReservedInstances", 
        "ec2:ModifyReservedInstances",
        "ec2:PurchaseReservedInstancesOffering", 
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeReservedInstancesOfferings"
      ],
      "Resource": "*"
    }
   ]
}
```

------

Untuk memungkinkan para pengguna menampilkan dan memodifikasi Instans Cadangan dalam akun Anda, tetapi tidak untuk membeli Instans Cadangan baru.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeReservedInstances", 
        "ec2:ModifyReservedInstances",
        "ec2:DescribeAvailabilityZones"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Contoh: Memberi tanda pada sumber daya
<a name="iam-example-taggingresources"></a>

Kebijakan berikut ini memungkinkan para pengguna untuk menggunakan tindakan `CreateTags` untuk menerapkan tanda ke instans hanya jika tanda tersebut berisi kunci `environment` dan nilai `production`. Tidak ada tag lain yang diizinkan dan pengguna tidak dapat menandai jenis sumber daya lainnya.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
              {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/environment": "production"
                }
            }
        }
    ]
}
```

------

Kebijakan berikut memungkinkan pengguna untuk menandai sumber daya apa pun yang dapat ditandai, yang sudah memiliki tanda dengan kunci `owner` dan nilai dari nama pengguna. Selain itu, para pengguna juga harus menentukan tanda dengan kunci `anycompany:environment-type` dan nilai dari `test` atau `prod` dalam permintaan. Para pengguna dapat menentukan tanda tambahan dalam permintaan.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/anycompany:environment-type": ["test","prod"],
                    "aws:ResourceTag/owner": "${aws:username}"
                } 
            }
        }
    ]
}
```

------

Anda dapat membuat kebijakan IAM yang memungkinkan para pengguna untuk menghapus tanda tertentu untuk sumber daya. Sebagai contoh, kebijakan berikut ini memungkinkan para pengguna untuk menghapus tanda untuk volume jika kunci tanda yang ditentukan dalam permintaan tersebut adalah `environment` atau `cost-center`. Nilai apa pun dapat ditentukan untuk tanda tetapi kunci tanda harus cocok dengan salah satu kunci dari kunci yang ditentukan.

**catatan**  
Jika Anda menghapus sumber daya, semua tanda yang dikaitkan dengan sumber daya tersebut juga dihapus. Para pengguna tidak memerlukan izin untuk menggunakan tindakan `ec2:DeleteTags` untuk menghapus sumber daya yang memiliki tanda; mereka hanya memerlukan izin untuk melakukan tindakan penghapusan.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
       {
      "Effect": "Allow",
      "Action": "ec2:DeleteTags",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["environment","cost-center"]
        }
      }
    }
  ]
}
```

------

Kebijakan ini memungkinkan pengguna untuk hanya menghapus tanda `environment=prod` pada sumber daya mana pun, dan hanya jika sumber daya tersebut sudah ditandai dengan kunci `owner` dan nilai dari nama pengguna. Pengguna tidak dapat menghapus tanda lain untuk sumber daya.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
      {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/environment": "prod",
          "aws:ResourceTag/owner": "${aws:username}"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["environment"]
        }
      }
    }
  ]
}
```

------

## Contoh: Cara Menggunakan IAM role
<a name="iam-example-iam-roles"></a>

Kebijakan berikut ini memungkinkan para pengguna untuk melampirkan, mengganti, dan melepaskan IAM role ke instans yang memiliki tanda `department=test`. Mengganti atau melepaskan IAM role terlampir memerlukan ID asosiasi, oleh karena itu kebijakan tersebut juga memberikan izin kepada para pengguna untuk menggunakan tindakan `ec2:DescribeIamInstanceProfileAssociations`. 

Pengguna harus memiliki izin untuk menggunakan tindakan `iam:PassRole` guna meneruskan peran ke instans. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:AssociateIamInstanceProfile",
        "ec2:ReplaceIamInstanceProfileAssociation",
        "ec2:DisassociateIamInstanceProfile"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/department":"test"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "ec2:DescribeIamInstanceProfileAssociations",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/DevTeam*"
    }
  ]
}
```

------

Kebijakan berikut ini akan memungkinkan para pengguna untuk melampirkan atau mengganti IAM role untuk instans apa pun. Para pengguna hanya dapat melampirkan atau mengganti IAM role dengan nama yang dimulai dengan `TestRole-`. Untuk tindakan `iam:PassRole`, pastikan Anda mencantumkan nama IAM role dan bukan nama profil instans (jika nama keduanya berbeda). Untuk informasi selengkapnya, lihat [Profil instans](iam-roles-for-amazon-ec2.md#ec2-instance-profile).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AssociateIamInstanceProfile",
                "ec2:ReplaceIamInstanceProfileAssociation"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeIamInstanceProfileAssociations",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/TestRole-*"
        }
    ]
}
```

------

## Contoh: Cara menggunakan tabel rute
<a name="iam-example-route-tables"></a>

Kebijakan berikut ini memungkinkan para pengguna menambahkan, menghapus, dan mengganti rute untuk tabel rute yang dikaitkan dengan VPC `vpc-ec43eb89` saja. Untuk menentukan VPC untuk kunci syarat `ec2:Vpc`, Anda harus menentukan ARN lengkap dari VPC tersebut.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
              {
            "Effect": "Allow",
            "Action": [
                "ec2:DeleteRoute",
                "ec2:CreateRoute",
                "ec2:ReplaceRoute"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:route-table/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:Vpc": "arn:aws:ec2:us-east-1:111122223333:vpc/vpc-ec43eb89"
                }
            }
        }
    ]
}
```

------

## Contoh: Izinkan instance tertentu untuk melihat sumber daya di AWS layanan lain
<a name="iam-example-source-instance"></a>

Berikut ini adalah contoh kebijakan yang dapat Anda lampirkan ke IAM role. Kebijakan ini memungkinkan instance untuk melihat sumber daya di berbagai AWS layanan. Ini menggunakan kunci kondisi `ec2:SourceInstanceARN` global untuk menentukan bahwa instance dari mana permintaan dibuat harus instance`i-093452212644b0dd6`. Jika IAM role yang sama dikaitkan dengan instans yang lain, maka instans lain tersebut tidak akan dapat melakukan tindakan apa pun.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
              {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVolumes",
                "s3:ListAllMyBuckets",
                "dynamodb:ListTables",
                "rds:DescribeDBInstances"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "ArnEquals": {
                    "ec2:SourceInstanceARN": "arn:aws:ec2:us-east-1:111122223333:instance/i-093452212644b0dd6"
                }
            }
        }
    ]
}
```

------

## Contoh: Cara menggunakan templat peluncuran
<a name="iam-example-launch-templates"></a>

Kebijakan berikut ini memungkinkan para pengguna untuk membuat versi templat peluncuran dan memodifikasi templat peluncuran, tetapi hanya untuk templat peluncuran tertentu (`lt-09477bcd97b0d3abc`). Para pengguna tidak dapat menggunakan templat peluncuran yang lain.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
   {
      "Action": [
        "ec2:CreateLaunchTemplateVersion",
        "ec2:ModifyLaunchTemplate"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:launch-template/lt-09477bcd97b0d3abc"
    }
  ]
}
```

------

Kebijakan berikut ini akan memungkinkan para pengguna untuk menghapus templat peluncuran dan versi templat peluncuran, dengan ketentuan bahwa templat peluncuran tersebut memiliki tanda `Purpose`=`Testing`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
       {
      "Action": [
        "ec2:DeleteLaunchTemplate",
        "ec2:DeleteLaunchTemplateVersions"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:launch-template/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Purpose": "Testing"
        }
      }
    }
  ]
}
```

------

## Cara menggunakan metadata instans
<a name="iam-example-instance-metadata"></a>

Kebijakan berikut memastikan bahwa pengguna hanya dapat mengambil metadata [instance menggunakan Layanan Metadata](ec2-instance-metadata.md) Instance Versi 2 (). IMDSv2 Anda dapat menggabungkan empat kebijakan berikut ini ke dalam satu kebijakan yang memiliki empat pernyataan. Jika digabungkan sebagai satu kebijakan, Anda dapat menggunakan kebijakan tersebut sebagai kebijakan kontrol layanan (SCP). Kebijakan tersebut dapat berfungsi dengan sama baiknya sebagai kebijakan *tolak* yang Anda terapkan pada kebijakan IAM yang sudah ada (menarik dan membatasi izin dengan sudah ada), atau sebagai SCP yang diterapkan secara global pada akun, unit organisasi (OU), atau keseluruhan organisasi.

**catatan**  
Kebijakan opsi RunInstances metadata berikut harus digunakan bersama dengan kebijakan yang memberikan izin utama untuk meluncurkan instance. RunInstances Jika kepala sekolah juga tidak memiliki RunInstances izin, ia tidak akan dapat meluncurkan instance. Untuk informasi selengkapnya, lihat kebijakan-kebijakan yang ada dalam [Cara menggunakan instans](#iam-example-instances) dan [Luncurkan instance () RunInstances](#iam-example-runinstances).

**penting**  
*Jika Anda menggunakan grup Auto Scaling dan Anda perlu menggunakan semua instans baru, grup Auto Scaling Anda harus menggunakan templat peluncuran. IMDSv2 *  
Saat grup Auto Scaling menggunakan templat peluncuran, izin `ec2:RunInstances` dari prinsipal utama IAM akan diperiksa saat grup Auto Scaling baru dibuat. Izin tersebut juga akan diperiksa saat grup Auto Scaling yang sudah ada diperbarui untuk penggunaan templat peluncuran baru atau templat peluncuran versi baru.  
Pembatasan penggunaan IMDSv1 pada prinsipal IAM untuk hanya `RunInstances` dicentang ketika grup Auto Scaling yang menggunakan template peluncuran, dibuat atau diperbarui. Untuk grup Auto Scaling yang dikonfigurasi untuk menggunakan templat peluncuran `Latest` atau `Default`, izin tersebut tidak diperiksa saat versi baru dari templat peluncuran tersebut dibuat. Untuk izin yang akan diperiksa, pengguna harus melakukan konfigurasi terhadap grup Auto Scaling untuk menggunakan *versi tertentu* dari templat peluncuran tersebut.  
Nonaktifkan penggunaan konfigurasi peluncuran untuk semua akun di organisasi Anda dengan menggunakan kebijakan kontrol layanan (SCPs) atau batas izin IAM untuk prinsip baru yang dibuat. Untuk prinsipal utama IAM yang sudah ada yang memiliki izin grup Auto Scaling, lakukan pembaruan atas kebijakan-kebijakan yang dikaitkan dengan kunci syarat ini. Untuk menonaktifkan penggunaan konfigurasi peluncuran, buatlah atau lakukan modifikasi pada SCP, batas-batas izin, atau kebijakan IAM yang relevan dengan kunci syarat `"autoscaling:LaunchConfigurationName"` dengan nilai yang ditentukan sebagai `null`.
Untuk templat peluncuran baru, lakukan konfigurasi pada opsi metadata instans di templat peluncuran. Untuk templat peluncuran yang sudah ada, buatlah templat peluncuran versi baru dan lakukan konfigurasi pada opsi metadata instans dalam versi baru itu.
Dalam kebijakan yang memberikan izin kepada setiap prinsipal utama untuk menggunakan templat peluncuran, batasi asosiasi `$latest` dan `$default` dengan menentukan `"autoscaling:LaunchTemplateVersionSpecified": "true"`. Dengan membatasi penggunaan hanya pada templat peluncuran versi tertentu saja, Anda telah memastikan bahwa instans baru akan diluncurkan menggunakan versi di mana opsi metadata dikonfigurasi. Untuk informasi selengkapnya, lihat [LaunchTemplateSpecification](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_LaunchTemplateSpecification.html) dalam *Referensi Amazon EC2 Auto Scaling API*, khususnya parameter `Version`.
Untuk grup Auto Scaling yang menggunakan konfigurasi peluncuran, ganti konfigurasi peluncuran itu dengan templat peluncuran. Untuk informasi selengkapnya, lihat [Memigrasi grup Auto Scaling untuk meluncurkan](https://docs.aws.amazon.com/autoscaling/ec2/userguide/migrate-to-launch-templates.html) templat di Panduan Pengguna *Amazon EC2 Auto Scaling*.
Untuk grup Auto Scaling yang menggunakan templat peluncuran, pastikan grup tersebut menggunakan templat peluncuran baru dengan opsi metadata instans yang telah dikonfigurasi, atau menggunakan templat peluncuran versi terbaru saat ini dengan opsi metadata instans yang telah dikonfigurasi. Untuk informasi selengkapnya, lihat [update-auto-scaling-group](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/update-auto-scaling-group.html).

**Topics**
+ [Membutuhkan penggunaan IMDSv2](#iam-example-instance-metadata-requireIMDSv2)
+ [Tolak opt-out IMDSv2](#iam-example-instance-metadata-denyoptoutIMDSv2)
+ [Menentukan batas hop maksimum](#iam-example-instance-metadata-maxHopLimit)
+ [Batasi siapa saja yang dapat melakukan modifikasi terhadap opsi metadata instans](#iam-example-instance-metadata-limit-modify-IMDS-options)
+ [Memerlukan kredensi peran untuk diambil dari IMDSv2](#iam-example-instance-metadata-require-roles-to-use-IMDSv2-credentials)

### Membutuhkan penggunaan IMDSv2
<a name="iam-example-instance-metadata-requireIMDSv2"></a>

Kebijakan berikut menetapkan bahwa Anda tidak dapat memanggil RunInstances API kecuali instans juga memilih untuk meminta penggunaan IMDSv2 (ditunjukkan oleh`"ec2:MetadataHttpTokens": "required"`). Jika Anda tidak menentukan bahwa instance memerlukan IMDSv2, Anda mendapatkan `UnauthorizedOperation` kesalahan saat memanggil RunInstances API.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Sid": "RequireImdsV2",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringNotEquals": {
                    "ec2:MetadataHttpTokens": "required"
                }
            }
        }
    ]
}
```

------

### Tolak opt-out IMDSv2
<a name="iam-example-instance-metadata-denyoptoutIMDSv2"></a>

Kebijakan berikut menetapkan bahwa Anda tidak dapat memanggil `ModifyInstanceMetadataOptions` API dan mengizinkan opsi IMDSv1 atau IMDSv2. Jika Anda memanggil API `ModifyInstanceMetadataOptions`, atribut `HttpTokens` harus diatur ke `required`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "DenyIMDSv1HttpTokensModification",
        "Effect": "Deny",
        "Action": "ec2:ModifyInstanceMetadataOptions",
        "Resource": "arn:aws:ec2:*:*:instance/*",
        "Condition": {
            "StringNotEquals": {
                "ec2:Attribute/HttpTokens": "required"
            },
            "Null": {
                "ec2:Attribute/HttpTokens": false
            }
        }
    }]
}
```

------

### Menentukan batas hop maksimum
<a name="iam-example-instance-metadata-maxHopLimit"></a>

Kebijakan berikut menetapkan bahwa Anda tidak dapat memanggil RunInstances API kecuali Anda juga menentukan batas hop, dan batas hop tidak boleh lebih dari 3. Jika Anda gagal melakukan itu, Anda mendapatkan `UnauthorizedOperation` kesalahan saat memanggil RunInstances API.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Sid": "MaxImdsHopLimit",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "NumericGreaterThan": {
                    "ec2:MetadataHttpPutResponseHopLimit": "3"
                }
            }
        }
    ]
}
```

------

### Batasi siapa saja yang dapat melakukan modifikasi terhadap opsi metadata instans
<a name="iam-example-instance-metadata-limit-modify-IMDS-options"></a>

Kebijakan berikut hanya mengizinkan pengguna dengan peran `ec2-imds-admins` untuk melakukan perubahan pada opsi metadata instans. Jika ada prinsipal selain peran `ec2-imds-admins` mencoba untuk memerintahkan ModifyInstanceMetadataOptions API, eror `UnauthorizedOperation` akan terjadi. Pernyataan ini dapat digunakan untuk mengontrol penggunaan ModifyInstanceMetadataOptions API; saat ini tidak ada kontrol akses (kondisi) berbutir halus untuk API. ModifyInstanceMetadataOptions 

### Memerlukan kredensi peran untuk diambil dari IMDSv2
<a name="iam-example-instance-metadata-require-roles-to-use-IMDSv2-credentials"></a>

Kebijakan berikut menetapkan bahwa jika kebijakan ini diterapkan pada peran, dan peran tersebut diasumsikan oleh layanan EC2 dan kredenal yang dihasilkan digunakan untuk menandatangani permintaan, maka permintaan tersebut harus ditandatangani oleh kredensi peran EC2 yang diambil dari. IMDSv2 Jika tidak, semua panggilan API akan mendapatkan kesalahan `UnauthorizedOperation`. Pernyataan/kebijakan ini dapat diterapkan secara umum karena, jika permintaan tidak ditandatangani oleh kredensial peran EC2, maka tidak ada dampak yang terjadi.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Sid": "RequireAllEc2RolesToUseV2",
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "NumericLessThan": {
                    "ec2:RoleDelivery": "2.0"
                }
            }
        }
    ]
}
```

------

## Bekerja dengan volume dan snapshot Amazon EBS
<a name="iam-example-ebs"></a>

Misalnya kebijakan untuk bekerja dengan volume dan snapshot Amazon EBS, lihat [Contoh kebijakan berbasis identitas](https://docs.aws.amazon.com/ebs/latest/userguide/security_iam_id-based-policy-examples.html) untuk Amazon EBS.

# Contoh kebijakan untuk mengontrol akses ke konsol Amazon EC2
<a name="iam-policies-ec2-console"></a>

Anda dapat menggunakan kebijakan IAM untuk memberi pengguna izin yang diperlukan untuk bekerja dengan Amazon EC2. Untuk step-by-step petunjuk arah, lihat [Membuat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) di *Panduan Pengguna IAM*.

Konsol tersebut menggunakan tindakan-tindakan API tambahan untuk fitur-fiturnya, sehingga kebijakan-kebijakan ini mungkin tidak berjalan sesuai yang diharapkan. Sebagai contoh, seorang pengguna yang memiliki izin untuk hanya menggunakan tindakan API `DescribeVolumes` akan mendapati kesalahan saat mencoba melihat volume dalam konsol. Bagian ini akan menunjukkan kebijakan-kebijakan yang memungkinkan para pengguna untuk menggunakan bagian tertentu dari konsol. Untuk informasi tambahan tentang membuat kebijakan untuk konsol Amazon EC2, lihat postingan Blog AWS Keamanan berikut: [Memberikan Izin kepada Pengguna untuk Bekerja di Konsol Amazon EC2](https://aws.amazon.com/blogs/security/granting-users-permission-to-work-in-the-amazon-ec2-console/).

Contoh berikut menunjukkan pernyataan kebijakan yang dapat Anda gunakan untuk memberikan izin kepada pengguna untuk menggunakan Amazon EC2. Ganti masing-masing *user input placeholder* dengan informasi Anda sendiri. Kebijakan ini dirancang untuk permintaan yang dibuat menggunakan Konsol Manajemen AWS. Konsol Amazon EC2 mungkin memanggil beberapa tindakan API untuk menampilkan satu sumber daya, dan mungkin tidak jelas sampai pengguna mencoba tugas dan konsol menampilkan kesalahan. Untuk informasi selengkapnya, lihat postingan Blog AWS Keamanan berikut: [Memberikan Izin kepada Pengguna untuk Bekerja di Konsol Amazon EC2](https://aws.amazon.com/blogs/security/granting-users-permission-to-work-in-the-amazon-ec2-console/).

**Topics**
+ [Akses hanya-baca](#ex-read-only)
+ [Menggunakan wizard peluncuran instans EC2](#ex-launch-wizard)
+ [Cara menggunakan grup keamanan](#ex-security-groups)
+ [Cara menggunakan alamat IP Elastis](#ex-eip)
+ [Cara Menggunakan Instans Cadangan](#ex-reservedinstances)

Untuk membantu mengetahui tindakan API mana yang diperlukan untuk melakukan tugas di konsol, Anda dapat menggunakan layanan yang mencatat panggilan, seperti AWS CloudTrail. Jika kebijakan Anda tidak memberikan izin untuk membuat atau melakukan modifikasi terhadap sumber daya tertentu, maka konsol akan menampilkan pesan berenkode yang memuat informasi diagnostik. Anda dapat memecahkan kode pesan menggunakan tindakan [DecodeAuthorizationMessage](https://docs.aws.amazon.com/STS/latest/APIReference/API_DecodeAuthorizationMessage.html)API untuk AWS STS, atau [decode-authorization-message](https://docs.aws.amazon.com/cli/latest/reference/sts/decode-authorization-message.html)perintah di. AWS CLI

## Contoh: Akses hanya-baca
<a name="ex-read-only"></a>

Untuk memungkinkan para pengguna menampilkan semua sumber daya dalam konsol Amazon EC2, Anda dapat menggunakan kebijakan yang sama seperti contoh berikut ini: [Contoh: Akses hanya-baca](ExamplePolicies_EC2.md#iam-example-read-only). Para pengguna tidak dapat melakukan tindakan apa pun pada sumber daya tersebut atau membuat sumber daya baru, kecuali bila ada pernyataan lain yang memberikan izin kepada mereka untuk melakukan hal itu.

**Lihat contoh, AMIs, dan snapshot**

Atau, Anda dapat memberikan akses hanya-baca ke subset sumber daya. Untuk melakukan hal ini, ganti wildcard \$1 dalam tindakan API `ec2:Describe` dengan tindakan `ec2:Describe` tertentu untuk masing-masing sumber daya. Kebijakan berikut ini akan memungkinkan para pengguna untuk menampilkan semua instans, AMI, dan snapshot dalam konsol Amazon EC2. `ec2:DescribeTags`Tindakan ini memungkinkan pengguna untuk melihat publikAMIs. Konsol memerlukan informasi penandaan untuk menampilkan publik AMIs; namun, Anda dapat menghapus tindakan ini untuk memungkinkan pengguna hanya melihat pribadiAMIs.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeInstances", 
         "ec2:DescribeImages",
         "ec2:DescribeTags", 
         "ec2:DescribeSnapshots"
      ],
      "Resource": "*"
   }
   ]
}
```

------

**catatan**  
Tindakan API `ec2:Describe*` Amazon EC2 tidak mendukung izin tingkat sumber daya, sehingga Anda tidak dapat mengontrol sumber daya individu mana yang dapat dilihat oleh pengguna dalam konsol. Oleh karena itu, wildcard \$1 dibutuhkan dalam elemen `Resource` pada pernyataan di atas. Untuk informasi selengkapnya tentang ARN mana yang dapat Anda gunakan bersama dengan tindakan API Amazon EC2 yang mana, lihat [Tindakan, sumber daya, dan kunci syarat untuk Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

**Lihat contoh dan metrik CloudWatch **

Kebijakan berikut memungkinkan pengguna untuk melihat instans dalam konsol Amazon EC2, serta alarm dan metrik CloudWatch dalam tab **Monitoring** dari halaman **Instances**. Konsol Amazon EC2 menggunakan CloudWatch API untuk menampilkan alarm dan metrik, jadi Anda harus memberi pengguna izin untuk menggunakan`cloudwatch:DescribeAlarms`,,, `cloudwatch:DescribeAlarmsForMetric``cloudwatch:ListMetrics`, `cloudwatch:GetMetricStatistics` dan tindakan. `cloudwatch:GetMetricData`

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeInstances",
         "ec2:DescribeInstanceTypes",
         "cloudwatch:DescribeAlarms",
         "cloudwatch:DescribeAlarmsForMetric",
         "cloudwatch:ListMetrics",
         "cloudwatch:GetMetricStatistics",
         "cloudwatch:GetMetricData"
      ],
      "Resource": "*"
   }
   ]
}
```

------

## Contoh: Menggunakan wizard peluncuran instans EC2
<a name="ex-launch-wizard"></a>

Wizard peluncuran instans Amazon EC2 adalah layar yang menampilkan opsi untuk melakukan konfigurasi dan meluncurkan instans. Kebijakan Anda harus menyertakan izin untuk menggunakan tindakan API yang memungkinkan para pengguna untuk menggunakan opsi-opsi yang ditampilkan pemandu. Jika kebijakan Anda tidak menyertakan izin untuk menggunakan tindakan tersebut, beberapa item dalam pemandu tidak akan dapat dimuat dengan benar, dan pengguna tidak akan dapat menyelesaikan peluncuran.

**Akses wizard peluncuran instans dasar**

Agar berhasil menyelesaikan peluncuran, para pengguna harus diberi izin untuk menggunakan tindakan API `ec2:RunInstances`, dan setidaknya tindakan-tindakan API berikut ini:
+ `ec2:DescribeImages`: Untuk menampilkan dan memilih AMI.
+ `ec2:DescribeInstanceTypes`: Untuk menampilkan dan memilih tipe instans.
+ `ec2:DescribeVpcs`: Untuk menampilkan opsi-opsi jaringan yang tersedia.
+ `ec2:DescribeSubnets`: Untuk menampilkan semua subnet yang tersedia untuk VPC yang dipilih. 
+ `ec2:DescribeSecurityGroups` atau `ec2:CreateSecurityGroup`: Untuk menampilkan dan memilih grup keamanan yang sudah ada, atau untuk membuat grup keamanan yang baru. 
+ `ec2:DescribeKeyPairs` atau `ec2:CreateKeyPair`: Untuk memilih pasangan kunci yang sudah ada, atau untuk membuat pasangan kunci yang baru.
+ `ec2:AuthorizeSecurityGroupIngress`: Untuk menambahkan aturan ke dalam.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeImages",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeKeyPairs",
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:CreateSecurityGroup",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateKeyPair"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": "*"
        }
    ]
}
```

------

Anda dapat menambahkan tindakan-tindakan API pada kebijakan Anda untuk menyediakan lebih banyak opsi bagi para pengguna, sebagai contoh:
+ `ec2:DescribeAvailabilityZones`: Untuk menampilkan dan memilih Zona Ketersediaan tertentu.
+ `ec2:DescribeNetworkInterfaces`: Untuk menampilkan dan memilih antarmuka jaringan yang sudah ada untuk subnet yang dipilih.
+ Untuk menambahkan aturan-aturan ke luar untuk grup keamanan VPC, para pengguna harus mendapatkan izin untuk menggunakan tindakan API `ec2:AuthorizeSecurityGroupEgress`. Untuk melakukan modifikasi atau menghapus aturan-aturan yang sudah ada, para pengguna harus diberi izin untuk menggunakan tindakan API `ec2:RevokeSecurityGroup*` yang relevan.
+ `ec2:CreateTags`: Untuk memberikan tanda pada sumber daya yang dibuat oleh `RunInstances`. Untuk informasi selengkapnya, lihat [Berikan izin untuk menandai sumber daya Amazon EC2 selama pembuatan](supported-iam-actions-tagging.md). Jika pengguna tidak memiliki izin untuk menggunakan tindakan ini dan mereka berusaha untuk menerapkan tanda di halaman penandaan wizard peluncuran instans, maka peluncuran akan gagal.
**penting**  
Menentukan **Nama** saat meluncurkan instans membuat tanda dan memerlukan tindakan `ec2:CreateTags`. Anda harus berhati-hati dalam memberikan izin kepada para pengguna untuk menggunakan tindakan `ec2:CreateTags`, karena tindakan itu akan membatasi kemampuan Anda untuk menggunakan kunci syarat `aws:ResourceTag` untuk membatasi penggunaan sumber daya yang lain. Jika Anda memberikan izin kepada para pengguna untuk menggunakan tindakan `ec2:CreateTags`, mereka dapat mengubah tanda dari sumber daya untuk menembus pembatasan-pembatasan tersebut. Untuk informasi selengkapnya, lihat [Kontrol akses menggunakan akses berbasis atribut](iam-policies-for-amazon-ec2.md#control-access-with-tags).
+ Untuk menggunakan parameter Systems Manager saat Anda memilih AMI, Anda harus menambahkan `ssm:DescribeParameters` dan `ssm:GetParameters` pada kebijakan. `ssm:DescribeParameters` memberikan izin kepada pengguna untuk melihat dan memilih parameter Systems Manager. `ssm:GetParameters` memberikan izin kepada pengguna untuk mendapatkan nilai dari parameter Systems Manager. Anda juga dapat membatasi akses ke parameter Systems Manager tertentu. Untuk informasi selengkapnya, lihat **Membatasi akses ke parameter Systems Manager tertentu** yang juga ada dalam bagian ini.

Saat ini, tindakan API `Describe*` Amazon EC2 tidak mendukung izin tingkat sumber daya, sehingga Anda tidak dapat membatasi sumber daya individu mana yang dapat dilihat dalam wizard peluncuran instans. Akan tetapi, Anda dapat menerapkan izin tingkat sumber daya pada tindakan API `ec2:RunInstances` untuk membatasi sumber daya mana yang dapat digunakan oleh para pengguna untuk meluncurkan instans. Peluncuran tersebut akan gagal jika pengguna memilih opsi-opsi yang tidak mendapatkan otorisasi untuk digunakan. 

**Membatasi akses ke tipe instans, subnet, dan Wilayah tertentu**

Kebijakan berikut memungkinkan pengguna untuk meluncurkan instans `t2.micro` menggunakan AMIs yang dimiliki oleh Amazon, dan hanya ke dalam subnet khusus (`subnet-1a2b3c4d`). Pengguna hanya dapat meluncurkan di Wilayah yang ditentukan. Jika pengguna memilih Wilayah yang berbeda, atau memilih tipe instans, AMI, atau subnet yang berbeda dalam wizard peluncuran instans, maka peluncuran akan gagal. 

Pernyataan pertama memberikan izin kepada pengguna untuk melihat opsi dalam wizard peluncuran instans atau untuk membuat yang baru, sebagaimana yang telah dijelaskan dalam contoh di atas. Pernyataan kedua memberikan izin kepada para pengguna untuk menggunakan antarmuka jaringan, volume, pasangan kunci, grup keamanan, dan sumber daya subnet untuk tindakan `ec2:RunInstances`, yang diperlukan untuk meluncurkan instans ke dalam VPC. Untuk informasi selengkapnya tentang penggunaan tindakan `ec2:RunInstances`, lihat [Luncurkan instance () RunInstances](ExamplePolicies_EC2.md#iam-example-runinstances). Pernyataan ketiga dan keempat memberikan izin kepada pengguna untuk menggunakan masing-masing instans dan sumber daya AMI, tetapi hanya jika instans tersebut adalah instans `t2.micro`, serta hanya jika AMI tersebut dimiliki oleh Amazon atau partner tertentu yang tepercaya dan terverifikasi.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeInstances",
         "ec2:DescribeImages",
         "ec2:DescribeInstanceTypes",
         "ec2:DescribeKeyPairs", 
         "ec2:CreateKeyPair", 
         "ec2:DescribeVpcs", 
         "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", 
         "ec2:CreateSecurityGroup", 
         "ec2:AuthorizeSecurityGroupIngress"
	  ],
	  "Resource": "*"
   },
   {
      "Effect": "Allow",
      "Action":"ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-2:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-2:111122223333:volume/*",
         "arn:aws:ec2:us-east-2:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-2:111122223333:security-group/*",
         "arn:aws:ec2:us-east-2:111122223333:subnet/subnet-1a2b3c4d"
      ]
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-2:111122223333:instance/*"
      ],
      "Condition": {
         "StringEquals": {
            "ec2:InstanceType": "t2.micro"
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [ 
            "arn:aws:ec2:us-east-2::image/ami-*"
      ],
      "Condition": {
         "StringEquals": {
            "ec2:Owner": "amazon"
         }
      }
   }
   ]
}
```

------

**Membatasi akses ke parameter Systems Manager tertentu**

Kebijakan berikut ini memberikan akses untuk menggunakan parameter-parameter Systems Manager yang memiliki nama tertentu.

Pernyataan pertama memberikan izin kepada pengguna untuk menampilkan parameter Systems Manager saat memilih AMI dalam wizard peluncuran instans. Pernyataan kedua memberikan izin kepada para pengguna untuk menggunakan parameter yang mempunyai nama `prod-*`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ssm:DescribeParameters"
      ],
      "Resource": "*"
   },
   {
      "Effect": "Allow",
      "Action": [
         "ssm:GetParameters"
      ],
     "Resource": "arn:aws:ssm:us-east-2:123456123456:parameter/prod-*"
   }
   ]
}
```

------

## Contoh: Cara menggunakan grup keamanan
<a name="ex-security-groups"></a>

**Menampilkan grup keamanan dan menambah serta menghapus aturan**

Kebijakan berikut ini memberikan izin kepada para pengguna untuk menampilkan grup keamanan di konsol Amazon EC2, untuk menambahkan dan menghapus aturan ke dalam dan ke luar, dan untuk mencantumkan serta melakukan modifikasi terhadap deskripsi aturan untuk grup keamanan yang sudah ada yang memiliki tanda `Department=Test`.

Dalam pernyataan pertama, tindakan `ec2:DescribeTags` akan memungkinkan para pengguna untuk menampilkan tanda dalam konsol, yang dapat mempermudah para pengguna untuk mengidentifikasi grup keamanan yang diizinkan untuk dimodifikasi.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeSecurityGroups", 
         "ec2:DescribeSecurityGroupRules", 
         "ec2:DescribeTags"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:AuthorizeSecurityGroupIngress", 
         "ec2:RevokeSecurityGroupIngress", 
         "ec2:AuthorizeSecurityGroupEgress", 
         "ec2:RevokeSecurityGroupEgress", 
         "ec2:ModifySecurityGroupRules", 
         "ec2:UpdateSecurityGroupRuleDescriptionsIngress", 
         "ec2:UpdateSecurityGroupRuleDescriptionsEgress"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-2:111122223333:security-group/*"
      ],
      "Condition": {
         "StringEquals": {
            "aws:ResourceTag/Department": "Test"
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": [
         "ec2:ModifySecurityGroupRules"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-2:111122223333:security-group-rule/*"
      ]
   }
]}
```

------

**Cara menggunakan kotak dialog Buat Grup Keamanan**

Anda dapat membuat kebijakan yang memungkinkan para pengguna untuk menggunakan kotak dialog **Buat Grup Keamanan** yang ada dalam konsol Amazon EC2. Untuk menggunakan kotak dialog ini, para pengguna harus diberi izin untuk menggunakan setidaknya tindakan-tindakan API berikut ini:
+ `ec2:CreateSecurityGroup`: Untuk membuat grup keamanan yang baru. 
+ `ec2:DescribeVpcs`: Untuk melihat daftar yang ada VPCs di daftar **VPC**.

Dengan izin tersebut, para pengguna dapat membuat grup keamanan baru dengan sukses, tetapi mereka tidak akan dapat menambahkan aturan apa pun pada grup keamanan tersebut. Untuk menggunakan aturan-aturan yang ada dalam kotak dialog **Buat Grup Keamanan**, Anda dapat menambahkan tindakan-tindakan API berikut pada kebijakan Anda:
+ `ec2:AuthorizeSecurityGroupIngress`: Untuk menambahkan aturan ke dalam.
+ `ec2:AuthorizeSecurityGroupEgress`: Untuk menambahkan aturan ke luar pada grup keamanan VPC.
+ `ec2:RevokeSecurityGroupIngress`: Untuk melakukan modifikasi atau membuang aturan ke dalam yang sudah ada. Tindakan-tindakan ini berguna untuk memungkinkan para pengguna menggunakan fitur **Salin ke yang baru** yang ada dalam konsol. Fitur ini akan membuka kotak dialog **Buat Grup Keamanan** dan mengisinya dengan aturan-aturan yang sama seperti grup keamanan yang sudah dipilih. 
+ `ec2:RevokeSecurityGroupEgress`: Untuk melakukan modifikasi atau penghapusan terhadap aturan-aturan ke luar untuk grup keamanan VPC. Hal ini berguna untuk memungkinkan para pengguna untuk melakukan modifikasi terhadap atau menghapus aturan ke luar default yang mengizinkan semua lalu lintas ke luar.
+ `ec2:DeleteSecurityGroup`: Untuk melayani ketika aturan-aturan yang tidak valid tidak dapat disimpan. Pertama-tama konsol akan membuat grup keamanan, kemudian akan menambahkan aturan-aturan tertentu. Jika aturan tidak valid, maka tindakan tersebut akan gagal, dan konsol akan mencoba menghapus grup keamanan. Para pengguna akan tetap berada dalam kotak dialog **Buat Grup Keamanan** sehingga mereka dapat melakukan koreksi atas aturan-aturan yang tidak valid dan mencoba membuat grup keamanan lagi. Tindakan API ini tidak diperlukan, tetapi jika seorang pengguna tidak diberikan izin untuk menggunakannya dan berusaha untuk membuat grup keamanan dengan aturan-aturan yang tidak valid, maka grup keamanan akan dibuat tanpa aturan apa pun, dan pengguna tersebut harus menambahkan aturan-aturan setelahnya.
+ `ec2:UpdateSecurityGroupRuleDescriptionsIngress`: Untuk menambahkan atau memperbarui deskripsi aturan grup keamanan ingress (ke dalam).
+ `ec2:UpdateSecurityGroupRuleDescriptionsEgress`: Untuk menambahkan atau memperbarui deskripsi aturan grup keamanan egress (ke luar).
+ `ec2:ModifySecurityGroupRules`: Untuk mengubah aturan grup keamanan.
+ `ec2:DescribeSecurityGroupRules`: Untuk mencantumkan aturan grup keamanan.

Kebijakan berikut ini akan memberikan izin kepada para pengguna untuk menggunakan kotak dialog **Buat Grup Keamanan** dan untuk membuat aturan-aturan ke dalam dan ke luar untuk grup keamanan yang dikaitkan dengan VPC tertentu (`vpc-1a2b3c4d`). Pengguna dapat membuat grup keamanan untuk VPC, tetapi mereka tidak dapat menambahkan aturan apa pun pada grup keamanan tersebut. Demikian pula, para pengguna tidak dapat menambahkan aturan apa pun ke grup keamanan yang ada yang tidak dikaitkan dengan VPC `vpc-1a2b3c4d`. Para pengguna juga diberikan izin untuk menampilkan semua grup keamanan di konsol. Hal ini akan mempermudah para pengguna untuk mengidentifikasi grup keamanan yang padanya dapat mereka tambahkan aturan-aturan ke dalam. Kebijakan ini juga memberikan izin kepada para pengguna untuk menghapus grup keamanan yang dikaitkan dengan VPC `vpc-1a2b3c4d`. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeSecurityGroups", 
        "ec2:CreateSecurityGroup", 
        "ec2:DescribeVpcs"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteSecurityGroup", 
        "ec2:AuthorizeSecurityGroupIngress", 
        "ec2:AuthorizeSecurityGroupEgress"
      ],
      "Resource": "arn:aws:ec2:us-east-2:111122223333:security-group/*",
      "Condition":{
         "ArnEquals": {
            "ec2:Vpc": "arn:aws:ec2:us-east-2:111122223333:vpc/vpc-1a2b3c4d"
         }
      }
    }
   ]
}
```

------

## Contoh: Cara menggunakan alamat IP Elastis
<a name="ex-eip"></a>

Untuk memungkinkan para pengguna menampilkan alamat IP Elastis dalam konsol Amazon EC2, Anda harus memberikan izin kepada para pengguna untuk menggunakan tindakan `ec2:DescribeAddresses`.

Agar pengguna dapat menggunakan alamat IP Elastis, Anda dapat menambahkan tindakan-tindakan berikut pada kebijakan Anda.
+ `ec2:AllocateAddress`: Untuk mengalokasikan alamat IP Elastis.
+ `ec2:ReleaseAddress`: Untuk merilis alamat IP Elastis.
+ `ec2:AssociateAddress`: Untuk mengaitkan alamat IP Elastis dengan instans atau antarmuka jaringan.
+ `ec2:DescribeNetworkInterfaces` dan `ec2:DescribeInstances`: Untuk menggunakan layar **Kaitkan alamat**. Layar tersebut akan menampilkan instans atau antarmuka jaringan yang tersedia yang bisa Anda gunakan untuk mengaitkan alamat IP Elastis.
+ `ec2:DisassociateAddress`: Untuk melepaskan pengaitan alamat IP Elastis dari instans atau antarmuka jaringan.

Kebijakan berikut ini akan memungkinkan para pengguna untuk menampilkan, mengalokasikan, dan mengaitkan alamat IP Elastis dengan instans. Para pengguna tidak dapat mengaitkan alamat IP Elastis dengan antarmuka jaringan, melepaskan pengaitan alamat IP Elastis, atau merilisnya.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeAddresses",
                "ec2:AllocateAddress",
                "ec2:DescribeInstances",
                "ec2:AssociateAddress"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Contoh: Cara Menggunakan Instans Cadangan
<a name="ex-reservedinstances"></a>

Kebijakan berikut mengizinkan pengguna untuk menampilkan dan memodifikasi Instans Terpesan dalam akun Anda, serta membeli Instans Terpesan baru dalam Konsol Manajemen AWS.

Kebijakan ini akan memungkinkan para pengguna untuk menampilkan semua Instans Cadangan, serta Instans Sesuai Permintaan, dalam akun tersebut. Pengaturan izin tingkat sumber daya untuk masing-masing Instans Cadangan tidak dapat dilakukan.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeReservedInstances", 
         "ec2:ModifyReservedInstances",
         "ec2:PurchaseReservedInstancesOffering", 
         "ec2:DescribeInstances",
         "ec2:DescribeInstanceTypes",
         "ec2:DescribeAvailabilityZones", 
         "ec2:DescribeReservedInstancesOfferings"
      ],
      "Resource": "*"
   }
   ]
}
```

------

Tindakan `ec2:DescribeAvailabilityZones` dibutuhkan untuk memastikan bahwa konsol Amazon EC2 dapat menampilkan informasi tentang Zona Ketersediaan di mana Anda dapat membeli Instans Cadangan. Tindakan `ec2:DescribeInstances` tidak diperlukan, tetapi dapat memastikan bahwa pengguna dapat menampilkan instans dalam akun dan membeli cadangan agar sesuai dengan spesifikasi yang semestinya.

Anda dapat menyesuaikan tindakan API untuk membatasi akses pengguna, sebagai contoh, menghapus `ec2:DescribeInstances` dan `ec2:DescribeAvailabilityZones` artinya pengguna memiliki akses hanya-baca.

# AWS kebijakan terkelola untuk Amazon EC2
<a name="security-iam-awsmanpol"></a>

Untuk menambahkan izin ke pengguna, grup, dan peran, lebih mudah menggunakan kebijakan AWS terkelola daripada menulis kebijakan sendiri. Dibutuhkan waktu dan keahlian untuk [membuat kebijakan yang dikelola pelanggan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) yang hanya memberi tim Anda izin yang mereka butuhkan. Untuk memulai dengan cepat, Anda dapat menggunakan kebijakan AWS terkelola kami. Kebijakan ini mencakup kasus penggunaan umum dan tersedia di AWS akun Anda. Untuk informasi selengkapnya tentang kebijakan AWS [AWS terkelola, lihat kebijakan terkelola](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) di *Panduan Pengguna IAM*.

AWS layanan memelihara dan memperbarui kebijakan AWS terkelola. Anda tidak dapat mengubah izin dalam kebijakan AWS terkelola. Layanan terkadang menambahkan izin tambahan ke kebijakan yang dikelola AWS untuk mendukung fitur-fitur baru. Jenis pembaruan ini akan memengaruhi semua identitas (pengguna, grup, dan peran) di mana kebijakan tersebut dilampirkan. Layanan kemungkinan besar akan memperbarui kebijakan yang dikelola AWS saat ada fitur baru yang diluncurkan atau saat ada operasi baru yang tersedia. Layanan tidak menghapus izin dari kebijakan AWS terkelola, sehingga pembaruan kebijakan tidak akan merusak izin yang ada.

Selain itu, AWS mendukung kebijakan terkelola untuk fungsi pekerjaan yang mencakup beberapa layanan. Misalnya, kebijakan **ReadOnlyAccess** AWS terkelola menyediakan akses hanya-baca ke semua AWS layanan dan sumber daya. Saat layanan meluncurkan fitur baru, AWS tambahkan izin hanya-baca untuk operasi dan sumber daya baru. Untuk melihat daftar dan deskripsi dari kebijakan fungsi tugas, lihat [kebijakan yang dikelola AWS untuk fungsi tugas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) di *Panduan Pengguna IAM*.

## AWS kebijakan terkelola: AmazonEC2FullAccess
<a name="security-iam-awsmanpol-AmazonEC2FullAccess"></a>

Anda dapat melampirkan kebijakan `AmazonEC2FullAccess` ke identitas-identitas IAM Anda. Kebijakan ini akan memberikan izin yang mengizinkan akses penuh ke Amazon EC2.

Untuk melihat izin kebijakan ini, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2FullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2FullAccess.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: AmazonEC2ReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonEC2ReadOnlyAccess"></a>

Anda dapat melampirkan kebijakan `AmazonEC2ReadOnlyAccess` ke identitas-identitas IAM Anda. Kebijakan ini memberikan izin yang memungkinkan akses hanya-baca ke Amazon EC2.

Untuk melihat izin kebijakan ini, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ReadOnlyAccess.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: AmazonEC2ImageReferencesAccessPolicy
<a name="security-iam-awsmanpol-AmazonEC2ImageReferencesAccessPolicy"></a>

Anda dapat melampirkan kebijakan `AmazonEC2ImageReferencesAccessPolicy` ke identitas IAM Anda. Kebijakan ini memberikan izin yang diperlukan untuk menggunakan DescribeImageReferences API EC2, termasuk izin untuk melihat instans EC2, template peluncuran, parameter Systems Manager, dan resep Image Builder. Kebijakan mendukung `IncludeAllResourceTypes` bendera dan akan terus berfungsi saat AWS menambahkan dukungan untuk jenis sumber daya baru, sehingga menghilangkan kebutuhan akan pembaruan kebijakan di masa mendatang.

Untuk melihat izin kebijakan ini, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: AWSEC2CapacityReservationFleetRolePolicy
<a name="security-iam-awsmanpol-AWSEC2CapacityReservationFleetRolePolicy"></a>

Kebijakan ini dilampirkan pada peran terkait layanan yang diberi nama **AWSServiceRoleForEC2CapacityReservationFleet**untuk memungkinkan layanan membuat, memodifikasi, dan membatalkan Reservasi Kapasitas dalam Armada Reservasi Kapasitas atas nama Anda. Untuk informasi selengkapnya, lihat [Menggunakan peran tertaut layanan untuk Armada Reservasi KapasitasMenggunakan peran terkait layanan untuk Manajer Kapasitas EC2](using-service-linked-roles.md).

Untuk melihat izin kebijakan ini, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2CapacityReservationFleetRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2CapacityReservationFleetRolePolicy.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: AWSEC2FleetServiceRolePolicy
<a name="security-iam-awsmanpol-AWSEC2FleetServiceRolePolicy"></a>

Kebijakan ini dilampirkan pada peran tertaut layanan yang mempunyai nama **AWSServiceRoleForEC2Fleet** untuk mengizinkan Armada EC2 meminta, meluncurkan, mengakhiri, dan memberi tanda pada instans atas nama Anda. Untuk informasi selengkapnya, lihat [Peran tertaut layanan untuk Armada EC2](ec2-fleet-prerequisites.md#ec2-fleet-service-linked-role).

Untuk melihat izin kebijakan ini, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2FleetServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2FleetServiceRolePolicy.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: AWSEC2SpotFleetServiceRolePolicy
<a name="security-iam-awsmanpol-AWSEC2SpotFleetServiceRolePolicy"></a>

Kebijakan ini dilampirkan pada peran tertaut layanan yang mempunyai nama **AWSServiceRoleForEC2SpotFleet** untuk mengizinkan Armada Spot meluncurkan dan mengelola instans atas nama Anda. Untuk informasi selengkapnya, lihat [Peran tertaut layanan untuk Armada Spot](spot-fleet-prerequisites.md#service-linked-roles-spot-fleet-requests).

Untuk melihat izin kebijakan ini, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2SpotFleetServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2SpotFleetServiceRolePolicy.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: AWSEC2SpotServiceRolePolicy
<a name="security-iam-awsmanpol-AWSEC2SpotServiceRolePolicy"></a>

Kebijakan ini dilampirkan pada peran tertaut layanan yang mempunyai nama **AWSServiceRoleForEC2Spot** untuk mengizinkan Amazon EC2 meluncurkan dan mengelola Instans Spot atas nama Anda. Untuk informasi selengkapnya, lihat [Peran tertaut layanan untuk permintaan Instans Spot](service-linked-roles-spot-instance-requests.md).

Untuk melihat izin kebijakan ini, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2SpotServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2SpotServiceRolePolicy.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: AWSEC2VssSnapshotPolicy
<a name="security-iam-awsmanpol-AWSEC2VssSnapshotPolicy"></a>

Anda dapat melampirkan kebijakan terkelola ini ke peran profil instans IAM yang Anda gunakan untuk instans Windows Amazon EC2. Kebijakan ini memberikan izin untuk mengizinkan Amazon EC2 membuat dan mengelola snapshot VSS atas nama Anda.

Untuk melihat izin kebijakan ini, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2VssSnapshotPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2VssSnapshotPolicy.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: DeclarativePoliciesEC2Report
<a name="security-iam-awsmanpol-DeclarativePoliciesEC2Report"></a>

Kebijakan ini dilampirkan ke peran terkait layanan yang diberi nama `AWSServiceRoleForDeclarativePoliciesEC2Report` untuk menyediakan akses ke hanya-baca yang APIs diperlukan untuk menghasilkan laporan status akun untuk kebijakan deklaratif.

Untuk melihat izin kebijakan ini, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/DeclarativePoliciesEC2Report.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/DeclarativePoliciesEC2Report.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: EC2FastLaunchFullAccess
<a name="security-iam-awsmanpol-EC2FastLaunchFullAccess"></a>

Anda dapat melampirkan `EC2FastLaunchFullAccess` kebijakan ke profil instans atau peran IAM lainnya. Kebijakan ini memberikan akses penuh ke tindakan Peluncuran Cepat EC2, dan izin yang ditargetkan sebagai berikut.

**Detail izin**
+ **Peluncuran Cepat EC2** — Akses administratif diberikan, sehingga peran dapat mengaktifkan atau menonaktifkan Peluncuran Cepat EC2, dan menggambarkan gambar Peluncuran Cepat EC2.
+ **Amazon EC2** — Akses diberikan untuk operasi Amazon RunInstances EC2CreateTags,, Jelaskan, dan Buat dan Ubah Peluncuran Template. Akses juga diberikan untuk membuat sumber daya jaringan dan grup keamanan, mengotorisasi aturan masuk, dan menghapus sumber daya yang dibuat oleh Peluncuran Cepat EC2.
+ **IAM** — Akses diberikan untuk mendapatkan dan menggunakan profil instance yang namanya berisi `ec2fastlaunch` untuk membuat peran EC2FastLaunchServiceRolePolicy terkait layanan.
+ **CloudFormation**— Akses diberikan untuk EC2 Fast Launch untuk mendeskripsikan dan membuat CloudFormation tumpukan, dan untuk menghapus tumpukan yang dibuatnya.

Untuk melihat izin kebijakan ini, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2FastLaunchFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2FastLaunchFullAccess.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: AWSEC2CapacityManagerServiceRolePolicy
<a name="security-iam-awsmanpol-AWSEC2CapacityManagerServiceRolePolicy"></a>

Kebijakan ini dilampirkan pada peran terkait layanan yang diberi nama **AWSServiceRoleForEC2CapacityManager**untuk memungkinkan Manajer Kapasitas EC2 mengelola sumber daya kapasitas dan berintegrasi dengan AWS Organizations atas nama Anda. Untuk informasi selengkapnya, lihat [Peran terkait layanan untuk Manajer Kapasitas EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-service-linked-roles-cm.html).

Untuk melihat izin kebijakan ini, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2CapacityManagerServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2CapacityManagerServiceRolePolicy.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: EC2FastLaunchServiceRolePolicy
<a name="security-iam-awsmanpol-EC2FastLaunchServiceRolePolicy"></a>

Kebijakan ini dilampirkan ke peran terkait layanan yang diberi nama **AWSServiceRoleForEC2FastLaunch**untuk memungkinkan Amazon EC2 membuat dan mengelola sekumpulan snapshot yang telah disediakan sebelumnya yang mengurangi waktu yang diperlukan untuk meluncurkan instans dari AMI berkemampuan Peluncuran Cepat EC2 Anda. Untuk informasi selengkapnya, lihat [Peran terkait layanan untuk Peluncuran Cepat EC2](slr-windows-fast-launch.md).

Untuk melihat izin kebijakan ini, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2FastLaunchServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2FastLaunchServiceRolePolicy.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: Ec2InstanceConnect
<a name="Ec2InstanceConnect"></a>

Anda dapat melampirkan kebijakan `Ec2InstanceConnect` ke identitas IAM Anda. Kebijakan ini memberikan izin yang memungkinkan pelanggan memanggil EC2 Instance Connect untuk mempublikasikan kunci sementara ke instans EC2 mereka dan terhubung melalui ssh atau CLI Instans Connect EC2.

Untuk melihat izin kebijakan ini, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2InstanceConnect.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2InstanceConnect.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: Ec2InstanceConnectEndpoint
<a name="Ec2InstanceConnectEndpoint"></a>

Kebijakan ini dilampirkan ke peran terkait layanan yang diberi nama **AWSServiceRoleForEC2InstanceConnect**untuk mengizinkan Titik Akhir Koneksi Instans EC2 melakukan tindakan atas nama Anda. Untuk informasi selengkapnya, lihat [Peran tertaut layanan untuk EC2 Instance Connect Endpoint](eice-slr.md).

Untuk melihat izin kebijakan ini, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/Ec2InstanceConnectEndpoint.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/Ec2InstanceConnectEndpoint.html)di *Referensi Kebijakan AWS Terkelola*. Untuk penjelasan tentang pembaruan kebijakan ini, lihat[Pembaruan Amazon EC2 ke AWS kebijakan terkelola](#security-iam-awsmanpol-updates).

## Pembaruan Amazon EC2 ke AWS kebijakan terkelola
<a name="security-iam-awsmanpol-updates"></a>

Lihat detail tentang pembaruan kebijakan AWS terkelola untuk Amazon EC2 sejak layanan ini mulai melacak perubahan ini.


| Ubah | Deskripsi | Date | 
| --- | --- | --- | 
|  [AWSEC2CapacityManagerServiceRolePolicy](#security-iam-awsmanpol-AWSEC2CapacityManagerServiceRolePolicy) – Kebijakan baru  | Amazon EC2 menambahkan kebijakan ini untuk memungkinkan Anda mengelola sumber daya kapasitas dan berintegrasi dengan AWS Organizations atas nama Anda. | Oktober 15, 2025 | 
|  [AmazonEC2ImageReferencesAccessPolicy](#security-iam-awsmanpol-AmazonEC2ImageReferencesAccessPolicy) – Kebijakan baru  | Amazon EC2 menambahkan kebijakan ini untuk memberikan izin untuk memindai semua jenis sumber daya yang didukung oleh API DescribeImageReferences EC2. | Agustus 26, 2025 | 
| [Ec2InstanceConnectEndpoint](#Ec2InstanceConnectEndpoint)— Kebijakan yang diperbarui | Untuk mendukung modifikasi Titik Akhir Instance Connect yang ada, Amazon EC2 memperbarui kebijakan ini untuk menambahkan izin untuk menetapkan dan membatalkan penetapan alamat IPv6 serta memodifikasi grup keamanan pada antarmuka jaringan yang dibuat oleh EC2 Instance Connect Endpoint. Amazon EC2 juga memperbarui kebijakan ini untuk mengganti operator Null kondisi dengan operator StringLike kondisi. | Juli 31, 2025 | 
| [EC2FastLaunchServiceRolePolicy](#security-iam-awsmanpol-EC2FastLaunchServiceRolePolicy)— Kebijakan yang diperbarui | Untuk membantu mencegah sumber daya yatim piatu, Amazon EC2 memperbarui kebijakan ini untuk menambahkan izin untuk mendeskripsikan volume, atribut volume, dan antarmuka jaringan, serta menghapus volume dan antarmuka jaringan yang dibuat oleh Peluncuran Cepat EC2. | Juli 17, 2025 | 
| [EC2FastLaunchFullAccess](#security-iam-awsmanpol-EC2FastLaunchFullAccess)— Kebijakan yang diperbarui | Amazon EC2 memperbarui kebijakan ini untuk menyertakan operasi Buat dan Ubah Peluncuran Template, untuk membuat sumber daya jaringan dan grup keamanan, mengotorisasi aturan masuk, dan menghapus sumber daya yang dibuat oleh Peluncuran Cepat EC2. Ini juga dapat menggambarkan dan membuat CloudFormation tumpukan, dan menghapus tumpukan yang dibuat oleh Peluncuran Cepat EC2. | 14 Mei 2025 | 
| [EC2FastLaunchServiceRolePolicy](#security-iam-awsmanpol-EC2FastLaunchServiceRolePolicy)— Kebijakan yang diperbarui | Amazon EC2 memperbarui kebijakan ini untuk menambahkan EventBridge akses Amazon untuk membuat dan mengelola aturan acara untuk Peluncuran Cepat EC2. Selain itu, EC2 Fast Launch sekarang dapat menjelaskan CloudFormation tumpukan, meluncurkan instance dari AMI yang terkait dengannya AWS License Manager, mendapatkan daftar AWS KMS hibah yang dibuatnya yang dapat dihentikan, dan menghapus template peluncuran yang dibuatnya. | 14 Mei 2025 | 
| [AWSEC2CapacityReservationFleetRolePolicy](#security-iam-awsmanpol-AWSEC2CapacityReservationFleetRolePolicy)— Izin yang diperbarui | Amazon EC2 memperbarui kebijakan AWSEC2CapacityReservationFleetRolePolicy terkelola untuk menggunakan operator ArnLike kondisi, bukan operator StringLike kondisi. | Maret 03, 2025 | 
| [AmazonEC2ReadOnlyAccess](#security-iam-awsmanpol-AmazonEC2ReadOnlyAccess)— Izin Ditambahkan | Amazon EC2 menambahkan izin yang memungkinkan Anda mengambil grup keamanan menggunakan operasi. GetSecurityGroupsForVpc | Desember 27, 2024 | 
| [EC2FastLaunchFullAccess](#security-iam-awsmanpol-EC2FastLaunchFullAccess) – Kebijakan baru | Amazon EC2 menambahkan kebijakan ini untuk melakukan tindakan API yang terkait dengan fitur Peluncuran Cepat EC2 dari instans. Kebijakan ini dapat dilampirkan ke profil instans untuk instance yang diluncurkan dari AMI yang diaktifkan Peluncuran Cepat EC2. | 14 Mei 2024 | 
| [AWSEC2VssSnapshotPolicy](#security-iam-awsmanpol-AWSEC2VssSnapshotPolicy) – Kebijakan baru | Amazon EC2 menambahkan AWSEC2VssSnapshotPolicy kebijakan yang berisi izin untuk membuat dan menambahkan tag ke Amazon Machine Images (AMIs) dan snapshot EBS. | Maret 28, 2024 | 
| [Ec2InstanceConnectEndpoint](#Ec2InstanceConnectEndpoint) – Kebijakan baru | Amazon EC2 menambahkan kebijakan. Ec2InstanceConnectEndpoint Kebijakan ini dilampirkan ke peran AWSServiceRoleForEC2InstanceConnectterkait layanan, untuk memungkinkan Amazon EC2 melakukan tindakan atas nama Anda saat Anda membuat Titik Akhir Koneksi Instans EC2. | Januari 24, 2023 | 
| [EC2FastLaunchServiceRolePolicy](#security-iam-awsmanpol-EC2FastLaunchServiceRolePolicy) – Kebijakan baru | Amazon EC2 menambahkan fitur Peluncuran Cepat EC2 untuk memungkinkan Windows AMIs meluncurkan instans lebih cepat dengan membuat serangkaian snapshot yang telah disediakan sebelumnya. | 26 November 2021 | 
| Amazon EC2 mulai melakukan pelacakan perubahan | Amazon EC2 mulai melacak perubahan pada kebijakan yang dikelola AWS  | 1 Maret 2021 | 

# IAM role untuk Amazon EC2
<a name="iam-roles-for-amazon-ec2"></a>

Aplikasi harus menandatangani permintaan API mereka dengan AWS kredensialnya. Oleh karena itu, jika Anda adalah seorang developer aplikasi, Anda membutuhkan strategi untuk mengelola kredensial untuk aplikasi-aplikasi Anda yang berjalan pada instans EC2. Sebagai contoh, Anda dapat mendistribusikan kredensial AWS Anda dengan aman ke instans, yang mana hal itu akan memungkinkan aplikasi-aplikasi pada instans tersebut untuk menggunakan kredensial Anda untuk menandatangani permintaan, sekaligus melindungi kredensial Anda dari pengguna lain. Namun, sulit untuk mendistribusikan kredensil secara aman ke setiap instans, terutama yang AWS dibuat atas nama Anda, seperti Instans Spot atau instans di grup Auto Scaling. Anda juga harus dapat memperbarui kredensional pada setiap instance ketika Anda memutar kredensional Anda. AWS 

Kami merancang IAM role agar aplikasi-aplikasi Anda dapat membuat permintaan API dengan aman dari instans Anda, tanpa mengharuskan Anda mengelola kredensial keamanan yang digunakan oleh aplikasi-aplikasi tersebut. Alih-alih membuat dan mendistribusikan AWS kredensional Anda, Anda dapat mendelegasikan izin untuk membuat permintaan API menggunakan peran IAM sebagai berikut:

1. Buat peran IAM.

1. Tentukan akun atau AWS layanan mana yang dapat mengambil peran.

1. Tentukan tindakan dan sumber daya API mana yang dapat digunakan oleh aplikasi setelah peran tersebut diambil.

1. Tentukan peran saat Anda meluncurkan instans Anda, atau lampirkan peran tersebut ke instans yang sudah ada.

1. Buatlah aplikasi tersebut mengambil satu set kredensial sementara lalu gunakan kredensial tersebut.

Sebagai contoh, Anda dapat menggunakan IAM role untuk memberikan izin ke aplikasi-aplikasi yang berjalan pada instans Anda yang harus menggunakan bucket dalam Amazon Simple Storage Service (Amazon S3). Anda dapat menentukan izin untuk IAM role dengan membuat kebijakan dalam format JSON. Peran ini mirip dengan kebijakan yang Anda buat untuk pengguna. Jika Anda mengubah peran, maka perubahan itu akan disebarkan ke semua instans.

**catatan**  
Kredensi peran Amazon EC2 IAM tidak tunduk pada durasi sesi maksimum yang dikonfigurasi dalam peran. Untuk informasi selengkapnya, lihat [Metode untuk mengambil peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dalam *Panduan Pengguna IAM*.

Saat Anda membuat IAM role, kaitkan kebijakan IAM dengan hak akses paling rendah yang membatasi akses ke panggilan API tertentu yang diperlukan oleh aplikasi. Untuk Windows-to-Windows komunikasi, gunakan grup dan peran Windows yang terdefinisi dengan baik dan terdokumentasi dengan baik untuk memberikan akses tingkat aplikasi antara instance Windows. Grup dan peran memungkinkan pelanggan untuk menentukan izin aplikasi dengan hak akses paling rendah dan izin tingkat folder NTFS untuk membatasi akses ke persyaratan spesifik aplikasi.

Anda hanya dapat melampirkan satu IAM role saja ke instans, tapi Anda dapat melampirkan peran yang sama ke banyak instans. Untuk informasi selengkapnya tentang cara membuat dan menggunakan IAM role, lihat [Peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) dalam *Panduan Pengguna IAM*.

Anda dapat menerapkan izin tingkat sumber daya pada kebijakan IAM Anda untuk mengontrol kemampuan pengguna dalam melampirkan, mengganti, atau melepaskan IAM role yang dilampirkan ke instans. Untuk informasi selengkapnya, lihat [Izin tingkat sumber daya yang mendukung tindakan API Amazon EC2](iam-policies-for-amazon-ec2.md#ec2-supported-iam-actions-resources) dan contoh berikut ini: [Contoh: Cara Menggunakan IAM role](ExamplePolicies_EC2.md#iam-example-iam-roles).

**Topics**
+ [Profil instans](#ec2-instance-profile)
+ [Izin untuk kasus penggunaan Anda](#generate-policy-for-iam-role)
+ [Ambil kredensi keamanan](instance-metadata-security-credentials.md)
+ [Izin untuk melampirkan peran ke instance](permission-to-pass-iam-roles.md)
+ [Lampirkan peran ke sebuah instance](attach-iam-role.md)
+ [Peran identitas instans](#ec2-instance-identity-roles)

## Profil instans
<a name="ec2-instance-profile"></a>

Amazon EC2 menggunakan *profil instans* sebagai kontainer untuk IAM role. Saat Anda membuat IAM role menggunakan konsol IAM, konsol akan membuat profil instans secara otomatis dan memberikan nama yang sama sesuai dengan perannya. Jika Anda menggunakan konsol Amazon EC2 untuk meluncurkan instans dengan IAM role atau untuk melampirkan IAM role ke instans, Anda dapat memilih peran tersebut berdasarkan daftar nama profil instans. 

Jika Anda menggunakan API AWS CLI, atau AWS SDK untuk membuat peran, Anda membuat profil peran dan instance sebagai tindakan terpisah, dengan nama yang berpotensi berbeda. Jika Anda kemudian menggunakan AWS CLI, API, atau AWS SDK untuk meluncurkan instance dengan peran IAM atau melampirkan peran IAM ke instance, tentukan nama profil instance. 

 profil instans hanya dapat berisi satu IAM role saja. Anda dapat menyertakan peran IAM dalam beberapa profil instans.

Untuk memperbarui izin untuk sebuah instance, ganti profil instance-nya. Kami tidak menyarankan untuk menghapus peran dari profil instance, karena ada penundaan hingga satu jam sebelum perubahan ini berlaku.

Untuk informasi selengkapnya, lihat [Menggunakan profil instans](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) di *Panduan Pengguna IAM*.

## Izin untuk kasus penggunaan Anda
<a name="generate-policy-for-iam-role"></a>

Ketika Anda pertama kali membuat IAM role untuk aplikasi-aplikasi Anda, terkadang Anda mungkin harus memberikan izin melebihi yang diperlukan. Sebelum meluncurkan aplikasi Anda di lingkungan produksi Anda, Anda dapat membuat kebijakan IAM yang berbasis aktivitas akses untuk IAM role. IAM Access Analyzer meninjau AWS CloudTrail log Anda dan menghasilkan templat kebijakan yang berisi izin yang telah digunakan oleh peran dalam rentang tanggal yang ditentukan. Anda dapat menggunakan templat tersebut untuk membuat kebijakan terkelola dengan izin yang sangat terperinci dan kemudian melampirkan kebijakan itu ke IAM role. Dengan begitu, Anda hanya memberikan izin yang diperlukan peran untuk berinteraksi dengan AWS sumber daya untuk kasus penggunaan spesifik Anda. Hal ini akan membantu Anda untuk lebih mematuhi praktik terbaik dalam [memberikan hak akses paling rendah](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege). Untuk informasi selengkapnya, lihat [pembuatan kebijakan IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html) di Panduan Pengguna *IAM*.

# Mengambil kredensial keamanan dari metadata instans
<a name="instance-metadata-security-credentials"></a>

 aplikasi pada instans akan mengambil kredensial keamanan yang disediakan oleh peran dari item metadata instans `iam/security-credentials/`*role-name*. Aplikasi ini diberi izin untuk tindakan-tindakan dan sumber daya yang telah Anda tentukan untuk peran tersebut melalui kredensial keamanan yang dikaitkan dengan peran tersebut. Kredensial keamanan ini bersifat sementara dan kami memutar kredensial tersebut secara otomatis. Kami menyediakan kredensial yang baru setidaknya lima menit sebelum kredensial lama kedaluwarsa.

Untuk informasi selengkapnya tentang metadata instans, lihat [Gunakan metadata instans untuk mengelola instans EC2](ec2-instance-metadata.md).

**Awas**  
Jika Anda menggunakan layanan-layanan yang menggunakan metadata instans dengan IAM role, pastikan Anda tidak mengekspos kredensial Anda saat layanan-layanan tersebut melakukan panggilan HTTP atas nama Anda. Jenis layanan yang dapat mengekspos kredensil Anda termasuk proxy HTTP, layanan HTML/CSS validator, dan prosesor XHTML yang mendukung inklusi XHTML.

Untuk beban kerja Amazon EC2, sebaiknya Anda mengambil kredensial sesi menggunakan metode yang dijelaskan di bawah ini. Kredensial ini harus memungkinkan beban kerja Anda membuat permintaan API AWS , tanpa perlu menggunakan `sts:AssumeRole` untuk mengambil peran yang sama yang sudah dikaitkan dengan instans. Kecuali jika Anda perlu meneruskan tanda sesi untuk kontrol akses berbasis atribut (ABAC) atau meneruskan kebijakan sesi guna membatasi izin peran lebih lanjut, panggilan pengambilan peran tersebut tidak diperlukan karena panggilan tersebut membuat kumpulan baru kredensial sesi peran sementara yang sama.

Jika beban kerja menggunakan peran untuk mengambil dirinya sendiri, Anda harus membuat kebijakan kepercayaan yang secara eksplisit memungkinkan peran tersebut untuk mengambil dirinya sendiri. Jika Anda tidak membuat kebijakan kepercayaan, Anda mendapatkan `AccessDenied` kesalahan. Untuk informasi selengkapnya, lihat [Memperbarui kebijakan kepercayaan peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-trust-policy.html) di *Panduan Pengguna IAM*.

------
#### [ IMDSv2 ]

**Linux**  
Jalankan perintah berikut dari instance Linux Anda untuk mengambil kredensi keamanan untuk peran IAM.

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

**Windows**  
Jalankan cmdlet berikut dari instance Windows Anda untuk mengambil kredenal keamanan untuk peran IAM.

```
[string]$token = Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

------
#### [ IMDSv1 ]

**Linux**  
Jalankan perintah berikut dari instance Linux Anda untuk mengambil kredensi keamanan untuk peran IAM.

```
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

**Windows**  
Jalankan cmdlet berikut dari instance Windows Anda untuk mengambil kredenal keamanan untuk peran IAM.

```
Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

------

Berikut ini adalah output contoh. *Jika Anda tidak dapat mengambil kredensi keamanan, lihat [Saya tidak dapat mengakses kredensil keamanan sementara pada instans EC2 saya di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_iam-ec2.html#troubleshoot_iam-ec2_no-keys).*

```
{
  "Code" : "Success",
  "LastUpdated" : "2012-04-26T16:39:16Z",
  "Type" : "AWS-HMAC",
  "AccessKeyId" : "ASIAIOSFODNN7EXAMPLE",
  "SecretAccessKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
  "Token" : "token",
  "Expiration" : "2017-05-17T15:09:54Z"
}
```

Untuk aplikasi, AWS CLI, dan Alat untuk PowerShell perintah Windows yang berjalan pada instance, Anda tidak perlu secara eksplisit mendapatkan kredensil keamanan sementara — AWS SDKs, AWS CLI, dan Alat untuk Windows PowerShell secara otomatis mendapatkan kredensil dari layanan metadata instans EC2 dan menggunakannya. Untuk membuat panggilan di luar instans menggunakan kredensial keamanan sementara (sebagai contoh, untuk menguji kebijakan IAM), Anda harus menyediakan kunci akses, kunci rahasia, dan token sesi. Untuk informasi selengkapnya, lihat [Menggunakan Kredensil Keamanan Sementara untuk Meminta Akses ke AWS Sumber Daya](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) di Panduan Pengguna *IAM*.

# Berikan izin untuk melampirkan peran IAM ke instance
<a name="permission-to-pass-iam-roles"></a>

Identitas di Anda Akun AWS, seperti pengguna IAM, harus memiliki izin khusus untuk meluncurkan instans Amazon EC2 dengan peran IAM, melampirkan peran IAM ke instance, mengganti peran IAM untuk sebuah instance, atau melepaskan peran IAM dari sebuah instance. Anda harus memberikan izin untuk menggunakan tindakan API berikut seperti yang diperlukan:
+ `iam:PassRole`
+ `ec2:AssociateIamInstanceProfile`
+ `ec2:DisassociateIamInstanceProfile`
+ `ec2:ReplaceIamInstanceProfileAssociation`

**catatan**  
Jika Anda menentukan sumber daya untuk `iam:PassRole` as`*`, ini akan memberikan akses untuk meneruskan peran IAM Anda ke sebuah instance. Untuk mengikuti praktik terbaik dengan [hak istimewa terkecil](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege), tentukan peran IAM tertentu dengan`iam:PassRole`, seperti yang ditunjukkan dalam contoh kebijakan di bawah ini. ARNs 

**Contoh kebijakan untuk akses terprogram**  
Kebijakan IAM berikut memberikan izin untuk meluncurkan instans dengan peran IAM, melampirkan peran IAM ke instance, atau mengganti peran IAM untuk instans menggunakan atau Amazon EC2 API. AWS CLI 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances",
         "ec2:AssociateIamInstanceProfile",
         "ec2:DisassociateIamInstanceProfile",
         "ec2:ReplaceIamInstanceProfileAssociation"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::123456789012:role/DevTeam*"
    }
  ]
}
```

------

**Persyaratan tambahan untuk akses konsol**  
Untuk memberikan izin untuk menyelesaikan tugas yang sama menggunakan konsol Amazon EC2, Anda juga harus menyertakan tindakan API`iam:ListInstanceProfiles`.

# Melampirkan IAM role ke instans
<a name="attach-iam-role"></a>

Anda dapat membuat IAM role dan melampirkan peran itu ke instans selama atau setelah peluncuran dilakukan. Anda juga dapat mengganti atau melepaskan peran IAM.

**Membuat dan melampirkan peran IAM selama peluncuran instance (Disarankan)**

1. Selama peluncuran instans EC2, perluas **Detail lanjutan**.

1. Di bagian **profil instans IAM**, pilih **Buat peran IAM baru**.

1. Formulir pembuatan peran inline terbuka, memungkinkan Anda untuk:
   + Tentukan **nama Peran** (misalnya,`EC2-S3-Access-Role`)
   + Tentukan izin dengan memilih kebijakan AWS terkelola atau membuat kebijakan khusus untuk instans Anda

     Misalnya, untuk memberikan akses S3, pilih kebijakan `AmazonS3ReadOnlyAccess` terkelola
   + Tinjau kebijakan kepercayaan yang memungkinkan `ec2.amazonaws.com` untuk mengambil peran
   + Tambahkan tag opsional untuk metadata

1. Pilih **Buat peran**.

   Peran yang baru dibuat dipilih secara otomatis dan akan dilampirkan ke instance Anda melalui profil instance saat instance diluncurkan.

**catatan**  
Saat Anda membuat peran menggunakan konsol selama peluncuran instance, profil instance dengan nama yang sama dengan peran akan dibuat secara otomatis. Profil instance adalah wadah yang meneruskan informasi peran IAM ke instance saat diluncurkan.

**penting**  
Anda hanya dapat melampirkan satu IAM role saja ke instans, tapi Anda dapat melampirkan peran yang sama ke banyak instans.
Mengaitkan kebijakan IAM dengan hak istimewa paling sedikit yang membatasi akses ke panggilan API tertentu yang dibutuhkan aplikasi.

Untuk informasi selengkapnya tentang cara membuat dan menggunakan IAM role, lihat [Peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) dalam *Panduan Pengguna IAM*.

**Melampirkan peran IAM yang ada selama peluncuran instans**  
Untuk melampirkan peran IAM yang ada ke instans saat peluncuran menggunakan konsol Amazon EC2, **perluas** Detail lanjutan. Untuk **profil instans IAM**, pilih peran IAM dari daftar dropdown.

**catatan**  
Jika Anda membuat peran IAM menggunakan konsol IAM, profil instance dibuat untuk Anda dan diberi nama yang sama dengan peran tersebut. Jika Anda membuat peran IAM menggunakan API AWS CLI, atau AWS SDK, Anda mungkin telah memberikan nama yang berbeda pada profil instans Anda dari peran tersebut.

Anda dapat melampirkan peran IAM ke instance yang sedang berjalan atau dihentikan. Jika instance sudah memiliki peran IAM yang terpasang, Anda harus menggantinya dengan peran IAM yang baru.

------
#### [ Console ]<a name="attach-iam-role-console"></a>

**Untuk melampirkan IAM role ke instans**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Di panel navigasi, pilih **Instans**.

1. Pilih instans.

1. Pilih **Tindakan**, **Keamanan**, **Ubah peran IAM**.

1. Untuk **peran IAM**, pilih profil instans IAM.

1. Pilih **Perbarui peran IAM**.

------
#### [ AWS CLI ]
<a name="attach-iam-role-instance-cli"></a>
**Untuk melampirkan IAM role ke instans**  
Gunakan [associate-iam-instance-profile](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-iam-instance-profile.html)perintah untuk melampirkan peran IAM ke instance. Saat menentukan profil instans, Anda dapat menggunakan Amazon Resource Name (ARN) dari profil instans, atau Anda dapat menggunakan namanya.

```
aws ec2 associate-iam-instance-profile \
    --instance-id i-1234567890abcdef0 \
    --iam-instance-profile Name="TestRole-1"
```

------
#### [ PowerShell ]

**Untuk melampirkan IAM role ke instans**  
Gunakan [Register-EC2IamInstanceProfile](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2IamInstanceProfile.html)cmdlet.

```
Register-EC2IamInstanceProfile `
    -InstanceId i-1234567890abcdef0 `
    -IamInstanceProfile_Name TestRole-1
```

------

Untuk mengganti peran IAM pada instance yang sudah memiliki peran IAM terlampir, instance harus berjalan. Anda dapat melakukan hal ini jika Anda ingin mengubah IAM role untuk instans tanpa melepaskan peran terlampir yang ada terlebih dahulu. Sebagai contoh, Anda dapat melakukan hal ini untuk memastikan bahwa tindakan-tindakan API yang dilakukan oleh aplikasi yang berjalan pada instans tidak terganggu.

------
#### [ Console ]<a name="replace-iam-role-console"></a>

**Untuk mengganti sebuah peran IAM ke sebuah instans**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Di panel navigasi, pilih **Instans**.

1. Pilih instans.

1. Pilih **Tindakan**, **Keamanan**, **Ubah peran IAM**.

1. Untuk **peran IAM**, pilih profil instans IAM.

1. Pilih **Perbarui peran IAM**.

------
#### [ AWS CLI ]<a name="replace-iam-role-cli"></a>

**Untuk mengganti IAM role untuk instans**

1. Jika diperlukan, gunakan perintah [describe-iam-instance-profile-associations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-iam-instance-profile-associations.html) untuk mendapatkan ID asosiasi.

   ```
   aws ec2 describe-iam-instance-profile-associations \
       --filters Name=instance-id,Values=i-1234567890abcdef0 \
       --query IamInstanceProfileAssociations.AssociationId
   ```

1. Gunakan perintah [replace-iam-instance-profile-association](https://docs.aws.amazon.com/cli/latest/reference/ec2/replace-iam-instance-profile-association.html). Tentukan ID asosiasi untuk profil instance yang ada dan ARN atau nama profil instance baru.

   ```
   aws ec2 replace-iam-instance-profile-association \
       --association-id iip-assoc-0044d817db6c0a4ba \
       --iam-instance-profile Name="TestRole-2"
   ```

------
#### [ PowerShell ]

**Untuk mengganti IAM role untuk instans**

1. Jika diperlukan, gunakan [Get-EC2IamInstanceProfileAssociation](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2IamInstanceProfileAssociation.html)cmdlet untuk mendapatkan ID asosiasi.

   ```
   (Get-EC2IamInstanceProfileAssociation -Filter @{Name="instance-id"; Values="i-0636508011d8e966a"}).AssociationId
   ```

1. Gunakan [Set-EC2IamInstanceProfileAssociation](https://docs.aws.amazon.com/powershell/latest/reference/items/Set-EC2IamInstanceProfileAssociation.html)cmdlet. Tentukan ID asosiasi untuk profil instance yang ada dan ARN atau nama profil instance baru.

   ```
   Set-EC2IamInstanceProfileAssociation `
       -AssociationId iip-assoc-0044d817db6c0a4ba `
       -IamInstanceProfile_Name TestRole-2
   ```

------

Anda dapat melepaskan peran IAM dari instance yang sedang berjalan atau dihentikan.

------
#### [ Console ]<a name="detach-iam-role-console"></a>

**Untuk melepaskan IAM role terlampir dari instans**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Di panel navigasi, pilih **Instans**.

1. Pilih instans.

1. Pilih **Tindakan**, **Keamanan**, **Ubah peran IAM**.

1. Untuk **IAM role**, pilih **No IAM Role** (Tanpa IAM Role).

1. Pilih **Perbarui peran IAM**.

1. Saat dipromosikan untuk konfirmasi, masukkan **Lepaskan**, lalu pilih **Lepaskan**.

------
#### [ AWS CLI ]<a name="detach-iam-role-cli"></a>

**Untuk melepaskan IAM role terlampir dari instans**

1. Jika diperlukan, gunakan [describe-iam-instance-profile-associations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-iam-instance-profile-associations.html) untuk mendapatkan ID asosiasi untuk profil instans IAM untuk dilepaskan.

   ```
   aws ec2 describe-iam-instance-profile-associations \
       --filters Name=instance-id,Values=i-1234567890abcdef0 \
       --query IamInstanceProfileAssociations.AssociationId
   ```

1. Gunakan perintah [disassociate-iam-instance-profile](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-iam-instance-profile.html).

   ```
   aws ec2 disassociate-iam-instance-profile --association-id iip-assoc-0044d817db6c0a4ba
   ```

------
#### [ PowerShell ]

**Untuk melepaskan IAM role terlampir dari instans**

1. Jika diperlukan, gunakan [Get-EC2IamInstanceProfileAssociation](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2IamInstanceProfileAssociation.html)untuk mendapatkan ID asosiasi untuk profil instans IAM untuk dilepaskan.

   ```
   (Get-EC2IamInstanceProfileAssociation -Filter @{Name="instance-id"; Values="i-0636508011d8e966a"}).AssociationId
   ```

1. Gunakan [Unregister-EC2IamInstanceProfile](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2IamInstanceProfile.html)cmdlet.

   ```
   Unregister-EC2IamInstanceProfile -AssociationId iip-assoc-0044d817db6c0a4ba
   ```

------

## Peran identitas instans untuk instans Amazon EC2
<a name="ec2-instance-identity-roles"></a>

Setiap instans Amazon EC2 yang Anda luncurkan memiliki *peran identitas instans* yang mewakili identitasnya. Peran identitas instance adalah jenis peran IAM. AWS layanan dan fitur yang terintegrasi untuk menggunakan peran identitas instance dapat menggunakannya untuk mengidentifikasi instance ke layanan.

Kredensional peran identitas instans dapat diakses dari Layanan Metadata Instans (IMDS) di `/identity-credentials/ec2/security-credentials/ec2-instance`. Kredensialnya terdiri dari AWS temporary access key pair dan session token. Mereka digunakan untuk menandatangani permintaan AWS Sigv4 ke AWS layanan yang menggunakan peran identitas instance. Kredensial hadir dalam metadata instans terlepas dari apakah layanan atau fitur yang menggunakan peran identitas instans diaktifkan pada instans.

Peran identitas instans dibuat secara otomatis saat instance diluncurkan, tidak memiliki dokumen kebijakan role-trust, dan tidak tunduk pada identitas atau kebijakan sumber daya apa pun.

### Layanan yang didukung
<a name="iir-supported-services"></a>

 AWS Layanan berikut menggunakan peran identitas instance:
+ **Amazon EC2** — [EC2 Instance Connect](connect-linux-inst-eic.md) menggunakan peran identitas instans untuk memperbarui kunci host untuk instance Linux.
+ **Amazon GuardDuty** — [GuardDuty Runtime Monitoring](https://docs.aws.amazon.com/guardduty/latest/ug/runtime-monitoring.html) menggunakan peran identitas instans untuk memungkinkan agen runtime mengirim telemetri keamanan ke titik akhir VPC. GuardDuty 
+ **AWS Lambda**— [Instans Terkelola Lambda menggunakan peran identitas instans](https://docs.aws.amazon.com/lambda/latest/dg/lambda-managed-instances.html) untuk kait siklus hidup, telemetri, dan distribusi artefak.
+ **AWS Security Token Service (AWS STS)** - Kredensial peran identitas instance dapat digunakan dengan tindakan. AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html)
+ **AWS Systems Manager**— Saat menggunakan [Konfigurasi Manajemen Host Default](https://docs.aws.amazon.com/systems-manager/latest/userguide/fleet-manager-default-host-management-configuration.html), AWS Systems Manager gunakan identitas yang disediakan oleh peran identitas instans untuk mendaftarkan instans EC2. Setelah mengidentifikasi instans Anda, Systems Manager dapat meneruskan peran IAM `AWSSystemsManagerDefaultEC2InstanceManagementRole` ke instans Anda.

Peran identitas instans tidak dapat digunakan dengan AWS layanan atau fitur lain karena tidak memiliki integrasi dengan peran identitas instance.

### ARN peran identitas instans
<a name="iir-arn"></a>

ARN peran identitas instans ARN mengambil format berikut:

```
arn:aws-partition:iam::account-number:assumed-role/aws:ec2-instance/instance-id
```

Contoh:

```
arn:aws:iam::0123456789012:assumed-role/aws:ec2-instance/i-1234567890abcdef0
```

Untuk informasi selengkapnya ARNs, lihat [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) di *Panduan Pengguna IAM*.

# Manajemen pembaruan untuk instans Amazon EC2
<a name="update-management"></a>

Kami merekomendasikan agar Anda melakukan patch, memperbarui, dan mengamankan sistem operasi dan aplikasi pada instans EC2 Anda secara berkala. Anda dapat menggunakan [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html) untuk mengotomatisasi proses penginstalan pembaruan terkait keamanan untuk sistem operasi maupun aplikasi.

Untuk instans EC2 dalam grup Auto Scaling, Anda dapat menggunakan runbook [https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-patchasginstance.html](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-patchasginstance.html) untuk membantu menghindari penggantian instans yang sedang di-patch. Atau, Anda dapat menggunakan layanan pembaruan otomatis atau proses yang direkomendasikan untuk menginstal pembaruan yang disediakan oleh vendor aplikasi.

**Sumber daya**
+ **AL2023**— [Memperbarui AL2023](https://docs.aws.amazon.com/linux/al2023/ug/updating.html) di *Panduan Pengguna Amazon Linux 2023*
+ **AL2**— [Kelola perangkat lunak pada instans Amazon Linux 2 Anda](https://docs.aws.amazon.com/linux/al2/ug/managing-software.html) di *Panduan Pengguna Amazon Linux 2*
+ **Contoh Windows** — [Manajemen pembaruan](ec2-windows-security-best-practices.md#ec2-windows-update-management)

# Praktik terbaik keamanan untuk instans Windows
<a name="ec2-windows-security-best-practices"></a>

Kami menyarankan Anda mengikuti praktik terbaik keamanan ini untuk instans Windows Anda.

**Topics**
+ [Praktik terbaik keamanan tingkat tinggi](#high-level-security)
+ [Manajemen pembaruan](#ec2-windows-update-management)
+ [Manajemen konfigurasi](#configuration-management)
+ [Manajemen perubahan](#change-management)
+ [Audit dan akuntabilitas untuk instans Windows Amazon EC2](#audit-accountability)

## Praktik terbaik keamanan tingkat tinggi
<a name="high-level-security"></a>

Anda harus mematuhi praktik terbaik keamanan tingkat tinggi berikut untuk instance Windows Anda:
+ **Akses paling sedikit** — Berikan akses hanya ke sistem dan lokasi yang dipercaya dan diharapkan. Hal ini berlaku untuk semua produk Microsoft, seperti Active Directory, server produktivitas bisnis Microsoft, serta layanan infrastruktur, seperti Remote Desktop Services, server proksi terbalik, server web IIS, dan lainnya. Gunakan AWS kemampuan seperti grup keamanan instans Amazon EC2, daftar kontrol akses jaringan (ACLs), dan public/private subnet Amazon VPC untuk melapisi keamanan di beberapa lokasi dalam arsitektur. Dalam instance Windows, pelanggan dapat menggunakan Windows Firewall untuk lebih lanjut melapisi defense-in-depth strategi dalam penyebaran mereka. Cukup instal komponen dan aplikasi OS yang diperlukan agar sistem berfungsi sebagaimana peruntukannya. Konfigurasikan layanan infrastruktur, seperti IIS, untuk dijalankan di bawah akun layanan atau untuk menggunakan fitur, seperti identitas kolam aplikasi, agar dapat mengakses sumber daya secara lokal dan jarak jauh di seluruh infrastruktur Anda.
+ **Keistimewaan terkecil** — Tentukan kumpulan hak istimewa minimum yang dibutuhkan instance dan akun untuk menjalankan fungsinya. Batasi server dan pengguna tersebut agar hanya memperbolehkan izin yang ditentukan ini. Gunakan teknik, seperti Kontrol Akses Berbasis Peran, untuk mengurangi luas permukaan akun administratif dan membuat peran paling terbatas untuk menyelesaikan tugas. Gunakan fitur OS, seperti Encrypting File System (EFS), di dalam NTFS untuk mengenkripsi data diam yang sensitif serta mengontrol akses aplikasi dan pengguna ke data diam tersebut.
+ **Manajemen konfigurasi** — Buat konfigurasi server dasar yang menggabungkan patch up-to-date keamanan dan suite perlindungan berbasis host yang mencakup anti-virus, anti-malware, deteksi/pencegahan intrusi, dan pemantauan integritas file. Nilai setiap server menurut data baseline yang tercatat saat ini untuk mengidentifikasi dan menandai setiap deviasi. Pastikan setiap server dikonfigurasi untuk menghasilkan serta menyimpan data log dan audit yang sesuai dengan aman.
+ **Manajemen perubahan** — Buat proses untuk mengontrol perubahan pada garis dasar konfigurasi server dan bekerja menuju proses perubahan yang sepenuhnya otomatis. Manfaatkan juga Just Enough Administration (JEA) dengan Windows PowerShell DSC untun membatasi akses administratif ke fungsi minimum yang diperlukan.
+ **Manajemen Patch** — Menerapkan proses yang secara teratur menambal, memperbarui, dan mengamankan sistem operasi dan aplikasi pada instans EC2 Anda.
+ **Log audit** — Akses audit dan semua perubahan pada instans Amazon EC2 untuk memverifikasi integritas server dan memastikan hanya perubahan resmi yang dibuat. Manfaatkan fitur seperti [Enhanced Logging for IIS](https://learn.microsoft.com/en-us/iis/get-started/whats-new-in-iis-85/enhanced-logging-for-iis85) untuk meningkatkan kemampuan logging default. AWS kemampuan seperti VPC Flow Logs dan juga AWS CloudTrail tersedia untuk mengaudit akses jaringan, termasuk allowed/denied permintaan dan panggilan API, masing-masing.

## Manajemen pembaruan
<a name="ec2-windows-update-management"></a>

Untuk memastikan hasil terbaik saat menjalankan Windows Server di Amazon EC2, sebaiknya Anda menerapkan praktik terbaik berikut:
+ [Configure Windows Update](#windows-update)
+ [Update drivers](#drivers)
+ [Use the latest Windows AMIs](#AMI)
+ [Test performance before migration](#test)
+ [Update launch agents](#agents)
+ Reboot instance Windows Anda setelah Anda menginstal pembaruan. Untuk informasi selengkapnya, lihat [Nyalakan ulang EC2 instans Amazon Anda](ec2-instance-reboot.md).

Untuk informasi selengkapnya, tentang cara meningkatkan atau migrasi instans Windows ke versi Windows Server yang lebih baru, lihat [Tingkatkan instans EC2 Windows ke versi Windows Server yang lebih baru](serverupgrade.md).

**Konfigurasikan Pembaruan Windows**  
Secara default, instance yang diluncurkan dari AWS Windows Server AMIs tidak menerima pembaruan melalui Pembaruan Windows.

**Perbarui driver Windows**

Pertahankan driver terbaru di semua instans Windows EC2 untuk memastikan bahwa perbaikan masalah dan peningkatan performa terbaru telah diterapkan di seluruh armada Anda. Bergantung pada jenis instans Anda, Anda harus memperbarui AWS PV, Amazon ENA, dan AWS NVMe driver.
+ Gunakan [topik SNS](xen-drivers-overview.md#drivers-subscribe-notifications) untuk menerima pembaruan untuk rilis driver baru.
+ Gunakan runbook AWS Systems Manager Otomasi [AWSSupport-UpgradeWindowsAWSDrivers](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awssupport-upgradewindowsawsdrivers.html)untuk menerapkan pembaruan dengan mudah di seluruh instans Anda.

**Luncurkan instance menggunakan Windows terbaru AMIs**

AWS merilis Windows baru AMIs setiap bulan, yang berisi patch OS terbaru, driver, dan agen peluncuran. Anda harus memanfaatkan AMI terkini saat meluncurkan instans baru atau saat membangun gambar kustom Anda sendiri.
+ Untuk melihat pembaruan pada setiap rilis AWS Windows AMIs, lihat [riwayat versi AWS Windows AMI](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/ec2-windows-ami-version-history.html).
+ Untuk membangun dengan yang terbaru yang tersedia AMIs, lihat [Kueri untuk AMI Windows Terbaru Menggunakan Parameter Store Systems Manager](https://aws.amazon.com/blogs/mt/query-for-the-latest-windows-ami-using-systems-manager-parameter-store/).
+ Untuk informasi selengkapnya tentang Windows khusus AMIs yang dapat Anda gunakan untuk meluncurkan instans untuk database dan kasus penggunaan pengerasan kepatuhan, lihat [Windows Khusus AMIs di Referensi *AWS AMI* Windows](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/specialized-windows-amis.html).

**Uji system/application kinerja sebelum migrasi**

Migrasi aplikasi perusahaan untuk AWS dapat melibatkan banyak variabel dan konfigurasi. Selalu uji performa solusi EC2 untuk memastikan bahwa:
+ Tipe Instans dikonfigurasi dengan benar, termasuk ukuran instans, peningkatan jaringan, dan penghunian (bersama atau khusus).
+ Topologi instans sesuai untuk beban kerja dan memanfaatkan fitur berperforma tinggi bila diperlukan, seperti penghunian khusus, grup penempatan, volume penyimpanan instans, dan bare metal.

**Instal versi terbaru EC2 Launch v2**  
Instal agen EC2 Launch v2 terbaru untuk memastikan bahwa penyempurnaan terbaru diterapkan di seluruh armada Anda. Untuk informasi selengkapnya, lihat [Instal EC2 Launch v2](ec2launch-v2-install.md).

Jika Anda memiliki armada campuran, atau jika ingin terus menggunakan agen EC2Launch (Windows Server 2016 dan 2019) atau EC2 Config (khusus OS warisan), perbarui ke versi terbaru agen masing-masing.

Pembaruan otomatis didukung pada kombinasi versi Windows Server dan agen peluncuran berikut. Anda dapat memilih pembaruan otomatis di konsol [Manajemen Host Pengaturan Cepat SSM](https://docs.aws.amazon.com/systems-manager/latest/userguide/quick-setup-host-management.html) di bawah **Agen Peluncuran Amazon EC2**.


| Versi Windows | EC2Luncurkan v1 | EC2Luncurkan v2 | 
| --- | --- | --- | 
| 2016 | ✓ | ✓ | 
| 2019 | ✓ | ✓ | 
| 2022 |  | ✓ | 
+ Untuk informasi selengkapnya tentang memperbarui ke EC2 Launch v2, lihat[Instal versi terbaru EC2 Launch v2](ec2launch-v2-install.md).
+ Untuk informasi tentang memperbarui EC2 Config secara manual, lihat. [Instal EC2 Config versi terbaru](UsingConfig_Install.md) 
+ Untuk informasi tentang memperbarui EC2 Peluncuran secara manual, lihat[Instal versi terbaru EC2 Launch](ec2launch-download.md).

## Manajemen konfigurasi
<a name="configuration-management"></a>

Amazon Machine Image (AMI) menyediakan konfigurasi awal untuk instans Amazon EC2 yang mencakup OS Windows dan kustomisasi spesifik pelanggan yang bersifat opsional, seperti kontrol aplikasi dan keamanan. Buat katalog AMI yang berisi garis dasar konfigurasi keamanan khusus untuk memastikan bahwa semua instance Windows diluncurkan dengan kontrol keamanan standar. Garis dasar keamanan dapat dimasukkan ke dalam AMI, di-bootstrap secara dinamis saat instans EC2 diluncurkan, atau dikemas sebagai produk untuk distribusi seragam melalui portofolio Service Catalog. AWS Untuk informasi selengkapnya tentang cara mengamankan AMI, lihat [Praktik Terbaik untuk Membangun AMI](https://docs.aws.amazon.com/marketplace/latest/userguide/best-practices-for-building-your-amis.html).

Setiap instans Amazon EC2 harus mematuhi standar keamanan organisasi. Jangan menginstal peran dan fitur Windows apa pun yang tidak diperlukan, dan instal perangkat lunak sebagai perlindungan terhadap kode berbahaya (mitigasi antivirus, antimalware, eksploitasi), pantau integritas host, dan lakukan deteksi intrusi. Lakukan konfigurasi pada perangkat lunak keamanan untuk memantau dan mempertahankan pengaturan keamanan OS, melindungi integritas file OS penting, dan mewaspadai penyimpangan dari garis dasar keamanan. Pertimbangkan untuk melaksanakan rekomendasi tolok ukur konfigurasi keamanan yang diterbitkan oleh Microsoft, Center for Internet Security (CIS), atau National Institute of Standards and Technology (NIST). Pertimbangkan untuk menggunakan alat-alat Microsoft lainnya untuk server aplikasi tertentu, seperti [Penganalisis Praktik Terbaik untuk SQL Server](https://www.microsoft.com/en-us/download/details.aspx?id=29302).

AWS pelanggan juga dapat menjalankan penilaian Amazon Inspector untuk meningkatkan keamanan dan kepatuhan aplikasi yang diterapkan pada instans Amazon EC2. Amazon Inspector secara otomatis menilai aplikasi dalam hal kelemahan atau penyimpangannya dari praktik terbaik dan menyertakan basis pengetahuan dari ratusan aturan yang dipetakan ke standar kepatuhan keamanan umum (misalnya PCI DSS) dan definisi kelemahan. Contoh-contoh aturan bawaan termasuk pemeriksaan apakah cara masuk dari root jarak jauh diaktifkan, atau apakah ada versi perangkat lunak yang lemah yang sudah diinstal. Aturan-aturan ini diperbarui secara berkala oleh peneliti AWS keamanan.

Saat mengamankan instans Windows, kami menyarankan Anda untuk menerapkan Layanan Domain Direktori Aktif agar dapat mengaktifkan infrastruktur yang dapat diskalakan, aman, dan dapat dikelola untuk lokasi yang didistribusikan. Selain itu, setelah meluncurkan instans dari konsol Amazon EC2 atau dengan menggunakan alat penyediaan Amazon EC2, AWS CloudFormation seperti, sebaiknya gunakan fitur OS asli, seperti Microsoft PowerShell Windows DSC untuk mempertahankan status konfigurasi jika terjadi penyimpangan konfigurasi.

## Manajemen perubahan
<a name="change-management"></a>

Setelah garis dasar keamanan awal diterapkan ke instans Amazon EC2 pada saat peluncuran, kendalikan perubahan Amazon EC2 yang terjadi untuk mempertahankan keamanan mesin virtual Anda. Menetapkan proses manajemen perubahan untuk mengotorisasi dan menggabungkan perubahan pada AWS sumber daya (seperti grup keamanan, tabel rute, dan jaringan ACLs) serta konfigurasi OS dan aplikasi (seperti Windows atau patching aplikasi, upgrade perangkat lunak, atau pembaruan file konfigurasi).

AWS menyediakan beberapa alat untuk membantu mengelola perubahan pada AWS sumber daya, termasuk AWS CloudTrail,, AWS Config CloudFormation, dan AWS Elastic Beanstalk, dan paket manajemen untuk Manajer Operasi Pusat Sistem dan Manajer Mesin Virtual Pusat Sistem. Perhatikan bahwa Microsoft merilis patch Windows pada hari Selasa kedua setiap bulan (atau sesuai kebutuhan) dan AWS memperbarui semua Windows yang AMIs dikelola oleh AWS dalam waktu lima hari setelah Microsoft merilis patch. Oleh karena itu, penting untuk terus menambal semua baseline AMIs, memperbarui CloudFormation template, dan konfigurasi grup Auto Scaling dengan IDs AMI terbaru, dan menerapkan alat untuk mengotomatiskan manajemen patch instance yang sedang berjalan.

Microsoft menyediakan beberapa opsi untuk mengelola perubahan OS Windows dan aplikasi. SCCM, contohnya, menyediakan cakupan siklus hidup penuh modifikasi lingkungan. Pilihlah alat-alat yang memenuhi persyaratan bisnis dan lakukan kontrol pada bagaimana perubahan akan memengaruhi prosedur SLA aplikasi, kapasitas, prosedur keamanan, dan pemulihan bencana. Hindari perubahan manual dan sebagai gantinya manfaatkan perangkat lunak manajemen konfigurasi otomatis atau alat baris perintah seperti EC2 Run Command atau Windows PowerShell untuk mengimplementasikan proses perubahan skrip dan berulang. Untuk membantu memenuhi persyaratan ini, gunakan host bastion dengan peningkatan pencatatan untuk semua interaksi dengan instans Windows Anda untuk memastikan bahwa semua peristiwa dan tugas direkam secara otomatis.

## Audit dan akuntabilitas untuk instans Windows Amazon EC2
<a name="audit-accountability"></a>

AWS CloudTrail, AWS Config, dan Aturan AWS Config menyediakan fitur audit dan pelacakan perubahan untuk mengaudit perubahan AWS sumber daya. Lakukan konfigurasi pada log peristiwa Windows untuk mengirimkan file log lokal ke sistem manajemen log terpusat untuk menyimpan data log untuk digunakan dalam analisis perilaku keamanan dan operasional. Microsoft System Center Operations Manager (SCOM) mengumpulkan informasi mengenai aplikasi Microsoft yang di-deploy ke instans Windows dan menerapkan serangkaian aturan yang telah dikonfigurasi sebelumnya dan serangkaian aturan kustom berdasarkan peran dan layanan aplikasi. System Center Management Packs yang dibangun di atas SCOM akan menyediakan pemantauan dan panduan konfigurasi spesifik aplikasi. [Paket Manajemen](https://learn.microsoft.com/en-us/archive/technet-wiki/16174.microsoft-management-packs) ini mendukung Windows Server Active Directory, SharePoint Server 2013, Exchange Server 2013, Lync Server 2013, SQL Server 2014, dan banyak lagi server dan teknologi.

Selain alat manajemen sistem Microsoft, pelanggan dapat menggunakan Amazon CloudWatch untuk memantau pemanfaatan CPU instance, kinerja disk, I/O jaringan, dan melakukan pemeriksaan status host dan instance. Agen EC2 peluncuran EC2 Config, Launch, dan EC2 Launch v2 menyediakan akses ke fitur-fitur tambahan dan canggih untuk instance Windows. Misalnya, mereka dapat mengekspor log sistem Windows, keamanan, aplikasi, dan Layanan Informasi Internet (IIS) ke CloudWatch Log yang kemudian dapat diintegrasikan dengan CloudWatch metrik dan alarm Amazon. Pelanggan juga dapat membuat skrip yang mengekspor penghitung kinerja Windows ke metrik CloudWatch khusus Amazon.

# Pasangan kunci Amazon EC2 dan instans Amazon EC2
<a name="ec2-key-pairs"></a>

 pasangan kunci, yang terdiri dari kunci publik dan kunci privat, adalah satu set kredensial keamanan yang Anda gunakan untuk membuktikan identitas Anda ketika terhubung ke instans Amazon EC2. Untuk instance Linux, kunci pribadi memungkinkan Anda untuk SSH dengan aman ke instans Anda. Untuk instance Windows, kunci pribadi diperlukan untuk mendekripsi kata sandi administrator, yang kemudian Anda gunakan untuk terhubung ke instans Anda.

Amazon EC2 menyimpan kunci publik pada instans Anda, dan Anda menyimpan kunci pribadi, seperti yang ditunjukkan pada diagram berikut. Penting bagi Anda untuk menyimpan kunci pribadi Anda di tempat yang aman karena siapa pun yang memiliki kunci pribadi Anda dapat terhubung ke instance Anda yang menggunakan key pair.

![\[Sebuah key pair terdiri dari kunci pribadi untuk komputer Anda dan kunci publik untuk instance Anda.\]](http://docs.aws.amazon.com/id_id/AWSEC2/latest/UserGuide/images/ec2-key-pair.png)


Ketika Anda meluncurkan sebuah instance, Anda dapat [menentukan key pair](ec2-instance-launch-parameters.md#liw-key-pair), sehingga Anda dapat terhubung ke instance Anda menggunakan metode yang memerlukan key pair. Bergantung pada cara Anda mengelola keamanan, Anda dapat menentukan pasangan kunci yang sama untuk semua instans atau Anda dapat menentukan pasangan kunci yang berbeda.

Untuk instance Linux, ketika instance Anda melakukan booting untuk pertama kalinya, kunci publik yang Anda tentukan saat peluncuran ditempatkan pada instance Linux Anda dalam entri di dalamnya`~/.ssh/authorized_keys`. Ketika Anda terhubung ke instans Linux Anda menggunakan SSH, untuk log in Anda harus menentukan kunci privat yang sesuai dengan kunci publik.

Untuk informasi selengkapnya tentang menghubungkan ke instans EC2 Anda, lihat[Connect ke instans EC2](connect.md).

**penting**  
Karena Amazon EC2 tidak menyimpan salinan kunci privat Anda, tidak ada cara yang bisa dilakukan untuk memulihkan kunci privat tersebut jika Anda menghilangkannya. Akan tetapi, masih ada cara untuk terhubung ke instans yang kunci privatnya hilang. Untuk informasi selengkapnya, lihat [Saya kehilangan kunci privat. Bagaimana saya bisa terhubung ke instance saya?](TroubleshootingInstancesConnecting.md#replacing-lost-key-pair)

Sebagai alternatif dari pasangan kunci, Anda dapat menggunakan [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html)untuk terhubung ke instance Anda dengan shell berbasis browser satu-klik interaktif atau (). AWS Command Line Interface AWS CLI

**Topics**
+ [Membuat pasangan kunci untuk instans Amazon EC2](create-key-pairs.md)
+ [Jelaskan pasangan kunci Anda](describe-keys.md)
+ [Menghapus pasangan kunci Anda](delete-key-pair.md)
+ [Menambahkan atau mengganti kunci publik pada instance Linux Anda](replacing-key-pair.md)
+ [Lakukan verifikasi terhadap sidik jari pasangan kunci Anda](verify-keys.md)

# Membuat pasangan kunci untuk instans Amazon EC2
<a name="create-key-pairs"></a>

Anda dapat menggunakan Amazon EC2 untuk membuat pasangan kunci, atau Anda dapat menggunakan alat pihak ketiga untuk membuat pasangan kunci, lalu mengimpornya ke Amazon EC2.

Amazon EC2 mendukung kunci RSA SSH-2 2048-bit untuk instance Linux dan Windows. Amazon EC2 juga mendukung ED25519 kunci untuk instans Linux.

Untuk petunjuk tentang cara menyambung ke instans Anda setelah Anda membuat key pair, lihat [Hubungkan ke instans Linux Anda, menggunakan SSH.](connect-to-linux-instance.md) dan[Hubungkan ke instans Windows Anda menggunakan RDP](connecting_to_windows_instance.md).

**Topics**
+ [Membuat pasangan kunci menggunakan Amazon EC2](#having-ec2-create-your-key-pair)
+ [Buat key pair menggunakan AWS CloudFormation](#create-key-pair-cloudformation)
+ [Membuat pasangan kunci menggunakan alat pihak ketiga dan mengimpor kunci publik ke Amazon EC2](#how-to-generate-your-own-key-and-import-it-to-aws)

## Membuat pasangan kunci menggunakan Amazon EC2
<a name="having-ec2-create-your-key-pair"></a>

Saat Anda membuat pasangan kunci menggunakan Amazon EC2, kunci publik akan disimpan di Amazon EC2, dan Anda akan menyimpan kunci privat.

Anda dapat membuat hingga 5.000 pasangan kunci per Wilayah. Untuk meminta peningkatan, buat kasus dukungan. Untuk informasi selengkapnya, lihat [Membuat kasus dukungan](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html#creating-a-support-case) di *Panduan Dukungan Pengguna*.

------
#### [ Console ]

**Untuk membuat pasangan kunci menggunakan Amazon EC2**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Pada panel navigasi, di **Jaringan & Keamanan**, pilih **Pasangan Kunci**.

1. Pilih **Buat pasangan kunci**.

1. Untuk **Nama**, masukkan nama deskriptif untuk pasangan kunci tersebut. Amazon EC2 akan mengaitkan kunci publik dengan nama yang Anda cantumkan sebagai nama kunci. Nama kunci dapat terdiri dari hingga 255 karakter ASCII. Tidak boleh mengandung spasi di depan maupun belakang.

1. Pilih jenis key pair yang sesuai untuk sistem operasi Anda:

   (Instance Linux) Untuk **jenis pasangan Kunci**, pilih **RSA** atau. **ED25519**

   (Instans Windows) Untuk **jenis pasangan kunci**, pilih **RSA**. **ED25519**kunci tidak didukung untuk instance Windows.

1. Untuk **Format file kunci privat**, pilih format untuk menyimpan kunci privat tersebut. Untuk menyimpan kunci privat dalam format yang dapat digunakan dengan OpenSSH, pilih **pem**. Untuk menyimpan kunci privat dalam format yang dapat digunakan dengan PuTTY, pilih **ppk**.

1. Untuk menambahkan tanda ke kunci publik, pilih **Tambah tanda** (Tambahkan tanda), lalu masukkan kunci dan nilai untuk tanda tersebut. Ulangi hal itu untuk setiap tanda. 

1. Pilih **Buat pasangan kunci**.

1. File kunci privat tersebut akan secara otomatis diunduh oleh peramban Anda. Nama file dasar adalah nama yang Anda tentukan sebagai nama pasangan kunci Anda, dan ekstensi dari nama file tersebut ditentukan oleh format file yang Anda pilih. Simpan file kunci privat di suatu tempat yang aman.
**penting**  
Ini adalah satu-satunya kesempatan Anda untuk menyimpan file kunci privat tersebut.

1. Jika Anda berencana menggunakan klien SSH pada komputer macOS atau Linux untuk terhubung ke instans Linux, gunakan perintah berikut untuk mengatur izin file kunci privat Anda sehingga hanya Anda yang dapat membacanya.

   ```
   chmod 400 key-pair-name.pem
   ```

   Jika Anda tidak mengatur izin tersebut, Anda tidak akan dapat terhubung ke instans Anda menggunakan pasangan kunci ini. Untuk informasi selengkapnya, lihat [Kesalahan: File kunci privat yang tidak dilindungi](TroubleshootingInstancesConnecting.md#troubleshoot-unprotected-key).

------
#### [ AWS CLI ]

**Untuk membuat pasangan kunci menggunakan Amazon EC2**

1. Gunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/ec2/create-key-pair.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-key-pair.html) seperti berikut untuk membuat pasangan kunci dan untuk menyimpan kunci privat dalam file `.pem`. `--query`Opsi mencetak materi kunci pribadi ke output. `--output`Opsi ini menyimpan materi kunci pribadi dalam file yang ditentukan. Ekstensi harus salah satu `.pem` atau`.ppk`, tergantung pada format kunci. Nama kunci pribadi dapat berbeda dari nama kunci publik, tetapi untuk kemudahan penggunaan, gunakan nama yang sama.

   ```
   aws ec2 create-key-pair \
       --key-name my-key-pair \
       --key-type rsa \
       --key-format pem \
       --query "KeyMaterial" \
       --output text > my-key-pair.pem
   ```

1. Jika Anda berencana menggunakan klien SSH pada komputer macOS atau Linux untuk terhubung ke instans Linux, gunakan perintah berikut untuk mengatur izin file kunci privat Anda sehingga hanya Anda yang dapat membacanya.

   ```
   chmod 400 key-pair-name.pem
   ```

   Jika Anda tidak mengatur izin tersebut, Anda tidak akan dapat terhubung ke instans Anda menggunakan pasangan kunci ini. Untuk informasi selengkapnya, lihat [Kesalahan: File kunci privat yang tidak dilindungi](TroubleshootingInstancesConnecting.md#troubleshoot-unprotected-key).

------
#### [ PowerShell ]

**Untuk membuat pasangan kunci menggunakan Amazon EC2**  
Gunakan [https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2KeyPair.html](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2KeyPair.html)cmdlet sebagai berikut untuk menghasilkan kunci dan menyimpannya ke file `.pem` atau`.ppk`. **Out-File**Cmdlet menyimpan materi kunci pribadi dalam file dengan ekstensi yang ditentukan. Ekstensi harus salah satu `.pem` atau`.ppk`, tergantung pada format kunci. Nama kunci pribadi dapat berbeda dari nama kunci publik, tetapi untuk kemudahan penggunaan, gunakan nama yang sama.

```
(New-EC2KeyPair `
    -KeyName "my-key-pair" `
    -KeyType "rsa" `
    -KeyFormat "pem").KeyMaterial | Out-File -Encoding ascii -FilePath C:\path\my-key-pair.pem
```

------

## Buat key pair menggunakan AWS CloudFormation
<a name="create-key-pair-cloudformation"></a>

Saat Anda membuat key pair baru menggunakan CloudFormation, kunci pribadi disimpan ke AWS Systems Manager Parameter Store. Nama parameter memiliki format berikut:

```
/ec2/keypair/key_pair_id
```

Untuk informasi selengkapnya, lihat [Penyimpanan Parameter AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) dalam *Panduan Pengguna AWS Systems Manager *.

**Untuk membuat key pair menggunakan CloudFormation**

1. Tentukan [AWS::EC2::KeyPair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-keypair.html)sumber daya di template Anda.

   ```
   Resources:
     NewKeyPair:
       Type: 'AWS::EC2::KeyPair'
       Properties: 
         KeyName: new-key-pair
   ```

1. Gunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html) sebagai berikut untuk mendapatkan ID dari pasangan kunci.

   ```
   aws ec2 describe-key-pairs --filters Name=key-name,Values=new-key-pair --query KeyPairs[*].KeyPairId --output text
   ```

   Berikut ini adalah output contoh.

   ```
   key-05abb699beEXAMPLE
   ```

1. Gunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameter.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameter.html) sebagai berikut untuk mendapatkan parameter kunci Anda dan menyimpan materi kunci dalam file `.pem`.

   ```
   aws ssm get-parameter --name /ec2/keypair/key-05abb699beEXAMPLE --with-decryption --query Parameter.Value --output text > new-key-pair.pem
   ```

**Izin IAM yang diperlukan**

 CloudFormation Untuk mengaktifkan mengelola parameter Parameter Store atas nama Anda, peran IAM yang diambil oleh CloudFormation atau pengguna Anda harus memiliki izin berikut:
+ `ssm:PutParameter` – Memberikan izin guna membuat parameter untuk materi kunci privat.
+ `ssm:DeleteParameter` – Memberikan izin guna menghapus parameter yang menyimpan materi kunci privat. Izin ini diperlukan apakah pasangan kunci diimpor atau dibuat oleh CloudFormation.

Ketika CloudFormation menghapus key pair yang dibuat atau diimpor oleh stack, ia melakukan pemeriksaan izin untuk menentukan apakah Anda memiliki izin untuk menghapus parameter, meskipun CloudFormation membuat parameter hanya ketika membuat key pair, bukan ketika mengimpor key pair. CloudFormation tes untuk izin yang diperlukan menggunakan nama parameter fabrikasi yang tidak cocok dengan parameter apa pun di akun Anda. Oleh karena itu, Anda mungkin melihat nama parameter fabrikasi dalam pesan kesalahan `AccessDeniedException`.

## Membuat pasangan kunci menggunakan alat pihak ketiga dan mengimpor kunci publik ke Amazon EC2
<a name="how-to-generate-your-own-key-and-import-it-to-aws"></a>

Alih-alih menggunakan Amazon EC2 untuk membuat key pair, Anda dapat membuat key pair RSA atau ED25519 dengan menggunakan alat pihak ketiga dan kemudian mengimpor kunci publik ke Amazon EC2.

**Ketentuan untuk pasangan kunci**
+ Jenis yang didukung:
  + (Linux dan Windows) RSA
  + (Hanya Linux) ED25519
**catatan**  
ED25519 kunci tidak didukung untuk instance Windows.
  + Amazon EC2 tidak menerima kunci DSA.
+ Format yang didukung:
  + Format kunci publik OpenSSH (untuk Linux, format dalam) `~/.ssh/authorized_keys`
  + (Hanya Linux) Jika Anda terhubung menggunakan SSH saat menggunakan EC2 Instance Connect API, SSH2 formatnya juga didukung.
  + Format file kunci privat SSH harus dalam format PEM atau PPK
  + (Khusus RSA) Format DER dengan enkode Base64
  + (Khusus RSA) Format file kunci publik SSH sebagaimana yang ditentukan dalam [RFC 4716](https://www.ietf.org/rfc/rfc4716.txt)
+ Panjang yang didukung:
  + 1024, 2048, dan 4096.
  + (Hanya Linux) Jika Anda terhubung menggunakan SSH saat menggunakan EC2 Instance Connect API, panjang yang didukung adalah 2048 dan 4096.

**Cara membuat pasangan kunci menggunakan alat pihak ketiga**

1. Buat pasangan kunci dengan alat pihak ketiga yang Anda kehendaki. Sebagai contoh, Anda dapat menggunakan **ssh-keygen** (alat yang disediakan bersamaan dengan instalasi OpenSSH standar). Atau, Java, Ruby, Python, dan banyak bahasa pemrograman lainnya menyediakan pustaka standar yang dapat Anda gunakan untuk membuat key pair.
**penting**  
Kunci privat harus berupa format PEM atau PPK. Sebagai contoh, gunakan `ssh-keygen -m PEM` untuk membuat kunci OpenSSH dalam format PEM.

1. Simpan kunci publik ke file lokal. Misalnya, `~/.ssh/my-key-pair.pub` (Linux, macOS) atau `C:\keys\my-key-pair.pub` (Windows). Ekstensi nama file untuk file ini bukan hal penting.

1. Simpan kunci privat ke file lokal yang memiliki ekstensi `.pem` atau `.ppk`. Misalnya, `~/.ssh/my-key-pair.pem` atau `~/.ssh/my-key-pair.ppk` (Linux, macOS) atau `C:\keys\my-key-pair.pem` atau `C:\keys\my-key-pair.ppk` (Windows). Ekstensi file penting karena, tergantung pada alat yang Anda gunakan untuk terhubung ke instance Anda, Anda memerlukan format file tertentu. OpenSSH membutuhkan `.pem` file, sedangkan Putty membutuhkan file. `.ppk`
**penting**  
Simpan file kunci privat di suatu tempat yang aman. Anda harus memberikan nama kunci publik Anda saat meluncurkan instans, dan nama kunci privat yang terkait setiap kali Anda terhubung dengan instans tersebut.

Setelah Anda membuat pasangan kunci, gunakan salah satu metode berikut ini untuk mengimpor kunci publik Anda ke Amazon EC2.

------
#### [ Console ]

**Cara mengimpor kunci publik ke Amazon EC2**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Di panel navigasi, pilih **Pasangan Kunci**.

1. Pilih **Impor pasangan kunci**.

1. Untuk **Nama**, masukkan nama deskriptif untuk kunci publik. Nama dapat terdiri dari hingga 255 karakter ASCII. Tidak termasuk spasi di bagian paling depan dan paling belakang.
**catatan**  
Ketika Anda terhubung ke instans Anda dari konsol EC2, konsol akan menyarankan nama ini untuk nama file kunci privat Anda.

1. Pilih **Browse** (Jelajah) untuk melakukan navigasi ke dan memilih kunci publik Anda, atau tempelkan konten kunci publik Anda ke bidang **Konten kunci publik**.

1. Pilih **Impor pasangan kunci**.

1. Pastikan kunci publik yang Anda impor muncul dalam daftar pasangan kunci.

------
#### [ AWS CLI ]

**Cara mengimpor kunci publik ke Amazon EC2**  
Gunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/ec2/import-key-pair.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/import-key-pair.html).

```
aws ec2 import-key-pair \
    --key-name my-key-pair \
    --public-key-material fileb://path/my-key-pair.pub
```

**Cara melakukan verifikasi terhadap pasangan kunci yang berhasil diimpor**  
Gunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html).

```
aws ec2 describe-key-pairs --key-names my-key-pair
```

------
#### [ PowerShell ]

**Cara mengimpor kunci publik ke Amazon EC2**  
Gunakan [https://docs.aws.amazon.com/powershell/latest/reference/items/Import-EC2KeyPair.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Import-EC2KeyPair.html)cmdlet.

```
$publickey=[Io.File]::ReadAllText("C:\Users\TestUser\.ssh\id_rsa.pub")
Import-EC2KeyPair `
    -KeyName my-key-pair `
    -PublicKey $publickey
```

**Cara melakukan verifikasi terhadap pasangan kunci yang berhasil diimpor**  
Gunakan [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html)cmdlet.

```
Get-EC2KeyPair -KeyName my-key-pair
```

------

# Jelaskan pasangan kunci Anda
<a name="describe-keys"></a>

Anda dapat menjelaskan pasangan kunci yang Anda simpan di Amazon EC2. Anda juga dapat mengambil materi kunci publik dan melakukan identifikasi terhadap kunci publik yang ditentukan saat peluncuran.

**Topics**
+ [Jelaskan pasangan kunci Anda](#describe-public-key)
+ [Mengambil materi kunci publik](#retrieving-the-public-key)
+ [Mengidentifikasi kunci publik yang ditentukan saat peluncuran](#identify-key-pair-specified-at-launch)

## Jelaskan pasangan kunci Anda
<a name="describe-public-key"></a>

Anda dapat melihat informasi berikut ini tentang kunci publik Anda yang disimpan di Amazon EC2: nama kunci publik, ID, jenis kunci, sidik jari, materi kunci publik, tanggal dan waktu (di zona waktu UTC) tempat kunci dibuat oleh Amazon EC2 (jika kunci dibuat oleh alat pihak ketiga, maka tanggal dan waktu tersebut adalah tanggal dan waktu dari kunci yang diimpor ke Amazon EC2), dan setiap tanda yang dikaitkan dengan kunci publik tersebut.

------
#### [ Console ]

**Untuk melihat informasi tentang pasangan kunci Anda**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Pada panel navigasi yang ada di sebelah kiri, pilih **Pasangan Kunci**.

1. Anda dapat melihat informasi tentang setiap kunci publik dalam tabel **Key Pairs** (Pasangan kunci).  
![\[Tabel pasangan kunci.\]](http://docs.aws.amazon.com/id_id/AWSEC2/latest/UserGuide/images/key-pairs-describe-console.png)

1. Untuk melihat tag kunci publik, pilih kotak centang di sebelah kunci, lalu pilih **Tindakan**, **Kelola tag**.

------
#### [ AWS CLI ]

**Untuk melihat informasi tentang key pair**  
Gunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html).

```
aws ec2 describe-key-pairs --key-names key-pair-name
```

------
#### [ PowerShell ]

**Untuk melihat informasi tentang key pair**  
Gunakan [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html)cmdlet.

```
Get-EC2KeyPair -KeyName key-pair-name
```

------

## Mengambil materi kunci publik
<a name="retrieving-the-public-key"></a>

Anda bisa mendapatkan materi kunci publik untuk pasangan kunci Anda. Berikut ini adalah contoh kunci publik. Perhatikan bahwa ada jeda baris yang ditambahkan untuk keterbacaan.

```
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
```

------
#### [ Private key ]

**Untuk mengambil materi kunci publik menggunakan ssh-keygen (Linux)**  
Di komputer Linux atau macOS lokal Anda, gunakan perintah. **ssh-keygen** Tentukan jalur tempat Anda mengunduh kunci privat Anda (file `.pem`).

```
ssh-keygen -y -f /path_to_key_pair/my-key-pair.pem
```

Jika **ssh-keygen** perintah ini gagal, jalankan **chmod** perintah berikut untuk memastikan bahwa file kunci pribadi memiliki izin yang diperlukan.

```
chmod 400 key-pair-name.pem
```

**Untuk mengambil materi kunci publik menggunakan Pu TTYgen (Windows)**  
Di komputer Windows lokal Anda, mulai PuTTYgen. Pilih **Muat**. Pilih file kunci privat `.ppk` atau `.pem`. Pu TTYgen menampilkan kunci publik di bawah **kunci Publik untuk menempel ke file authorized\$1keys OpenSSH**. Anda juga dapat melihat kunci publik dengan memilih **Simpan kunci publik**, dengan menentukan nama untuk file, menyimpan file, lalu membuka file tersebut.

------
#### [ AWS CLI ]

**Untuk mengambil materi kunci publik**  
Gunakan [describe-key-pairs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html)perintah berikut dan tentukan `--include-public-key` opsi.

```
aws ec2 describe-key-pairs \
    --key-names key-pair-name \
    --include-public-key \
    --query "KeyPairs[].PublicKey"
```

------
#### [ PowerShell ]

**Untuk mengambil materi kunci publik**  
Gunakan [Get-EC2KeyPair](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html)cmdlet.

```
(Get-EC2KeyPair -KeyName key-pair-name -IncludePublicKey $true).PublicKey
```

------
#### [ IMDSv2 ]

**Linux**  
Jalankan perintah berikut dari instance Linux Anda.

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

**Windows**  
Jalankan cmdlet berikut dari instance Windows Anda.

```
[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

------
#### [ IMDSv1 ]

**Linux**  
Jalankan perintah berikut dari instance Linux Anda.

```
curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

**Windows**  
Jalankan cmdlet berikut dari instance Windows Anda.

```
Invoke-RestMethod -uri  http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

------

## Mengidentifikasi kunci publik yang ditentukan saat peluncuran
<a name="identify-key-pair-specified-at-launch"></a>

Jika Anda menentukan kunci publik saat meluncurkan instans, maka nama kunci publik tersebut akan direkam oleh instans. Nama kunci publik yang dilaporkan untuk sebuah instans tidak berubah, bahkan jika Anda mengubah kunci publik pada instance atau menambahkan kunci publik.

------
#### [ Console ]

**Untuk mengidentifikasi kunci publik yang ditentukan pada peluncuran instance**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Di panel navigasi, pilih **Instans**.

1. Pilih instans.

1. Pada tab **Detail**, di bawah **Detail instans**, temukan **Pasangan kunci yang ditetapkan saat peluncuran**.

------
#### [ AWS CLI ]

**Untuk mengidentifikasi kunci publik yang ditentukan pada peluncuran instance**  
Gunakan perintah [describe-instance](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) berikut.

```
aws ec2 describe-instances \
    --instance-id i-1234567890abcdef0 \
    --query "Reservations[].Instances[].KeyName" \
    --output text
```

Berikut ini adalah output contoh.

```
key-pair-name
```

------
#### [ PowerShell ]

**Untuk mengidentifikasi kunci publik yang ditentukan pada peluncuran instance**  
Gunakan [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html)cmdlet.

```
(Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances | Select KeyName
```

Berikut ini adalah output contoh.

```
KeyName
-------
key-pair-name
```

------

# Menghapus pasangan kunci Anda
<a name="delete-key-pair"></a>

Anda dapat menghapus key pair, yang menghapus kunci publik yang disimpan di Amazon EC2. Menghapus key pair tidak menghapus kunci pribadi yang cocok.

Saat Anda menghapus kunci publik menggunakan metode berikut, Anda hanya akan menghapus kunci publik yang Anda simpan di Amazon EC2 saat Anda [membuat](create-key-pairs.md#having-ec2-create-your-key-pair) atau [mengimpor](create-key-pairs.md#how-to-generate-your-own-key-and-import-it-to-aws) pasangan kunci. Menghapus kunci publik tidak akan menghapus kunci publik tersebut dari instans mana pun yang padanya kunci publik tersebut telah Anda tambahkan, baik ketika Anda meluncurkan instans atau setelahnya. Hal ini juga tidak akan menghapus kunci privat di komputer lokal Anda. Anda dapat terus terhubung ke instans yang Anda luncurkan menggunakan kunci publik yang Anda hapus dari Amazon EC2 selama Anda masih memiliki file kunci privat (`.pem`).

**penting**  
Jika Anda menggunakan grup Auto Scaling (misalnya, dalam lingkungan Elastic Beanstalk), pastikan bahwa kunci publik yang Anda hapus tidak ditentukan dalam templat peluncuran atau konfigurasi peluncuran yang dikaitkan. Jika Amazon EC2 Auto Scaling mendeteksi instans yang tidak sehat, ia akan meluncurkan instans pengganti. Namun demikian, peluncuran instans tersebut akan gagal jika kunci publik tidak dapat ditemukan. Untuk informasi selengkapnya, lihat [Templat peluncuran](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-templates.html) di *Panduan Pengguna Amazon EC2 Auto Scaling*.

------
#### [ Console ]

**Cara menghapus kunci publik Anda di Amazon EC2**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Di panel navigasi, pilih **Pasangan Kunci**.

1. Pilih pasangan kunci yang akan dihapus lalu pilih **Tindakan**, **Hapus**.

1. Dalam bidang konfirmasi, masukkan `Delete` lalu pilih **Delete** (Hapus).

------
#### [ AWS CLI ]

**Cara menghapus kunci publik Anda di Amazon EC2**  
Gunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-key-pair.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-key-pair.html).

```
aws ec2 delete-key-pair --key-name my-key-pair
```

------
#### [ PowerShell ]

**Cara menghapus kunci publik Anda di Amazon EC2**  
Gunakan [https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2KeyPair.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2KeyPair.html)cmdlet.

```
Remove-EC2KeyPair -KeyName my-key-pair
```

------

# Menambahkan atau mengganti kunci publik pada instance Linux Anda
<a name="replacing-key-pair"></a>


|  | 
| --- |
| Jika Anda kehilangan kunci pribadi, Anda kehilangan akses ke setiap instance yang menggunakan key pair. Untuk informasi lebih lanjut tentang menghubungkan ke instance menggunakan key pair yang berbeda dari yang Anda tentukan saat peluncuran, lihat [Saya kehilangan kunci pribadi saya](TroubleshootingInstancesConnecting.md#replacing-lost-key-pair). | 

Saat meluncurkan instans, Anda dapat [menentukan pasangan kunci](ec2-instance-launch-parameters.md#liw-key-pair). Jika Anda menentukan pasangan kunci, saat instans Anda melakukan booting untuk pertama kalinya, materi kunci publik akan ditempatkan pada instans Linux Anda di entri dalam `~/.ssh/authorized_keys`. Ketika Anda pertama kali terhubung ke instance Linux Anda menggunakan SSH, Anda menentukan pengguna default dan kunci pribadi yang sesuai dengan kunci publik yang disimpan pada instance Linux Anda.

Setelah terhubung ke instans, Anda dapat mengubah key pair yang digunakan untuk mengakses akun sistem default instance Anda dengan menambahkan kunci publik baru pada instance, atau dengan mengganti kunci publik (menghapus kunci publik yang ada dan menambahkan yang baru) pada instance. Anda juga dapat menghapus semua kunci publik dari instans.

Anda dapat menambahkan atau mengganti key pair karena alasan berikut:
+ Jika seorang pengguna dalam organisasi Anda memerlukan akses ke akun pengguna sistem yang menggunakan pasangan kunci terpisah, maka Anda dapat menambahkan kunci publik tersebut ke instans Anda.
+ Jika seseorang memiliki salinan kunci privat (file `.pem`) dan Anda ingin mencegahnya agar tidak terhubung ke instans Anda (misalnya, ketika orang tersebut sudah meninggalkan organisasi Anda), maka Anda dapat mengganti kunci publik dengan yang baru.
+ Jika Anda membuat AMI Linux dari instans, materi kunci publik akan disalin dari instans ke AMI. Jika Anda meluncurkan instans dari AMI, maka instans baru tersebut akan menyertakan kunci publik dari instans asli. Untuk mencegah seseorang yang memiliki kunci privat terhubung ke instans yang baru, Anda dapat menghapus kunci publik dari instans asli *sebelum* membuat AMI.

Gunakan prosedur berikut untuk memodifikasi key pair untuk pengguna default, seperti`ec2-user`. Untuk informasi tentang menambahkan pengguna ke instans Anda, lihat dokumentasi untuk sistem operasi pada instans Anda.

**Cara menambah atau mengganti pasangan kunci**

1. Buatlah pasangan kunci baru menggunakan [konsol Amazon EC2 ](create-key-pairs.md#having-ec2-create-your-key-pair) atau [alat pihak ketiga](create-key-pairs.md#how-to-generate-your-own-key-and-import-it-to-aws).

1. Ambil kunci publik dari pasangan kunci baru Anda. Untuk informasi selengkapnya, lihat [Mengambil materi kunci publik](describe-keys.md#retrieving-the-public-key).

1. [Terhubung](connect-to-linux-instance.md) ke instans Anda.

1. Pada contoh, menggunakan editor teks pilihan Anda, buka `.ssh/authorized_keys` file. Tempelkan informasi kunci publik dari key pair baru Anda di bawah informasi kunci publik yang ada, lalu simpan file tersebut.

1. Putuskan sambungan dari instans Anda. Uji apakah Anda dapat terhubung ke instance Anda menggunakan file kunci pribadi dari key pair baru.

1. Jika Anda menggunakan Auto Scaling, armada EC2, atau template peluncuran untuk meluncurkan instans, periksa apakah key pair yang Anda ganti ditentukan dalam template peluncuran atau konfigurasi peluncuran. Jika tidak, peluncuran instance akan gagal.

1. (Opsional) Jika Anda mengganti pasangan kunci yang sudah ada, hubungkan ke instans Anda dan hapus informasi kunci publik untuk pasangan kunci asli dari file `.ssh/authorized_keys`.

**Untuk menghapus kunci publik dari instans**

1. [Terhubung ke instans Anda](connect-to-linux-instance.md).

1. Dengan menggunakan editor teks yang Anda kehendaki, buka file `.ssh/authorized_keys` pada instans. Hapus informasi kunci publik, dan kemudian simpan file.

**Awas**  
Jika Anda menghapus semua kunci publik dari sebuah instance dan memutuskan sambungan dari instance, Anda tidak dapat menyambung ke instance lagi kecuali Anda telah mengonfigurasi cara alternatif untuk masuk.

# Lakukan verifikasi terhadap sidik jari pasangan kunci Anda
<a name="verify-keys"></a>

Untuk memverifikasi sidik jari key pair Anda, bandingkan sidik jari yang ditampilkan pada halaman **Pasangan kunci** di konsol Amazon EC2, atau dikembalikan oleh [describe-key-pairs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html)perintah, dengan sidik jari yang Anda hasilkan menggunakan kunci pribadi di komputer lokal Anda. Sidik jari ini harus cocok.

Saat Amazon EC2 menghitung sidik jari, Amazon EC2 mungkin menambahkan padding ke sidik jari dengan karakter `=`. Alat lain, seperti **ssh-keygen**, mungkin menghilangkan padding ini.

Jika Anda mencoba memverifikasi sidik jari instans EC2 Linux Anda, bukan sidik jari key pair Anda, lihat [Dapatkan sidik jari instance](connection-prereqs-general.md#connection-prereqs-fingerprint).

## Cara sidik jari dikalkulasi
<a name="how-ec2-key-fingerprints-are-calculated"></a>

Amazon EC2 menggunakan berbagai fungsi hash untuk menghitung sidik jari untuk pasangan kunci RSA dan ED25519. Selain itu, untuk pasangan kunci RSA, Amazon EC2 menghitung sidik jari secara berbeda menggunakan fungsi hash yang berbeda tergantung pada apakah pasangan kunci tersebut dibuat oleh Amazon EC2 atau diimpor ke Amazon EC2.

Tabel berikut ini mencantumkan fungsi hash yang digunakan untuk menghitung sidik jari untuk pasangan kunci RSA dan ED25519 yang dibuat oleh Amazon EC2 dan diimpor ke Amazon EC2.


**(Instance Linux) Fungsi hash yang digunakan untuk menghitung sidik jari**  

| Sumber pasangan kunci | Pasangan kunci RSA (Windows dan Linux) | ED25519 pasangan kunci (Linux) | 
| --- | --- | --- | 
| Dibuat oleh Amazon EC2 | SHA-1 | SHA-256 | 
| Diimpor ke Amazon EC2 | MD5¹ | SHA-256 | 

¹ Jika Anda mengimpor kunci RSA publik ke Amazon EC2, sidik jari akan dihitung menggunakan fungsi hash MD5. Hal ini berlaku terlepas dari cara yang Anda gunakan untuk membuat pasangan kunci, misalnya, menggunakan alat pihak ketiga atau dengan membuat kunci publik baru dari kunci privat yang sudah ada yang dibuat menggunakan Amazon EC2.

## Saat menggunakan pasangan kunci yang sama di Wilayah yang berbeda
<a name="when-using-same-key-pair-in-different-regions"></a>

Jika Anda berencana untuk menggunakan key pair yang sama untuk terhubung ke instance yang berbeda Wilayah AWS, Anda harus mengimpor kunci publik ke semua Wilayah tempat Anda akan menggunakannya. Jika Anda menggunakan Amazon EC2 untuk membuat pasangan kunci, Anda dapat [Mengambil materi kunci publik](describe-keys.md#retrieving-the-public-key) mengimpor kunci publik ke Wilayah lain.

**catatan**  
Jika Anda membuat pasangan kunci RSA menggunakan Amazon EC2, dan kemudian Anda membuat kunci publik dari kunci privat Amazon EC2, kunci publik yang diimpor akan memiliki sidik jari yang berbeda dari kunci publik yang asli. Ini karena sidik jari kunci RSA asli yang dibuat menggunakan Amazon EC2 dihitung menggunakan fungsi hash SHA-1, sedangkan sidik jari kunci RSA yang diimpor dihitung menggunakan fungsi hash. MD5 
Untuk pasangan kunci ED25519, sidik jari akan tetap sama terlepas dari apakah pasangan kunci tersebut dibuat oleh Amazon EC2 atau diimpor ke Amazon EC2, karena fungsi hash SHA-256 yang sama digunakan untuk melakukan kalkulasi terhadap sidik jari.

## Membuat sidik jari dari kunci privat
<a name="generate-fingerprint-from-private-key"></a>

Gunakan salah satu perintah berikut untuk membuat sidik jari dari kunci privat di mesin lokal Anda.

Jika Anda menggunakan mesin lokal Windows, maka Anda dapat menjalankan perintah berikut menggunakan Windows Subsystem for Linux (WSL). Instal WSL dan distribusi Linux menggunakan instruksi di [Cara menginstal Linux di Windows dengan](https://learn.microsoft.com/en-us/windows/wsl/install) WSL. Contoh dalam instruksi tersebut menginstal distribusi Ubuntu Linux, tetapi Anda dapat menginstal distribusi apa pun. Anda akan diminta untuk memulai ulang komputer Anda agar perubahan dapat diterapkan.
+ **Jika Anda membuat pasangan kunci menggunakan Amazon EC2**

  Gunakan alat OpenSSL untuk membuat sidik jari seperti yang ditunjukkan dalam contoh-contoh berikut.

  Untuk pasangan kunci RSA:

  ```
  openssl pkcs8 -in path_to_private_key -inform PEM -outform DER -topk8 -nocrypt | openssl sha1 -c
  ```

  (Instance Linux) Untuk pasangan ED25519 kunci:

  ```
  ssh-keygen -l -f path_to_private_key
  ```
+ **(Hanya pasangan kunci RSA) Jika Anda mengimpor kunci publik ke Amazon EC2**

  Anda dapat mengikuti prosedur ini terlepas dari cara Anda membuat pasangan kunci, misalnya menggunakan alat pihak ketiga atau dengan membuat kunci publik baru dari kunci privat yang sudah ada yang dibuat menggunakan Amazon EC2

  Gunakan alat OpenSSL untuk membuat sidik jari seperti yang ditunjukkan dalam contoh berikut.

  ```
  openssl rsa -in path_to_private_key -pubout -outform DER | openssl md5 -c
  ```
+ **Jika Anda membuat pasangan kunci OpenSSH menggunakan OpenSSH 7.8 atau yang lebih baru dan mengimpor kunci publik ke Amazon EC2**

  Gunakan **ssh-keygen** untuk membuat sidik jari seperti yang ditunjukkan dalam contoh-contoh berikut.

  Untuk pasangan kunci RSA:

  ```
  ssh-keygen -ef path_to_private_key -m PEM | openssl rsa -RSAPublicKey_in -outform DER | openssl md5 -c
  ```

  (Instance Linux) Untuk pasangan ED25519 kunci:

  ```
  ssh-keygen -l -f path_to_private_key
  ```

# Grup keamanan Amazon EC2 untuk instans EC2 Anda
<a name="ec2-security-groups"></a>

 *grup keamanan* bertindak sebagai firewall virtual untuk instans EC2 Anda untuk mengontrol lalu lintas masuk dan ke luar. Aturan-aturan ke dalam mengontrol lalu lintas yang masuk ke instans Anda, dan aturan-aturan ke luar mengontrol lalu lintas yang ke luar dari instans Anda. Saat Anda meluncurkan instans, artinya Anda menentukan satu atau beberapa grup keamanan pada instans tersebut. Jika Anda tidak menentukan grup keamanan, maka Amazon EC2 akan menggunakan grup keamanan default untuk VPC. Setelah Anda meluncurkan instans, Anda dapat mengubah grup keamanannya.

Keamanan adalah tanggung jawab bersama antara Anda AWS dan Anda. Untuk informasi lebih lanjut, lihat[Keamanan dalam Amazon EC2](ec2-security.md). AWS menyediakan grup keamanan sebagai salah satu alat untuk mengamankan instans Anda, dan Anda perlu mengonfigurasinya untuk memenuhi kebutuhan keamanan Anda. Jika Anda memiliki persyaratan yang tidak sepenuhnya dipenuhi oleh grup keamanan, maka Anda dapat mempertahankan firewall Anda sendiri pada instans Anda selain menggunakan grup keamanan.

**Harga**  
Tidak ada biaya tambahan untuk menggunakan grup keamanan.

**Topics**
+ [Ikhtisar](#security-group-basics)
+ [Membuat grup keamanan untuk instans Amazon EC2 Anda](creating-security-group.md)
+ [Mengubah grup keamanan untuk instans Amazon EC2 Anda](changing-security-group.md)
+ [Hapus grup keamanan Amazon EC2](deleting-security-group.md)
+ [Pelacakan koneksi grup keamanan Amazon EC2](security-group-connection-tracking.md)
+ [Aturan-aturan grup keamanan untuk kasus penggunaan yang berbeda](security-group-rules-reference.md)

## Ikhtisar
<a name="security-group-basics"></a>

Anda dapat mengaitkan setiap instance dengan beberapa grup keamanan, dan Anda dapat mengaitkan setiap grup keamanan dengan beberapa instance. Anda menambahkan aturan ke setiap grup keamanan yang mengizinkan lalu lintas ke atau dari instans terkait. Anda dapat melakukan modifikasi terhadap aturan-aturan untuk grup keamanan kapan saja. Aturan-aturan baru dan aturan-aturan yang dimodifikasi akan secara otomatis diterapkan ke semua instans yang dikaitkan dengan grup keamanan. Ketika Amazon EC2 memutuskan apakah akan mengizinkan lalu lintas untuk mencapai instans, Amazon EC2 mengevaluasi semua aturan dari semua grup keamanan yang terkait dengan instans. Untuk informasi selengkapnya, lihat [Aturan grup keamanan](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html) di *Panduan Pengguna Amazon VPC*.

Diagram berikut menunjukkan VPC dengan subnet, gateway internet, dan grup keamanan. Subnet berisi instans EC2. Grup keamanan dikaitkan dengan instance. Satu-satunya lalu lintas yang mencapai instance adalah lalu lintas yang diizinkan oleh aturan grup keamanan. Misalnya, jika grup keamanan berisi aturan yang memungkinkan lalu lintas SSH dari jaringan Anda, maka Anda dapat terhubung ke instance Anda dari komputer menggunakan SSH. Jika grup keamanan berisi aturan yang memungkinkan semua lalu lintas dari sumber daya yang terkait dengannya, maka setiap instance dapat menerima lalu lintas apa pun yang dikirim dari instance lain.

![\[VPC dengan grup keamanan. Instans EC2 di subnet dikaitkan dengan grup keamanan.\]](http://docs.aws.amazon.com/id_id/AWSEC2/latest/UserGuide/images/ec2-security-groups.png)


Grup keamanan bersifat stateful—jika Anda mengirimkan permintaan dari instans Anda, maka lalu lintas tanggapan untuk permintaan tersebut diperbolehkan untuk mengalir tanpa memedulikan aturan-aturan ke dalam grup keamanan. Juga, tanggapan terhadap lalu lintas masuk yang diizinkan diizinkan mengalir keluar, terlepas dari aturan keluar. Untuk informasi selengkapnya, lihat [Pelacakan koneksi](security-group-connection-tracking.md).

# Membuat grup keamanan untuk instans Amazon EC2 Anda
<a name="creating-security-group"></a>

Grup keamanan bertindak sebagai firewall untuk instans-instans yang dikaitkan, mengontrol lalu lintas ke dalam dan ke luar pada tingkat instans. Anda dapat menambahkan aturan ke grup keamanan yang memungkinkan Anda terhubung ke instans menggunakan SSH (instance Linux) atau RDP (instance Windows). Anda juga dapat menambahkan aturan yang memungkinkan lalu lintas klien, misalnya, lalu lintas HTTP dan HTTPS yang ditujukan ke server web.

Anda dapat mengaitkan grup keamanan dengan instance saat meluncurkan instance. Saat Anda menambahkan atau menghapus aturan dari grup keamanan terkait, perubahan tersebut secara otomatis diterapkan ke semua instance yang Anda kaitkan dengan grup keamanan.

Setelah meluncurkan instance, Anda dapat mengaitkan grup keamanan tambahan. Untuk informasi selengkapnya, lihat [Mengubah grup keamanan untuk instans Amazon EC2 Anda](changing-security-group.md).

Anda dapat menambahkan aturan grup keamanan masuk dan keluar saat membuat grup keamanan atau menambahkannya nanti. Untuk informasi selengkapnya, lihat [Mengonfigurasi aturan grup keamanan](changing-security-group.md#add-remove-security-group-rules). Untuk contoh aturan yang dapat Anda tambahkan ke grup keamanan, lihat[Aturan-aturan grup keamanan untuk kasus penggunaan yang berbeda](security-group-rules-reference.md).

**Pertimbangan-pertimbangan**
+ Grup keamanan baru dimulai dengan hanya aturan keluar yang memungkinkan semua lalu lintas meninggalkan sumber daya. Anda harus menambahkan aturan-aturan lain untuk mengizinkan lalu lintas ke dalam atau membatasi lalu lintas ke luar.
+ Saat mengonfigurasi sumber untuk aturan yang memungkinkan akses SSH atau RDP ke instance Anda, jangan izinkan akses dari mana saja, karena itu akan memungkinkan akses ini ke instance Anda dari semua alamat IP di internet. Hal ini dapat diterima untuk waktu yang singkat di lingkungan pengujian, tetapi tidak aman untuk lingkungan produksi.
+ Jika ada lebih dari satu aturan untuk port tertentu, maka Amazon EC2 akan menerapkan aturan yang paling permisif. Misalnya, jika Anda memiliki aturan yang memungkinkan akses ke port TCP 22 (SSH) dari alamat IP 203.0.113.1, dan aturan lain yang memungkinkan akses ke port TCP 22 dari mana saja, maka setiap orang memiliki akses ke port TCP 22.
+ Anda dapat mengaitkan beberapa grup keamanan dengan sebuah instance. Oleh karena itu, instans dapat memiliki ratusan aturan yang berlaku. Hal ini dapat menyebabkan masalah saat Anda mengakses instans tersebut. Kami menyarankan agar Anda sedapat mungkin membuat aturan-aturan yang padat.
+ Saat Anda menentukan grup keamanan sebagai sumber atau tujuan dari aturan, aturan tersebut akan memengaruhi semua instans yang dikaitkan dengan grup keamanan tersebut. Lalu lintas masuk diizinkan berdasarkan alamat IP privat dari instans yang dikaitkan dengan grup keamanan sumber (dan bukan alamat IP publik atau alamat IP Elastis). Untuk informasi selengkapnya tentang alamat IP, lihat [Pengalamatan IP instans Amazon EC2](using-instance-addressing.md).
+ Amazon EC2 memblokir lalu lintas pada port 25 secara default. Untuk informasi selengkapnya, lihat [Pembatasan pada email yang dikirim menggunakan port 25](ec2-resource-limits.md#port-25-throttle).

------
#### [ Console ]

**Cara membuat grup keamanan**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Di panel navigasi, pilih **Security Groups** (Grup Keamanan).

1. Pilih **Buat grup keamanan**.

1. Masukkan nama deskriptif dan deskripsi singkat untuk grup keamanan. Anda tidak dapat mengubah nama dan deskripsi grup keamanan setelah dibuat.

1. Untuk **VPC**, pilih VPC tempat Anda akan menjalankan instans Amazon EC2.

1. (Opsional) Untuk menambahkan aturan masuk, pilih Aturan **masuk**. Untuk setiap aturan, pilih **Tambahkan aturan** dan tentukan protokol, port, dan sumber. **Misalnya, untuk mengizinkan lalu lintas SSH, pilih **SSH** untuk **Jenis** dan tentukan IPv4 alamat publik komputer atau jaringan Anda untuk Sumber.**

1. (Opsional) Untuk menambahkan aturan keluar, pilih Aturan **keluar**. Untuk setiap aturan, pilih **Tambahkan aturan** dan tentukan protokol, port, dan tujuan. Jika tidak, Anda dapat mempertahankan aturan default, yang memungkinkan semua lalu lintas keluar.

1. (Opsional) Untuk menambahkan tag, pilih **Tambahkan tag baru** dan masukkan kunci tag dan nilai.

1. Pilih **Create security group** (Buat grup keamanan).

------
#### [ AWS CLI ]

**Cara membuat grup keamanan**  
Gunakan perintah berikut [create-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-security-group.html).

```
aws ec2 create-security-group \
    --group-name my-security-group \
    --description "my security group" \
    --vpc-id vpc-1234567890abcdef0
```

Untuk contoh yang menambahkan aturan, lihat[Mengonfigurasi aturan grup keamanan](changing-security-group.md#add-remove-security-group-rules).

------
#### [ PowerShell ]

**Cara membuat grup keamanan**  
Gunakan [New-EC2SecurityGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2SecurityGroup.html)cmdlet.

```
New-EC2SecurityGroup `
    -GroupName my-security-group `
    -Description "my security group" `
    -VpcId vpc-1234567890abcdef0
```

Untuk contoh yang menambahkan aturan, lihat[Mengonfigurasi aturan grup keamanan](changing-security-group.md#add-remove-security-group-rules).

------

# Mengubah grup keamanan untuk instans Amazon EC2 Anda
<a name="changing-security-group"></a>

Anda dapat menentukan grup keamanan untuk instans Amazon EC2 saat meluncurkannya. Setelah meluncurkan instance, Anda dapat menambah atau menghapus grup keamanan. Anda juga dapat menambahkan, menghapus, atau mengedit aturan grup keamanan untuk grup keamanan terkait kapan saja.

Grup keamanan dikaitkan dengan antarmuka jaringan. Menambahkan atau menghapus grup keamanan mengubah grup keamanan yang terkait dengan antarmuka jaringan utama. Anda juga dapat mengubah grup keamanan yang terkait dengan antarmuka jaringan sekunder apa pun. Untuk informasi selengkapnya, lihat [Memodifikasi atribut antarmuka jaringan](modify-network-interface-attributes.md).

**Topics**
+ [Menambah atau menghapus grup keamanan](#add-remove-instance-security-groups)
+ [Mengonfigurasi aturan grup keamanan](#add-remove-security-group-rules)

## Menambah atau menghapus grup keamanan
<a name="add-remove-instance-security-groups"></a>

Setelah meluncurkan instans, Anda dapat menambahkan atau menghapus grup keamanan dari daftar grup keamanan terkait. Saat Anda mengaitkan beberapa grup keamanan dengan instans, aturan-aturan dari masing-masing grup keamanan akan digabungkan secara efektif untuk membuat satu set aturan. Amazon EC2 menggunakan seperangkat aturan ini untuk menentukan apakah akan mengizinkan lalu lintas.

**Persyaratan**
+ Instans harus berada dalam status `running` atau `stopped`.

------
#### [ Console ]

**Untuk mengubah grup keamanan instans**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Di panel navigasi, pilih **Instans**.

1. Pilih instans Anda, dan kemudian pilih **Actions** (Tindakan), **Security** (Keamanan), **Change security groups** (Ubah grup keamanan).

1. Untuk **Grup keamanan terkait**, pilih grup keamanan dari daftar dan pilih **Add security group** (Tambahkan grup keamanan).

   Untuk menghapus grup keamanan yang sudah dikaitkan, pilih **Remove** (Hapus) untuk grup keamanan itu.

1. Pilih **Save** (Simpan).

------
#### [ AWS CLI ]

**Untuk mengubah grup keamanan instans**  
Gunakan perintah berikut [modify-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html).

```
aws ec2 modify-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --groups sg-1234567890abcdef0
```

------
#### [ PowerShell ]

**Untuk mengubah grup keamanan instans**  
Gunakan [Edit-EC2InstanceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html)cmdlet.

```
Edit-EC2InstanceAttribute `
    -InstanceId i-1234567890abcdef0 `
    -Group sg-1234567890abcdef0
```

------

## Mengonfigurasi aturan grup keamanan
<a name="add-remove-security-group-rules"></a>

Setelah membuat grup keamanan, Anda dapat menambahkan, memperbarui, dan menghapus aturan grup keamanannya. Saat Anda menambahkan, memperbarui, atau menghapus aturan, perubahan secara otomatis diterapkan ke sumber daya yang terkait dengan grup keamanan.

Untuk contoh aturan yang dapat Anda tambahkan ke grup keamanan, lihat[Aturan-aturan grup keamanan untuk kasus penggunaan yang berbeda](security-group-rules-reference.md).

**Izin yang diperlukan**  
Sebelum memulai, pastikan Anda memiliki izin yang diperlukan. Untuk informasi selengkapnya, lihat [Contoh: Cara menggunakan grup keamanan](iam-policies-ec2-console.md#ex-security-groups).

**Protokol dan port**
+ Dengan konsol, ketika Anda memilih jenis yang telah ditentukan, **Protokol** dan **rentang Port** ditentukan untuk Anda. Untuk memasukkan rentang port, Anda harus memilih salah satu dari jenis kustom berikut: **TCP Kustom** atau **UDP Kustom**.
+ Dengan itu AWS CLI, Anda dapat menambahkan satu aturan dengan satu port menggunakan `--port` opsi `--protocol` dan. Untuk menambahkan beberapa aturan, atau aturan dengan rentang port, gunakan `--ip-permissions` opsi sebagai gantinya.

**Sumber dan tujuan**
+ Dengan konsol, Anda dapat menentukan yang berikut ini sebagai sumber untuk aturan masuk atau tujuan untuk aturan keluar:
  + **Kustom** — Blok IPv4 CIDR, blok IPv6 CIDR, grup keamanan, atau daftar awalan.
  + **Di mana saja- IPv4** - Blok CIDR 0.0.0.0/0 IPv4 .
  + **Di mana saja- IPv6** - Blok IPv6 CIDR: :/0.
  + **IP saya** — IPv4 Alamat publik komputer lokal Anda.
+ Dengan AWS CLI, Anda dapat menentukan blok IPv4 CIDR menggunakan `--cidr` opsi atau grup keamanan menggunakan `--source-group` opsi. Untuk menentukan daftar awalan atau blok IPv6 CIDR, gunakan opsi. `--ip-permissions`

**Awas**  
Jika Anda menambahkan aturan masuk untuk port 22 (SSH) atau 3389 (RDP), kami sangat menyarankan agar Anda hanya mengotorisasi alamat IP tertentu atau rentang alamat yang memerlukan akses ke instans Anda. Jika Anda memilih **Anywhere- IPv4**, Anda mengizinkan lalu lintas dari semua IPv4 alamat untuk mengakses instans Anda menggunakan protokol yang ditentukan. Jika Anda memilih **Anywhere- IPv6**, Anda mengizinkan lalu lintas dari semua IPv6 alamat untuk mengakses instans Anda menggunakan protokol yang ditentukan.

------
#### [ Console ]

**Mengonfigurasi aturan grup keamanan**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Pada panel navigasi, pilih **Security Groups** (Grup Keamanan).

1. Pilih grup keamanan.

1. Untuk mengedit aturan masuk, pilih **Edit aturan masuk** dari **Tindakan** atau tab Aturan **masuk**.

   1. Untuk menambahkan aturan, pilih **Tambahkan aturan** dan masukkan jenis, protokol, port, dan sumber untuk aturan tersebut.

      Jika jenisnya adalah TCP atau UDP, Anda harus memasukkan rentang port untuk mengizinkan. Untuk ICMP kustom, Anda harus memilih jenis ICMP dari **Protokol**, dan, jika memungkinkan, nama kode dari **Rentang port**. Untuk jenis lainnya, protokol dan rentang port akan dikonfigurasikan untuk Anda.

   1. Untuk memperbarui aturan, ubah protokol, deskripsi, dan sumbernya sesuai kebutuhan. Namun, Anda tidak dapat mengubah jenis sumber. Misalnya, jika sumbernya adalah blok IPv4 CIDR, Anda tidak dapat menentukan blok IPv6 CIDR, daftar awalan, atau grup keamanan.

   1. Untuk menghapus aturan, pilih tombol **Hapus**.

1. Untuk mengedit aturan keluar, pilih **Edit aturan keluar** dari **Tindakan** atau tab Aturan **keluar**.

   1. Untuk menambahkan aturan, pilih **Tambahkan aturan** dan masukkan jenis, protokol, port, dan tujuan untuk aturan tersebut. Anda juga dapat memasukkan deskripsi opsional.

      Jika jenisnya adalah TCP atau UDP, Anda harus memasukkan rentang port untuk mengizinkan. Untuk ICMP kustom, Anda harus memilih jenis ICMP dari **Protokol**, dan, jika memungkinkan, nama kode dari **Rentang port**. Untuk jenis lainnya, protokol dan rentang port akan dikonfigurasikan untuk Anda.

   1. Untuk memperbarui aturan, ubah protokol, deskripsi, dan sumbernya sesuai kebutuhan. Namun, Anda tidak dapat mengubah jenis sumber. Misalnya, jika sumbernya adalah blok IPv4 CIDR, Anda tidak dapat menentukan blok IPv6 CIDR, daftar awalan, atau grup keamanan.

   1. Untuk menghapus aturan, pilih tombol **Hapus**.

1. Pilih **Simpan aturan**.

------
#### [ AWS CLI ]

**Untuk menambahkan aturan grup keamanan**  
Gunakan [authorize-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-ingress.html)perintah untuk menambahkan aturan masuk. Contoh berikut memungkinkan lalu lintas SSH masuk dari blok CIDR dalam daftar awalan yang ditentukan.

```
aws ec2 authorize-security-group-ingress \
    --group-id sg-1234567890abcdef0 \
    --ip-permissions 'IpProtocol=tcp,FromPort=22,ToPort=22,PrefixListIds=[{PrefixListId=pl-f8a6439156EXAMPLE}]'
```

Gunakan [authorize-security-group-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-egress.html)perintah untuk menambahkan aturan keluar. Contoh berikut memungkinkan lalu lintas TCP keluar pada port 80 ke instance dengan grup keamanan yang ditentukan.

```
aws ec2 authorize-security-group-egress \
    --group-id sg-1234567890abcdef0 \
    --ip-permissions 'IpProtocol=tcp,FromPort=80,ToPort=80,UserIdGroupPairs=[{GroupId=sg-0aad1c26bb6EXAMPLE}]'
```

**Untuk menghapus aturan grup keamanan**  
Gunakan [revoke-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-ingress.html)perintah berikut untuk menghapus aturan masuk.

```
aws ec2 revoke-security-group-egress \
    --group id sg-1234567890abcdef0 \
    --security-group-rule-ids sgr-09ed298024EXAMPLE
```

Gunakan [revoke-security-group-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-egress.html)perintah berikut untuk menghapus aturan keluar.

```
aws ec2 revoke-security-group-ingress \
    --group id sg-1234567890abcdef0 \
    --security-group-rule-ids sgr-0352250c1aEXAMPLE
```

**Untuk mengubah aturan grup keamanan**  
Gunakan perintah [modify-security-group-rules](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-security-group-rules.html). Contoh berikut mengubah blok IPv4 CIDR dari aturan grup keamanan yang ditentukan.

```
aws ec2 modify-security-group-rules \
    --group id sg-1234567890abcdef0 \
    --security-group-rules 'SecurityGroupRuleId=sgr-09ed298024EXAMPLE,SecurityGroupRule={IpProtocol=tcp,FromPort=80,ToPort=80,CidrIpv4=0.0.0.0/0}'
```

------
#### [ PowerShell ]

**Untuk menambahkan aturan grup keamanan**  
Gunakan [Grant-EC2SecurityGroupIngress](https://docs.aws.amazon.com/powershell/latest/reference/items/Grant-EC2SecurityGroupIngress.html)cmdlet untuk menambahkan aturan masuk. Contoh berikut memungkinkan lalu lintas SSH masuk dari blok CIDR dalam daftar awalan yang ditentukan.

```
$plid = New-Object -TypeName Amazon.EC2.Model.PrefixListId
$plid.Id = "pl-f8a6439156EXAMPLE"
Grant-EC2SecurityGroupIngress `
    -GroupId sg-1234567890abcdef0 `
    -IpPermission @{IpProtocol="tcp"; FromPort=22; ToPort=22; PrefixListIds=$plid}
```

Gunakan [Grant-EC2SecurityGroupEgress](https://docs.aws.amazon.com/powershell/latest/reference/items/Grant-EC2SecurityGroupEgress.html)cmdlet untuk menambahkan aturan keluar. Contoh berikut memungkinkan lalu lintas TCP keluar pada port 80 ke instance dengan grup keamanan yang ditentukan.

```
$uigp = New-Object -TypeName Amazon.EC2.Model.UserIdGroupPair
$uigp.GroupId = "sg-0aad1c26bb6EXAMPLE"
Grant-EC2SecurityGroupEgress `
    -GroupId sg-1234567890abcdef0 `
    -IpPermission @{IpProtocol="tcp"; FromPort=80; ToPort=80; UserIdGroupPairs=$uigp}
```

**Untuk menghapus aturan grup keamanan**  
Gunakan [Revoke-EC2SecurityGroupIngress](https://docs.aws.amazon.com/powershell/latest/reference/items/Revoke-EC2SecurityGroupIngress.html)cmdlet untuk menghapus aturan masuk.

```
Revoke-EC2SecurityGroupIngress `
    -GroupId sg-1234567890abcdef0 `
    -SecurityGroupRuleId sgr-09ed298024EXAMPLE
```

Gunakan [Revoke-EC2SecurityGroupEgress](https://docs.aws.amazon.com/powershell/latest/reference/items/Revoke-EC2SecurityGroupEgress.html)cmdlet untuk menghapus aturan keluar.

```
Revoke-EC2SecurityGroupEgress `
    -GroupId sg-1234567890abcdef0 `
    -SecurityGroupRuleId sgr-0352250c1aEXAMPLE
```

**Untuk mengubah aturan grup keamanan**  
Gunakan [Edit-EC2SecurityGroupRule](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2SecurityGroupRule.html)cmdlet. Contoh berikut mengubah blok IPv4 CIDR dari aturan grup keamanan yang ditentukan.

```
$sgrr = New-Object -TypeName Amazon.EC2.Model.SecurityGroupRuleRequest
$sgrr.IpProtocol = "tcp"
$sgrr.FromPort = 80
$sgrr.ToPort = 80
$sgrr.CidrIpv4 = "0.0.0.0/0"
$sgr = New-Object -TypeName Amazon.EC2.Model.SecurityGroupRuleUpdate
$sgr.SecurityGroupRuleId = "sgr-09ed298024EXAMPLE"
$sgr.SecurityGroupRule = $sgrr
Edit-EC2SecurityGroupRule  `
    -GroupId sg-1234567890abcdef0 `
    -SecurityGroupRule $sgr
```

------

# Hapus grup keamanan Amazon EC2
<a name="deleting-security-group"></a>

Setelah selesai dengan grup keamanan yang Anda buat untuk digunakan dengan instans Amazon EC2, Anda dapat menghapusnya.

**Persyaratan**
+ Grup keamanan tidak dapat dikaitkan dengan instance atau antarmuka jaringan.
+ Grup keamanan tidak dapat direferensikan oleh aturan di grup keamanan lain.

------
#### [ Console ]

**Cara menghapus grup keamanan**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. (Opsional) Untuk memverifikasi bahwa grup keamanan Anda tidak terkait dengan instans, lakukan hal berikut:

   1. Pada panel navigasi, pilih **Grup Keamanan**.

   1. Salin ID grup keamanan untuk dihapus.

   1. Di panel navigasi, pilih **Instans**.

   1. Di bilah pencarian, tambahkan **Grup keamanan IDs sama dengan** filter dan tempel ID grup keamanan. Jika tidak ada hasil, maka grup keamanan tidak terkait dengan instance. Jika tidak, Anda harus memisahkan grup keamanan sebelum Anda dapat menghapusnya.

1. Pada panel navigasi, pilih **Grup Keamanan**.

1. Pilih grup keamanan lalu pilih **Tindakan**, **Hapus Grup Keamanan**.

1. Jika Anda memilih lebih dari satu grup keamanan, Anda akan diminta untuk konfirmasi. Jika beberapa grup keamanan tidak dapat dihapus, kami menampilkan status setiap grup keamanan, yang menunjukkan apakah itu akan dihapus. **Untuk mengonfirmasi penghapusan, masukkan Hapus.**

1. Pilih **Hapus**.

------
#### [ AWS CLI ]

**Cara menghapus grup keamanan**  
Gunakan perintah berikut [delete-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-security-group.html).

```
aws ec2 delete-security-group --group-id sg-1234567890abcdef0
```

------
#### [ PowerShell ]

**Cara menghapus grup keamanan**  
Gunakan [Remove-EC2SecurityGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2SecurityGroup.html)cmdlet.

```
Remove-EC2SecurityGroup -GroupId sg-1234567890abcdef0
```

------

# Pelacakan koneksi grup keamanan Amazon EC2
<a name="security-group-connection-tracking"></a>

Grup keamanan Anda menggunakan pelacakan koneksi untuk melacak informasi tentang lalu lintas ke dan dari instans. Aturan-aturan diterapkan berdasarkan status koneksi lalu lintas untuk menentukan apakah lalu lintas diizinkan atau ditolak. Dengan pendekatan ini, grup keamanan berada dalam status stateful. Artinya tanggapan-tanggapan terhadap lalu lintas ke dalam diizinkan mengalir ke luar dari instans tanpa memedulikan aturan grup keamanan ke luar, dan sebaliknya.

Sebagai contoh, anggaplah bahwa Anda memulai perintah seperti netcat atau yang mirip dengan instans Anda dari komputer rumah Anda, dan aturan grup keamanan ke dalam Anda mengizinkan lalu lintas ICMP. Informasi tentang koneksi (termasuk informasi port) akan dilacak. Lalu lintas tanggapan dari instans untuk perintah tidak dilacak sebagai permintaan baru, tetapi sebagai koneksi yang telah terbentuk dan diizinkan untuk mengalir ke luar dari instans, meskipun aturan grup keamanan ke luar Anda membatasi lalu lintas ICMP ke luar.

Untuk protokol selain TCP, UDP, atau ICMP, hanya alamat IP dan nomor protokol saja yang dilacak. Jika instans Anda mengirimkan lalu lintas ke host lain, dan host tersebut mengirimkan jenis lalu lintas yang sama ke instans Anda dalam 600 detik, maka grup keamanan untuk instans Anda akan menerimanya terlepas dari aturan-aturan ke dalam grup keamanan tersebut. Grup keamanan tersebut menerimanya karena dianggap sebagai lalu lintas tanggapan untuk lalu lintas asli.

Ketika Anda mengubah aturan grup keamanan, koneksi-koneksi yang dilacak tidak akan langsung terputus. Grup keamanan akan tetap mengizinkan paket sampai koneksi yang ada waktunya habis. Untuk memastikan lalu lintas langsung terputus, atau bahwa semua lalu lintas tunduk pada aturan-aturan firewall tanpa memedulikan status pelacakan, Anda dapat menggunakan ACL jaringan untuk subnet Anda. Jaringan ACLs tidak memiliki kewarganegaraan dan oleh karena itu tidak secara otomatis mengizinkan lalu lintas respons. Menambahkan ACL jaringan yang memblokir lalu lintas di salah satu arah akan memutuskan koneksi yang ada. Untuk informasi selengkapnya, lihat [ ACLs Jaringan](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) dalam *Panduan Pengguna Amazon VPC*.

**catatan**  
[Grup keamanan tidak berpengaruh pada lalu lintas DNS ke atau dari Route 53 Resolver, kadang-kadang disebut sebagai 'alamat IP VPC\$12 '(lihat Apa itu Amazon Route 53 Resolver?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html) di *Panduan Pengembang Amazon Route 53*), atau 'AmazonProvidedDNS' (lihat [set opsi Bekerja dengan DHCP](https://docs.aws.amazon.com/vpc/latest/userguide/DHCPOptionSet.html) di Panduan *Pengguna Amazon Virtual Private Cloud*). Jika Anda ingin memfilter permintaan DNS melalui Route 53 Resolver, Anda dapat mengaktifkan Firewall DNS Route 53 Resolver (lihat [Firewall DNS Route 53 Resolver](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-dns-firewall.html) di *Panduan Developer Amazon Route 53*).

## Koneksi-koneksi yang tidak dilacak
<a name="untracked-connections"></a>

Tidak semua aliran lalu lintas dilacak. [Jika aturan grup keamanan mengizinkan aliran TCP atau UDP untuk semua lalu lintas (0.0.0.0/0 atau: :/0) dan ada aturan yang sesuai di arah lain yang mengizinkan semua lalu lintas respons (0.0.0.0/0 atau: :/0) untuk port apa pun (0-65535), maka arus lalu lintas itu tidak dilacak, kecuali itu adalah bagian dari koneksi yang dilacak secara otomatis.](#automatic-tracking) Lalu lintas tanggapan untuk aliran yang tidak dilacak akan diizinkan berdasarkan aturan-aturan ke dalam atau ke luar yang mengizinkan lalu lintas tanggapan, bukan berdasarkan informasi pelacakan.

Aliran lalu lintas yang tidak dilacak akan langsung diputus jika aturan yang memungkinkan aliran dihapus atau dimodifikasi. Sebagai contoh, jika Anda memiliki aturan ke luar (0.0.0.0/0) yang terbuka dan Anda menghapus aturan yang mengizinkan semua lalu lintas SSH ke dalam (0.0.0.0/0) (port TCP 22) ke instans (atau memodifikasinya sehingga koneksi tidak diizinkan lagi), maka koneksi SSH yang sudah ada pada instans tersebut akan langsung dibuang. Koneksi tersebut sebelumnya tidak dilacak, sehingga perubahan yang diterapkan akan memutus koneksi itu. Di sisi lain, jika Anda memiliki aturan ke dalam yang lebih sempit yang dari awal mengizinkan koneksi SSH (artinya koneksi dilacak), tetapi kemudian Anda mengubah aturan tersebut sehingga tidak lagi mengizinkan koneksi baru dari alamat klien SSH saat ini, maka koneksi SSH yang sudah ada tidak akan terputus karena koneksi itu sudah dilacak.

## Koneksi-koneksi yang dilacak secara otomatis
<a name="automatic-tracking"></a>

Koneksi yang dilakukan melalui berikut ini secara otomatis dilacak, bahkan jika konfigurasi grup keamanan tidak memerlukan pelacakan:
+ Gateway internet khusus egress
+ Akselerator Global Accelerator
+ Gateway NAT
+ Titik akhir firewall Network Firewall
+ Penyeimbang Beban Jaringan
+ AWS PrivateLink (antarmuka titik akhir VPC)
+ AWS Lambda (Antarmuka jaringan elastis hyperplane)
+ Titik akhir gateway DynamoDB - Setiap koneksi ke DynamoDB mengkonsumsi 2 entri conntrack.

## Tunjangan pelacakan koneksi
<a name="connection-tracking-throttling"></a>

Amazon EC2 menetapkan jumlah maksimum koneksi yang dapat dilacak untuk setiap instans. Setelah jumlah maksimum tercapai, setiap paket yang dikirim atau diterima akan dihapus karena koneksi baru tidak dapat dibuat. Ketika ini terjadi, aplikasi-aplikasi yang mengirim dan menerima paket tidak akan dapat berkomunikasi dengan semestinya. Gunakan metrik performa jaringan `conntrack_allowance_available` untuk menentukan jumlah koneksi yang dilacak yang masih tersedia untuk tipe instans tersebut.

Untuk menentukan apakah paket sudah dihapus karena lalu lintas jaringan untuk instans Anda melebihi jumlah maksimum koneksi yang dapat dilacak, gunakan metrik performa jaringan `conntrack_allowance_exceeded`. Untuk informasi selengkapnya, lihat [Pantau kinerja jaringan untuk pengaturan ENA pada instans EC2 Anda](monitoring-network-performance-ena.md).

Dengan Penyeimbangan Beban Elastis, jika Anda melebihi jumlah maksimum koneksi yang dapat dilacak untuk setiap instans, kami merekomendasikan agar Anda menskalakan jumlah instans yang terdaftar dengan penyeimbang beban atau ukuran instans yang terdaftar dengan penyeimbang beban.

## Praktik terbaik pelacakan koneksi
<a name="connection-tracking-performance"></a>

Perutean asimetris, di mana lalu lintas masuk ke sebuah instance melalui satu antarmuka jaringan dan pergi melalui antarmuka jaringan yang berbeda, dapat mengurangi kinerja puncak yang dapat dicapai oleh instans jika arus dilacak.

Untuk mempertahankan kinerja puncak dan mengoptimalkan manajemen koneksi saat pelacakan koneksi diaktifkan untuk grup keamanan Anda, kami merekomendasikan konfigurasi berikut:
+ Hindari topologi routing asimetris, jika memungkinkan.
+ Alih-alih menggunakan grup keamanan untuk pemfilteran, gunakan jaringan ACLs.
+ Jika Anda harus menggunakan grup keamanan dengan pelacakan koneksi, konfigurasikan batas waktu pelacakan koneksi idle sesingkat mungkin. Untuk detail selengkapnya tentang batas waktu pelacakan koneksi idle, lihat bagian berikut.
+ Dengan batas waktu default yang lebih pendek pada instans Nitrov6, aplikasi dengan koneksi berumur panjang (seperti kumpulan koneksi database, koneksi HTTP persisten, atau beban kerja streaming) harus mengonfigurasi nilai yang sesuai saat peluncuran instance. `TcpEstablishedTimeout`
+ Untuk koneksi yang berumur panjang, konfigurasikan TCP keep alives untuk dikirim pada interval kurang dari 5 menit untuk memastikan koneksi tetap terbuka dan mempertahankan status terlacaknya. Ini membantu mencegah koneksi terputus karena batas waktu idle dan mengurangi overhead pembentukan kembali koneksi.

Untuk informasi lebih lanjut tentang penyetelan kinerja pada sistem Nitro, lihat. [Pertimbangan sistem nitro untuk penyetelan kinerja](ena-nitro-perf.md)

## Waktu habis pelacakan koneksi idle
<a name="connection-tracking-timeouts"></a>

Grup keamanan melacak setiap koneksi yang dibuat untuk memastikan bahwa paket yang kembali dikirim seperti yang diharapkan. Ada jumlah maksimum koneksi yang dapat dilacak per instans. Koneksi yang tetap dalam keadaan idle dapat menyebabkan terbebaninya pelacakan koneksi dan menyebabkan koneksi tidak dilacak dan paket terputus. Anda sekarang dapat mengatur batas waktu untuk pelacakan koneksi pada antarmuka jaringan Elastis.

**catatan**  
Fitur ini hanya tersedia dengan [instance berbasis Nitro](instance-types.md#instance-hypervisor-type). Anda harus menguji aplikasi Anda pada instance pembuatan Nitrov6 dengan batas waktu pelacakan koneksi default `350` kedua yang dikurangi sebelum menerapkan ke produksi.

Ada tiga batas waktu yang dapat dikonfigurasi:
+ **TCP menetapkan batas waktu**: Batas waktu (dalam detik) untuk koneksi TCP idle dalam keadaan mapan.
  + Min: `60` detik
  + Maks: `432000` detik
  + Default: `350` detik untuk jenis instans [Nitrov6](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html), tidak termasuk P6e-. GB200 Dan `432000` detik untuk jenis contoh lainnya, termasuk P6e-. GB200
  + Direkomendasikan: Kurang dari `432000` detik
+ **Batas waktu UDP**: Batas waktu (dalam detik) untuk alur UDP idle yang telah melihat lalu lintas hanya dalam satu arah atau transaksi permintaan-respons tunggal.
  + Min: `30` detik
  + Maks: `60` detik
  + Default: `30` detik
+ **Batas waktu aliran UDP**: Batas waktu (dalam detik) untuk alur UDP idle yang diklasifikasikan sebagai alur yang telah melihat lebih dari satu transaksi permintaan-respons.
  + Min: `60` detik
  + Maks: `180` detik
  + Default: `180` detik

Anda mungkin ingin memodifikasi batas waktu default untuk salah satu kasus berikut:
+  Jika Anda [memantau koneksi yang dilacak menggunakan metrik performa jaringan Amazon EC2](monitoring-network-performance-ena.md), metrik *conntrack\$1allowance\$1exceeded* dan *conntrack\$1allowance\$1available* memungkinkan Anda memantau paket yang terputus dan pemanfaatan koneksi yang dilacak untuk secara proaktif mengelola kapasitas instans EC2 dengan tindakan peningkatatan atau penurunan skala untuk membantu memenuhi permintaan koneksi jaringan sebelum memutuskan paket. Jika Anda mengamati penurunan *conntrack\$1allowance\$1exceeded* pada instans EC2 Anda, Anda dapat memperoleh manfaat dari menyetel batas waktu yang ditetapkan TCP yang lebih rendah untuk memperhitungkan sesi basi yang dihasilkan dari klien yang tidak tepat atau kotak tengah jaringan. TCP/UDP 
+ Biasanya, penyeimbang beban atau firewall memiliki batas waktu idle yang Ditetapkan TCP dalam kisaran 60 hingga 90 menit. Jika Anda menjalankan beban kerja yang diharapkan akan menangani jumlah koneksi yang sangat banyak (lebih dari 100k) dari peralatan seperti firewall jaringan, Anda disarankan untuk mengonfigurasi batas waktu yang sama pada antarmuka jaringan EC2.
+ Jika Anda menjalankan beban kerja yang menggunakan topologi perutean asimetris, kami sarankan Anda mengonfigurasi batas waktu idle yang ditetapkan TCP selama 60 detik.
+ Jika Anda menjalankan beban kerja dengan jumlah koneksi yang tinggi seperti DNS, SIP, SNMP, Syslog, Radius, dan layanan lain yang terutama menggunakan UDP untuk melayani permintaan, pengaturan batas waktu 'UDP-stream' ke 60-an memberikan lebih tinggi scale/performance untuk kapasitas yang ada dan untuk mencegah kegagalan abu-abu.
+ Untuk TCP/UDP koneksi melalui Network Load Balancers, semua koneksi dilacak. Nilai batas waktu idle untuk aliran TCP adalah 350 detik dan aliran UDP adalah 120 detik, serta bervariasi dari nilai batas waktu tingkat antarmuka. Anda mungkin ingin mengonfigurasi batas waktu di tingkat antarmuka jaringan untuk memungkinkan lebih banyak fleksibilitas untuk batas waktu daripada default untuk penyeimbang beban.

Anda memiliki opsi untuk mengonfigurasi batas waktu pelacakan koneksi saat Anda melakukan hal berikut:
+ [Membuat antarmuka jaringan](create-network-interface.md)
+ [Memodifikasi atribut antarmuka jaringan](modify-network-interface-attributes.md)
+ [Meluncurkan instans EC2](ec2-instance-launch-parameters.md#liw-network-settings)
+ [Buat templat peluncuran instans EC2](ec2-instance-launch-parameters.md#liw-network-settings)

## Contoh
<a name="connection-tracking-example"></a>

Dalam contoh berikut, grup keamanan memiliki aturan ke dalam yang mengizinkan lalu lintas TCP dan ICMP, dan aturan ke luar yang mengizinkan semua lalu lintas ke luar.


**Ke dalam**  

| Tipe protokol | Nomor port | Sumber | 
| --- | --- | --- | 
| TCP  | 22 (SSH) | 203.0.113.1/32 | 
| TCP  | 80 (HTTP) | 0.0.0.0/0 | 
| TCP  | 80 (HTTP) | ::/0 | 
| ICMP | Semua | 0.0.0.0/0 | 


**Ke luar**  

| Tipe protokol | Nomor port | Destinasi | 
| --- | --- | --- | 
| Semua | Semua | 0.0.0.0/0 | 
| Semua | Semua | ::/0 | 

Dengan koneksi jaringan langsung ke instans atau antarmuka jaringan, perilaku pelacakannya adalah sebagai berikut:
+ Lalu lintas TCP ke dalam dan ke luar pada port 22 (SSH) akan dilacak, karena aturan ke dalam hanya mengizinkan lalu lintas dari 203.0.113.1/32 saja, dan bukan semua alamat IP (0.0.0.0/0).
+ Lalu lintas TCP ke dalam dan ke luar pada port 80 (HTTP) tidak akan dilacak, karena aturan ke dalam dan ke luar mengizinkan lalu lintas dari semua alamat IP.
+ Lalu lintas ICMP selalu dilacak.

Jika Anda menghapus aturan keluar untuk IPv4 lalu lintas, semua lalu lintas masuk dan keluar dilacak, termasuk IPv4 lalu lintas pada port 80 (HTTP). Hal yang sama berlaku untuk IPv6 lalu lintas jika Anda menghapus aturan keluar untuk IPv6 lalu lintas.

# Aturan-aturan grup keamanan untuk kasus penggunaan yang berbeda
<a name="security-group-rules-reference"></a>

Anda dapat membuat grup keamanan dan menambahkan aturan-aturan yang mencerminkan peran dari instans yang dikaitkan dengan grup keamanan tersebut. Sebagai contoh, instans yang dikonfigurasi sebagai server web akan membutuhkan aturan-aturan grup keamanan yang mengizinkan akses HTTP dan HTTPS ke dalam. Demikian juga, instans basis data akan membutuhkan aturan-aturan yang mengizinkan akses untuk jenis basis data, seperti akses melalui port 3306 untuk MySQL.

Berikut ini adalah contoh jenis aturan yang dapat Anda tambahkan ke grup keamanan untuk jenis akses tertentu.

**Topics**
+ [Aturan-aturan server web](#sg-rules-web-server)
+ [Aturan-aturan server basis data](#sg-rules-db-server)
+ [Aturan-aturan untuk terhubung ke instans dari komputer Anda](#sg-rules-local-access)
+ [Aturan-aturan untuk terhubung ke instans-instans dari instans dengan grup keamanan yang sama](#sg-rules-other-instances)
+ [Aturan-aturan untuk melakukan ping/ICMP](#sg-rules-ping)
+ [Aturan-aturan server DNS](#sg-rules-dns)
+ [Aturan-aturan Amazon EFS](#sg-rules-efs)
+ [Aturan-aturan Penyeimbangan Beban Elastis](#sg-rules-elb)

Lihat petunjuknya di [Membuat grup keamanan](creating-security-group.md) dan [Mengonfigurasi aturan grup keamanan](changing-security-group.md#add-remove-security-group-rules).

## Aturan-aturan server web
<a name="sg-rules-web-server"></a>

Aturan-aturan ke dalam berikut mengizinkan akses HTTP dan HTTPS dari alamat IP mana pun. Jika VPC diaktifkan IPv6, Anda dapat menambahkan aturan untuk mengontrol lalu lintas HTTP dan HTTPS masuk dari alamat. IPv6 


| Tipe protokol | Nomor protokol | Port | IP sumber | Catatan | 
| --- | --- | --- | --- | --- | 
| TCP | 6 | 80 (HTTP) | 0.0.0.0/0 | Memungkinkan akses HTTP masuk dari alamat apa pun IPv4  | 
| TCP | 6 | 443 (HTTPS) | 0.0.0.0/0 | Memungkinkan akses HTTPS masuk dari alamat apa pun IPv4  | 
| TCP | 6 | 80 (HTTP) | ::/0 | Memungkinkan akses HTTP ke dalam dari alamat IPv6 apa pun | 
| TCP | 6 | 443 (HTTPS) | ::/0 | Memungkinkan akses HTTPS ke dalam dari alamat IPv6 apa pun | 

## Aturan-aturan server basis data
<a name="sg-rules-db-server"></a>

Aturan-aturan ke dalam berikut adalah contoh aturan yang dapat Anda tambahkan untuk akses basis data, tergantung dari jenis basis data apa yang Anda jalankan pada instans Anda. Untuk informasi selengkapnya tentang instans Amazon RDS, lihat [Panduan Pengguna Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/).

Untuk IP sumber, pilih salah satu hal berikut:
+  alamat IP atau rentang alamat IP tertentu (dalam notasi blok CIDR) dalam jaringan lokal Anda
+  ID grup keamanan untuk sekelompok instans yang mengakses basis data


| Tipe protokol | Nomor protokol | Port | Catatan | 
| --- | --- | --- | --- | 
| TCP | 6 | 1433 (MS SQL) | Port default untuk mengakses basis data Microsoft SQL Server, contohnya, pada instans Amazon RDS | 
| TCP | 6 | 3306 (MYSQL/Aurora) | Port default untuk mengakses basis data MySQL atau Aurora, contohnya, pada instans Amazon RDS | 
| TCP | 6 | 5439 (Redshift) | Port default untuk mengakses basis data klaster Amazon Redshift. | 
| TCP | 6 | 5432 (PostgreSQL) | Port default untuk mengakses basis data PostgreSQL, contohnya, pada instans Amazon RDS | 
| TCP | 6 | 1521 (Oracle) | Port default untuk mengakses basis data Oracle, contohnya, pada instans Amazon RDS | 

Opsional, Anda dapat membatasi lalu lintas ke luar dari server basis data Anda. Sebagai contoh, mungkin Anda ingin mengizinkan akses ke internet untuk pembaruan perangkat lunak, tetapi membatasi semua jenis lalu lintas lainnya. Anda harus terlebih dahulu menghapus aturan ke luar default yang mengizinkan semua lalu lintas ke luar.


| Tipe protokol | Nomor protokol | Port | IP Tujuan | Catatan | 
| --- | --- | --- | --- | --- | 
| TCP | 6 | 80 (HTTP) | 0.0.0.0/0 | Memungkinkan akses HTTP keluar ke alamat apa pun IPv4  | 
| TCP | 6 | 443 (HTTPS) | 0.0.0.0/0 | Memungkinkan akses HTTPS keluar ke alamat apa pun IPv4  | 
| TCP | 6 | 80 (HTTP) | ::/0 | (Hanya VPC yang IPv6 diaktifkan) Memungkinkan akses HTTP keluar ke alamat apa pun IPv6  | 
| TCP | 6 | 443 (HTTPS) | ::/0 | (Hanya VPC yang IPv6 diaktifkan) Memungkinkan akses HTTPS keluar ke alamat apa pun IPv6  | 

## Aturan-aturan untuk terhubung ke instans dari komputer Anda
<a name="sg-rules-local-access"></a>

Untuk terhubung ke instans Anda, grup keamanan Anda harus memiliki aturan-aturan ke dalam yang mengizinkan akses SSH (untuk instans Linux) atau akses RDP (untuk instans Windows).


| Tipe protokol | Nomor protokol | Port | IP sumber | 
| --- | --- | --- | --- | 
| TCP | 6 | 22 (SSH) |  IPv4 Alamat publik komputer Anda, atau berbagai alamat IP di jaringan lokal Anda. Jika VPC Anda diaktifkan IPv6 dan instans Anda memiliki IPv6 alamat, Anda dapat memasukkan IPv6 alamat atau rentang. | 
| TCP | 6 | 3389 (RDP) |  IPv4 Alamat publik komputer Anda, atau berbagai alamat IP di jaringan lokal Anda. Jika VPC Anda diaktifkan IPv6 dan instans Anda memiliki IPv6 alamat, Anda dapat memasukkan IPv6 alamat atau rentang. | 

## Aturan-aturan untuk terhubung ke instans-instans dari instans dengan grup keamanan yang sama
<a name="sg-rules-other-instances"></a>

Untuk mengizinkan instans yang dikaitkan dengan grup keamanan yang sama untuk saling berkomunikasi satu sama lain, Anda harus secara eksplisit menambahkan aturan untuk hal ini. 

**catatan**  
Jika Anda mengonfigurasi rute untuk meneruskan lalu lintas antara dua instans di subnet yang berbeda melalui perangkat middlebox, Anda harus memastikan bahwa grup keamanan untuk kedua instans tersebut mengizinkan lalu lintas mengalir di antara instans. Grup keamanan untuk setiap instans harus mereferensikan alamat IP privat instans lain, atau rentang CIDR dari subnet yang berisi instans yang lain, sebagai sumbernya. Jika Anda mereferensikan grup keamanan instans lain sebagai sumbernya, hal ini tidak akan mengizinkan lalu lintas mengalir di antara instans.

Tabel berikut ini menjelaskan aturan ke dalam untuk grup keamanan yang memungkinkan instans yang dikaitkan untuk saling berkomunikasi satu sama lain. Aturan ini mengizinkan semua jenis lalu lintas.


| Tipe protokol | Nomor protokol | Port | IP sumber | 
| --- | --- | --- | --- | 
| -1 (Semua) | -1 (Semua) | -1 (Semua) | ID grup keamanan, atau rentang CIDR dari subnet yang berisi instans lainnya (lihat catatan). | 

## Aturan-aturan untuk melakukan ping/ICMP
<a name="sg-rules-ping"></a>

Perintah **ping** merupakan jenis lalu lintas ICMP. Untuk melakukan ping pada instans Anda, Anda harus menambahkan aturan ICMP ke dalam berikut ini.


| Tipe | Protokol | Sumber | 
| --- | --- | --- | 
| Kustom ICMP - IPv4 | Permintaan Echo |  IPv4 Alamat publik komputer Anda, IPv4 alamat tertentu, IPv4 atau IPv6 alamat dari mana saja. | 
| Semua ICMP - IPv4 | IPv4 ICMP (1) |  IPv4 Alamat publik komputer Anda, IPv4 alamat tertentu, IPv4 atau IPv6 alamat dari mana saja. | 

Untuk menggunakan **ping6** perintah untuk melakukan ping ke IPv6 alamat untuk instance Anda, Anda harus menambahkan ICMPv6 aturan masuk berikut.


| Tipe | Protokol | Sumber | 
| --- | --- | --- | 
| Semua ICMP - IPv6 | IPv6 ICMP (58) |  IPv6 Alamat komputer Anda, IPv4 alamat tertentu, IPv4 atau IPv6 alamat dari mana saja. | 

## Aturan-aturan server DNS
<a name="sg-rules-dns"></a>

Jika Anda telah mengatur instans EC2 Anda sebagai server DNS, maka Anda harus memastikan bahwa lalu lintas TCP dan UDP dapat menjangkau server DNS Anda melalui port 53. 

Untuk IP sumber, pilih salah satu hal berikut:
+  alamat IP atau rentang alamat IP (dalam notasi blok CIDR) di jaringan
+ ID dari grup keamanan untuk serangkaian instans dalam jaringan Anda yang membutuhkan akses ke server DNS


| Tipe protokol | Nomor protokol | Port | 
| --- | --- | --- | 
| TCP | 6 | 53 | 
| UDP | 17 | 53 | 

## Aturan-aturan Amazon EFS
<a name="sg-rules-efs"></a>

Jika Anda menggunakan sistem file Amazon EFS dengan instans Amazon EC2 Anda, maka grup keamanan yang Anda kaitkan dengan target pengaitan Amazon EFS Anda harus mengizinkan lalu lintas melalui protokol NFS. 


| Tipe protokol | Nomor protokol | Port | IP sumber | Catatan | 
| --- | --- | --- | --- | --- | 
| TCP | 6 | 2049 (NFS) | ID dari grup keamanan | Mengizinkan akses NFS ke dalam dari sumber daya (termasuk target pengaitan) yang dikaitkan dengan grup keamanan ini | 

Untuk mengaitkan sistem file Amazon EFS pada instans Amazon EC2 Anda, Anda harus terhubung ke instans Anda. Oleh karena itu, grup keamanan yang dikaitkan dengan instans Anda harus memiliki aturan-aturan yang mengizinkan SSH ke dalam dari komputer lokal atau jaringan lokal Anda.


| Tipe protokol | Nomor protokol | Port | IP sumber | Catatan | 
| --- | --- | --- | --- | --- | 
| TCP | 6 | 22 (SSH) | Rentang alamat IP dari komputer lokal Anda, atau rentang alamat IP (dalam notasi blok CIDR) untuk jaringan Anda. | Mengizinkan akses SSH ke dalam dari komputer lokal Anda. | 

## Aturan-aturan Penyeimbangan Beban Elastis
<a name="sg-rules-elb"></a>

Jika Anda mendaftarkan instans EC2 Anda dengan penyeimbang beban, grup keamanan yang terkait dengan penyeimbang beban Anda harus mengizinkan komunikasi dengan instans. Untuk informasi selengkapnya, lihat berikut ini dalam dokumentasi Elastic Load Balancing.
+ [Grup keamanan untuk Application Load Balancer Anda](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-update-security-groups.html)
+ [Grup keamanan untuk Network Load Balancer Anda](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-security-groups.html)
+ [Konfigurasikan grup keamanan untuk Classic Load Balancer Anda](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-vpc-security-groups.html)

# NitroTPM untuk instans Amazon EC2
<a name="nitrotpm"></a>

Nitro Trusted Platform Module (NitroTPM) adalah perangkat virtual yang disediakan oleh [Sistem Nitro AWS](https://aws.amazon.com//ec2/nitro/) dan sesuai dengan [Spesifikasi TPM 2.0](https://trustedcomputinggroup.org/resource/trusted-platform-module-2-0-a-brief-introduction/). Perangkat virtual ini akan menyimpan artefak dengan aman (seperti kata sandi, sertifikat, atau kunci enkripsi) yang digunakan untuk melakukan autentikasi terhadap instans. NitroTPM dapat membuat kunci dan menggunakan kunci tersebut untuk fungsi kriptografi (seperti melakukan hashing, penandatanganan, enkripsi, dan dekripsi).

NitroTPM menyediakan *boot terukur*, sebuah proses di mana bootloader dan sistem operasi membuat hash kriptografi dari setiap biner boot dan menggabungkannya dengan nilai sebelumnya di NitroTPM internal Platform Configuration Registers (). PCRs Dengan boot terukur, Anda dapat memperoleh nilai PCR yang ditandatangani dari NitroTPM dan menggunakannya untuk membuktikan kepada entitas jarak jauh integritas dari perangkat lunak boot milik instans. Hal ini dikenal sebagai *pengesahan* jarak jauh.

Dengan NitroTPM, kunci dan rahasia dapat ditandai dengan nilai PCR tertentu sehingga kunci dan rahasia tersebut tidak akan pernah dapat diakses jika nilai PCR, dan dengan demikian integritas instansnya, berubah. Bentuk akses bersyarat khusus ini disebut sebagai *sealing and unsealing*. Teknologi sistem operasi, seperti [BitLocker](https://learn.microsoft.com/en-us/windows/security/operating-system-security/data-protection/bitlocker/), dapat menggunakan NitroTPM untuk menyegel kunci dekripsi drive sehingga drive hanya dapat didekripsi ketika sistem operasi telah boot dengan benar dan dalam keadaan baik yang diketahui.

[Untuk menggunakan NitroTPM, Anda harus memilih [Amazon Machine Image](AMIs.md) (AMI) yang telah dikonfigurasi untuk dukungan NitroTPM, dan kemudian menggunakan AMI untuk meluncurkan instans berbasis Nitro.](instance-types.md#instance-hypervisor-type) Anda dapat memilih salah satu prebuilt Amazon AMIs atau membuatnya sendiri.

**Harga**  
Tidak ada biaya tambahan yang dikenakan untuk menggunakan NitroTPM. Anda hanya harus membayar untuk sumber daya dasar yang Anda gunakan.

**Topics**
+ [Persyaratan](enable-nitrotpm-prerequisites.md)
+ [Aktifkan AMI Linux untuk NitroTPM](enable-nitrotpm-support-on-ami.md)
+ [Verifikasi bahwa AMI diaktifkan untuk NitroTPM](verify-nitrotpm-support-on-ami.md)
+ [Aktifkan atau hentikan penggunaan NitroTPM](nitrotpm-instance.md)
+ [Verifikasi bahwa instance diaktifkan untuk NitRotPM](verify-nitrotpm-support-on-instance.md)
+ [Ambil kunci dukungan publik](retrieve-ekpub.md)

# Persyaratan untuk menggunakan NitroTPM dengan instans Amazon EC2
<a name="enable-nitrotpm-prerequisites"></a>

Untuk meluncurkan instance dengan NitroTPM diaktifkan, Anda harus memenuhi persyaratan berikut.

**Topics**
+ [AMIs](#nitrotpm-ami)
+ [Tipe instans](#nitrotpm-instancetypes)
+ [Pertimbangan-pertimbangan](#nitrotpm-considerations)

## AMIs
<a name="nitrotpm-ami"></a>

AMI harus mengaktifkan NitroTPM.

**Linux AMIs**  
Tidak ada yang telah dikonfigurasi sebelumnya AMIs. Anda harus mengkonfigurasi AMI Anda sendiri. Untuk informasi selengkapnya, lihat [Aktifkan AMI Linux untuk NitroTPM](enable-nitrotpm-support-on-ami.md).

**Jendela AMIs**  
*Untuk menemukan AMI AWS Windows yang telah dikonfigurasi sebelumnya untuk NitRotPM dan UEFI Secure Boot dengan kunci Microsoft, lihat [Temukan Windows Server yang AMIs dikonfigurasi dengan NitRotPM dan UEFI](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/ami-windows-tpm.html#ami-windows-tpm-find) Secure Boot di Referensi Windows.AWS AMIs *

**catatan**  
**Sistem operasi** — AMI harus menyertakan sistem operasi dengan driver TPM 2.0 Command Response Buffer (CRB). Sebagian besar sistem operasi saat ini termasuk driver TPM 2.0 CRB.  
**Mode boot UEFI** — AMI harus dikonfigurasi untuk mode boot UEFI. Untuk informasi selengkapnya, lihat [Boot Aman UEFI untuk instans Amazon EC2](uefi-secure-boot.md).

## Tipe instans
<a name="nitrotpm-instancetypes"></a>

Anda harus menggunakan salah satu jenis instance virtual berikut:
+ **Tujuan umum**: M5, M5a, M5ad, M5d, M5dn, M5n, M5Zn, M6a, M6g, M6gd, M6i, M6iD, M6idn, M6in, M7a, M7g, M7gd, M7i, M7i-flex, M8a, M8AZN, m8g, m8gb, m8gd, m8gn, m8i, m8id, m8i-flex, t3, t3a, t4g
+ **Komputasi dioptimalkan**: C5, C5a, C5ad, C5d, C5n, C6a, C6g, C6gd, C6Gn, C6i, C6id, C6in, C7a, C7g, C7gd, C7gN, C7i, C7i-flex, C8a, C8g, C8gB, C8gB d, C8GN, C8i, C8iB, C8id, C8in, C8i-flex
+ **Memori dioptimalkan**: R5, R5a, R5ad, R5b, R5d, R5dn, R5n, R6a, R6g, R6gd, R6i, R6iD, R6idn, R6in, R7a, R7g, R7gd, R7i, R7iZ, R8a, R8a, R8g, R8GB, R8GD, R8GN, R8i, R8id, R8i-Flex, U7i-6TB, U7i-8tb, U7i-12TB, U7in-16TB, U7in-24TB, U7in-32tb, X2iEDN, X2iEZN, X8g, X8AEDZ, X8i, z1d
+ **Penyimpanan dioptimalkan**: D3, D3en, i3en, i4i, i7i, i7ie, i8g, i8ge, iM4gn
+ **Komputasi yang dipercepat**: F2, G4dn, G5, G6, G6e, G6f, Gr6, Gr6f, G7e, Inf1, Inf2, P5, P5e, P5en, P6-B200, P6-B300, Trn2, Trn2u
+ **Komputasi kinerja tinggi**: HPC6a, HPC6id, HPC8a

## Pertimbangan-pertimbangan
<a name="nitrotpm-considerations"></a>

Pertimbangan-pertimbangan berikut ini berlaku saat Anda menggunakan NitroTPM:
+ Setelah Anda meluncurkan instance menggunakan AMI dengan nitRotPM diaktifkan, jika Anda ingin mengubah jenis instance, jenis instans baru yang Anda pilih juga harus mendukung NitRotPM.
+ BitLocker volume yang dienkripsi dengan kunci berbasis NitroTPM hanya dapat digunakan pada instance asli.
+ Status NitroTPM tidak ditampilkan di konsol Amazon EC2.
+ Status NitroTPM tidak disertakan dalam [Snapshot Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html).
+ Status NitroTPM tidak disertakan dalam citra [VM Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/).
+ NitroTPM tidak didukung pada AWS Outposts., Local Zones, atau Wavelength Zones.

# Aktifkan AMI Linux untuk NitroTPM
<a name="enable-nitrotpm-support-on-ami"></a>

Untuk mengaktifkan NitRotPM untuk sebuah instance, Anda harus meluncurkan instance menggunakan AMI dengan NitroTPM diaktifkan. Anda harus mengkonfigurasi AMI Linux Anda dengan dukungan NitroTPM ketika Anda mendaftarkannya. Anda tidak dapat mengonfigurasi dukungan NitroTPM nanti.

Untuk daftar Windows AMIs yang telah dikonfigurasi sebelumnya untuk dukungan NitroTPM, lihat. [Persyaratan untuk menggunakan NitroTPM dengan instans Amazon EC2](enable-nitrotpm-prerequisites.md)

Anda harus membuat AMI dengan nitRotPM yang dikonfigurasi dengan menggunakan API. [RegisterImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RegisterImage.html) Anda tidak dapat menggunakan konsol Amazon EC2 atau Impor/Ekspor VM.

**Untuk mengaktifkan AMI Linux untuk NitroTPM**

1. Luncurkan instance sementara dengan AMI Linux yang Anda butuhkan. Perhatikan ID volume root, yang dapat Anda temukan di konsol pada tab **Storage** untuk instance.

1. Setelah instance mencapai `running` status, buat snapshot dari volume root instance. Untuk informasi selengkapnya, lihat [Membuat snapshot volume EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-create-snapshot.html).

1. Daftarkan snapshot yang Anda buat sebagai AMI. Dalam pemetaan perangkat blok, tentukan snapshot yang Anda buat untuk volume root.

   Berikut ini adalah contoh perintah [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html). Untuk `--tpm-support`, tentukan `v2.0`. Untuk `--boot-mode`, tentukan `uefi`. 

   ```
   aws ec2 register-image \
       --name my-image \
       --boot-mode uefi \
       --architecture x86_64 \
       --root-device-name /dev/xvda \
       --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=snap-0abcdef1234567890} \
       --tpm-support v2.0
   ```

   Berikut ini adalah contoh untuk [Register-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html)cmdlet.

   ```
   $block = @{SnapshotId=snap-0abcdef1234567890}
   Register-EC2Image `
       -Name my-image `
       -Architecture "x86_64" `
       -RootDeviceName /dev/xvda `
       -BlockDeviceMapping @{DeviceName="/dev/xvda";Ebs=$block} `
       -BootMode Uefi `
       -TpmSupport V20
   ```

1. Hentikan instance sementara yang Anda luncurkan di langkah 1.

# Verifikasi bahwa AMI diaktifkan untuk NitroTPM
<a name="verify-nitrotpm-support-on-ami"></a>

Untuk mengaktifkan NitRotPM untuk sebuah instance, Anda harus meluncurkan instance menggunakan AMI dengan NitroTPM diaktifkan. Anda dapat menjelaskan gambar untuk memverifikasi bahwa itu diaktifkan untuk NitroTPM. Jika Anda adalah pemilik AMI, Anda dapat menggambarkan atribut `tpmSupport` gambar.

Konsol Amazon EC2 tidak ditampilkan. `TpmSupport`

------
#### [ AWS CLI ]

**Untuk memverifikasi bahwa NitroTPM diaktifkan**  
Gunakan perintah [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query Images[*].TpmSupport
```

Jika NitroTPM diaktifkan untuk AMI, outputnya adalah sebagai berikut. Jika TPM tidak diaktifkan, output kosong.

```
[
    "v2.0"
]
```

Atau, jika Anda adalah pemilik AMI, Anda dapat menggunakan [describe-image-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-attribute.html)perintah dengan `tpmSupport` atribut.

```
aws ec2 describe-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --attribute tpmSupport
```

 Berikut ini adalah output contoh.

```
{
    "ImageId": "ami-0abcdef1234567890",
    "TpmSupport": {
        "Value": "v2.0"
    }
}
```

**Untuk menemukan AMIs dengan NitroTPM diaktifkan**  
Contoh berikut mencantumkan IDs AMIs yang Anda miliki dengan NitrotPM diaktifkan.

```
aws ec2 describe-images \
    --owners self \
    --filters Name=tpm-support,Values=v2.0 \
    --query Images[].ImageId
```

------
#### [ PowerShell ]

**Untuk memverifikasi bahwa NitroTPM diaktifkan**  
Gunakan [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html)cmdlet.

```
Get-EC2Image `
    -ImageId ami-0abcdef1234567890 | Select TpmSupport
```

Jika NitroTPM diaktifkan untuk AMI, outputnya adalah sebagai berikut. Jika TPM tidak diaktifkan, output kosong.

```
TpmSupport
----------
v2.0
```

Atau, jika Anda adalah pemilik AMI, Anda dapat menggunakan [Get-EC2ImageAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageAttribute.html)cmdlet dengan atribut. `tpmSupport`

```
Get-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute tpmSupport
```

**Untuk menemukan AMIs dengan NitroTPM diaktifkan**  
Contoh berikut mencantumkan IDs AMIs yang Anda miliki dengan NitrotPM diaktifkan.

```
Get-EC2Image `
    -Owner self `
    -Filter @{Name="tpm-support; Values="v2.0"} | Select ImageId
```

------

# Mengaktifkan atau berhenti menggunakan NitroTPM pada instans Amazon EC2
<a name="nitrotpm-instance"></a>

Anda dapat mengaktifkan instans Amazon EC2 untuk NitroTPM hanya saat peluncuran. Setelah instance diaktifkan untuk NitRotPM, Anda tidak dapat menonaktifkannya. Jika Anda tidak perlu lagi menggunakan NitroTPM, Anda harus mengkonfigurasi sistem operasi untuk berhenti menggunakannya.

**Topics**
+ [Meluncurkan instans dengan NitroTPM](#launch-instance-with-nitrotpm)
+ [Menghentikan menggunakan NitroTPM pada instans](#disable-nitrotpm-support-on-instance)

## Meluncurkan instans dengan NitroTPM
<a name="launch-instance-with-nitrotpm"></a>

Ketika Anda meluncurkan instans dengan [ prasyarat](enable-nitrotpm-prerequisites.md), NitroTPM secara otomatis akan diaktifkan pada instans. Anda dapat mengaktifkan NitroTPM pada instance hanya saat peluncuran. Untuk informasi tentang cara meluncurkan instans, lihat [Luncurkan instans Amazon EC2](LaunchingAndUsingInstances.md).

## Menghentikan menggunakan NitroTPM pada instans
<a name="disable-nitrotpm-support-on-instance"></a>

Setelah meluncurkan instance dengan NitRotPM diaktifkan, Anda tidak dapat menonaktifkan NitrotPM untuk instance tersebut. Namun demikian, Anda dapat mengonfigurasi sistem operasi untuk berhenti menggunakan NitroTPM dengan menonaktifkan driver perangkat TPM 2.0 pada instans menggunakan alat-alat berikut:
+ Untuk **instance Linux**, gunakan tpm-tools.
+ Untuk **instance Windows**, gunakan konsol manajemen TPM (tpm.msc).

Untuk informasi selengkapnya tentang bagaimana menonaktifkan driver perangkat, lihat dokumentasi untuk sistem operasi Anda.

# Verifikasi bahwa instans Amazon EC2 diaktifkan untuk NitroTPM
<a name="verify-nitrotpm-support-on-instance"></a>

Anda dapat memverifikasi apakah instans Amazon EC2 diaktifkan untuk NitroTPM. Jika dukungan NitroTPM diaktifkan pada instance, perintah kembali. `"v2.0"` Jika tidak, `TpmSupport` bidang tidak ada dalam output.

Konsol Amazon EC2 tidak menampilkan bidang. `TpmSupport`

------
#### [ AWS CLI ]

**Untuk memverifikasi apakah sebuah instance diaktifkan untuk NitRotPM**  
Gunakan perintah [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html).

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query Reservations[].Instances[].TpmSupport
```

------
#### [ PowerShell ]

**Untuk memverifikasi apakah sebuah instance diaktifkan untuk NitRotPM**  
Gunakan [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html)cmdlet.

```
(Get-EC2Instance `
    -InstanceId i-1234567890abcdef0).Instances.TpmSupport
```

------

## Verifikasi akses NitroTPM pada instance Windows Anda
<a name="verify-nitrotpm-support-windows-instance"></a>

**(Hanya instance Windows) Untuk memverifikasi apakah NitrotPM dapat diakses oleh Windows**

1. [Hubungkan ke instans Windows EC2 Anda.](connecting_to_windows_instance.md)

1. Pada instans tersebut, jalankan program tpm.msc.

   Jendela **Manajemen TPM pada Komputer Lokal** akan terbuka.

1. Periksa bidang **Informasi Produsen TPM**. Bidang tersebut berisi nama produsen dan versi NitroTPM yang ada pada instans.  
![\[Jendela Manajemen TPM pada Komputer Lokal dan bidang Informasi Produsen TPM menampilkan versi NitroTPM yang ada pada instans.\]](http://docs.aws.amazon.com/id_id/AWSEC2/latest/UserGuide/images/tpm-1.png)

# Ambil kunci dukungan publik untuk instans EC2
<a name="retrieve-ekpub"></a>

Anda dapat dengan aman mengambil kunci dukungan publik untuk sebuah instance kapan saja.

------
#### [ AWS CLI ]

**Untuk mengambil kunci dukungan publik untuk sebuah contoh**  
Gunakan perintah [get-instance-tpm-ek-pub](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-tpm-ek-pub.html).

**Contoh 1**  
Contoh berikut mendapatkan kunci dukungan `rsa-2048` publik dalam `tpmt` format untuk instance tertentu.

```
aws ec2 get-instance-tpm-ek-pub \
    --instance-id i-1234567890abcdef0 \
    --key-format tpmt \ 
    --key-type rsa-2048
```

Berikut ini adalah contoh output.

```
{
    "InstanceId": "i-01234567890abcdef",
    "KeyFormat": "tpmt",
    "KeyType": "rsa-2048",
    "KeyValue": "AAEACwADALIAIINxl2dEhLEXAMPLEUal1yT9UtduBlILZPKh2hszFGmqAAYAgABDA
    EXAMPLEAAABAOiRd7WmgtdGNoV1h/AxmW+CXExblG8pEUfNm0LOLiYnEXAMPLERqApiFa/UhvEYqN4
    Z7jKMD/usbhsQaAB1gKA5RmzuhSazHQkax7EXAMPLEzDthlS7HNGuYn5eG7qnJndRcakS+iNxT8Hvf
    0S1ZtNuItMs+Yp4SO6aU28MT/JZkOKsXIdMerY3GdWbNQz9AvYbMEXAMPLEPyHfzgVO0QTTJVGdDxh
    vxtXCOu9GYf0crbjEXAMPLEd4YTbWdDdgOKWF9fjzDytJSDhrLAOUctNzHPCd/92l5zEXAMPLEOIFA
    Ss50C0/802c17W2pMSVHvCCa9lYCiAfxH/vYKovAAE="
}
```

**Contoh 2**  
Contoh berikut mendapatkan kunci dukungan `rsa-2048` publik dalam `der` format untuk instance tertentu.

```
aws ec2 get-instance-tpm-ek-pub \
    --instance-id i-1234567890abcdef0 \
    --key-format der \ 
    --key-type rsa-2048
```

Berikut ini adalah contoh output.

```
{
    "InstanceId": "i-1234567890abcdef0",
    "KeyFormat": "der",
    "KeyType": "rsa-2048",
    "KeyValue": "MIIBIjANBgEXAMPLEw0BAQEFAAOCAQ8AMIIBCgKCAQEA6JF3taEXAMPLEXWH8DGZb4
    JcTFuUbykRR82bQs4uJifaKSOv5NGoEXAMPLEG8Rio3hnuMowP+6xuGxBoAHWAoDlGbO6FJrMdEXAMP
    LEnYUHvMO2GVLsc0a5ifl4buqcmd1FxqRL6I3FPwe9/REXAMPLE0yz5inhI7ppTbwxP8lmQ4qxch0x6
    tjcZ1Zs1DP0EXAMPLERUYLQ/Id/OBU7RBNMlUZ0PGG/G1cI670Zh/RytuOdx9iEXAMPLEtZ0N2A4pYX
    1+PMPK0lIOGssA5Ry03Mc8J3/3aXnOD2/ASRQ4gUBKznQLT/zTZEXAMPLEJUe8IJr2VgKIB/Ef+9gqi
    8AAQIDAQAB"
}
```

------
#### [ PowerShell ]

**Untuk mengambil kunci dukungan publik untuk sebuah contoh**  
Gunakan [Get-EC2InstanceTpmEkPub](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceTpmEkPub.html)cmdlet.

**Contoh 1**  
Contoh berikut mendapatkan kunci dukungan `rsa-2048` publik dalam `tpmt` format untuk instance tertentu.

```
Get-EC2InstanceTpmEkPub `
    -InstanceId i-1234567890abcdef0 `
    -KeyFormat tpmt `
    -KeyType rsa-2048
```

**Contoh 2**  
Contoh berikut mendapatkan kunci dukungan `rsa-2048` publik dalam `der` format untuk instance tertentu.

```
Get-EC2InstanceTpmEkPub `
    -InstanceId i-1234567890abcdef0 `
    -KeyFormat der `
    -KeyType rsa-2048
```

------

# Pengesahan instans Amazon EC2
<a name="nitrotpm-attestation"></a>

Pengesahan adalah proses yang memungkinkan Anda membuktikan secara kriptografi kepada pihak mana pun bahwa hanya perangkat lunak tepercaya, driver, dan proses boot yang berjalan pada instans Amazon EC2. *Pengesahan instans Amazon EC2 didukung oleh Nitro Trusted Platform Module (NitroTPM) dan Attestable. AMIs*

Langkah pertama untuk pengesahan adalah **membangun AMI yang Dapat Dibuktikan dan menentukan pengukuran referensi AMI** *tersebut*. AMI yang Dapat Dibuktikan adalah AMI yang dibangun dari bawah ke atas untuk pengesahan. Pengukuran referensi adalah pengukuran semua perangkat lunak dan konfigurasi yang telah Anda sertakan dalam AMI Anda. Untuk informasi lebih lanjut tentang bagaimana Anda dapat memperoleh pengukuran referensi, lihat[Membangun deskripsi gambar sampel](build-sample-ami.md).

![\[Menghasilkan pengukuran referensi dengan Attestable AMIs.\]](http://docs.aws.amazon.com/id_id/AWSEC2/latest/UserGuide/images/attestable-ami.PNG)


Langkah selanjutnya adalah meluncurkan [instans EC2 berkemampuan Nitro-TPM](enable-nitrotpm-prerequisites.md#nitrotpm-instancetypes) dengan AMI Attestable. Setelah Anda meluncurkan instance, Anda dapat menggunakan [alat NitRotPM](attestation-get-doc.md) untuk menghasilkan Dokumen *Pengesahan*. Kemudian Anda dapat membandingkan pengukuran sebenarnya dari instans EC2 Anda dari Dokumen Pengesahan dengan pengukuran referensi untuk memeriksa apakah instance memiliki perangkat lunak dan konfigurasi yang Anda percayai.

Dengan membandingkan pengukuran referensi yang dihasilkan selama proses pembuatan AMI yang Dapat Dibuktikan dengan pengukuran yang disertakan dalam Dokumen Pengesahan instans, Anda dapat memvalidasi bahwa hanya perangkat lunak dan kode yang Anda percayai yang berjalan pada instance.

![\[Menghasilkan Dokumen Pengesahan.\]](http://docs.aws.amazon.com/id_id/AWSEC2/latest/UserGuide/images/attestation-document.PNG)


## Integrasi dengan AWS KMS
<a name="attestation-kms"></a>

Untuk mempermudah proses membandingkan pengukuran, Anda dapat menggunakan AWS Key Management Service (AWS KMS) sebagai verifier untuk Dokumen Pengesahan. Dengan AWS KMS, Anda dapat membuat kebijakan kunci KMS berbasis pengesahan yang memungkinkan operasi tertentu dengan kunci KMS hanya jika Anda memberikan Dokumen Pengesahan dengan pengukuran yang sesuai dengan pengukuran referensi. Untuk melakukannya, Anda menambahkan kunci kondisi tertentu ke kebijakan kunci KMS Anda yang menggunakan pengukuran referensi sebagai nilai kunci kondisi, lalu tentukan operasi KMS mana yang diizinkan jika kunci kondisi terpenuhi.

Saat Anda melakukan operasi KMS menggunakan kunci KMS, Anda harus melampirkan Dokumen Pengesahan ke permintaan KMS. AWS KMS kemudian memvalidasi pengukuran dari Dokumen Pengesahan terhadap pengukuran referensi dalam kebijakan kunci KMS, dan memungkinkan akses kunci hanya jika pengukuran cocok.

Selain itu, ketika Anda membuat Dokumen Pengesahan untuk sebuah instance, Anda harus menentukan kunci publik untuk key pair yang Anda miliki. Kunci publik yang ditentukan termasuk dalam Dokumen Pengesahan. Ketika AWS KMS memvalidasi Dokumen Pengesahan dan memungkinkan operasi dekripsi, secara otomatis mengenkripsi respons dengan kunci publik yang disertakan dalam Dokumen Pengesahan sebelum dikembalikan. Ini memastikan bahwa respons dapat didekripsi dan digunakan hanya dengan kunci pribadi yang cocok untuk kunci publik yang disertakan dalam Dokumen Pengesahan. 

Ini memastikan bahwa hanya instance yang menjalankan perangkat lunak dan kode tepercaya yang dapat melakukan operasi kriptografi menggunakan kunci KMS.

## Membuktikan lingkungan komputasi yang terisolasi
<a name="attestation-isolated-compute-environments"></a>

Secara umum, Anda dapat membuat dan mengonfigurasi instans EC2 menjadi **lingkungan komputasi terisolasi**, yang tidak menyediakan akses interaktif dan tidak ada mekanisme bagi administrator dan pengguna Anda untuk mengakses data yang sedang diproses dalam instans EC2. Dengan pengesahan instans EC2, Anda dapat membuktikan kepada pihak ketiga atau layanan bahwa instans Anda berjalan sebagai lingkungan komputasi yang terisolasi. Untuk informasi selengkapnya, lihat [Mengisolasi data dari operator Anda sendiri](isolate-data-operators.md).

Sebagai contoh, lihat [contoh deskripsi gambar Amazon Linux 2023](build-sample-ami.md) yang membuat lingkungan komputasi terisolasi. Anda dapat menggunakan deskripsi gambar sampel ini sebagai titik awal dan menyesuaikannya untuk memenuhi kebutuhan Anda.

## AWS model tanggung jawab bersama
<a name="attestation-shared-responsibility"></a>

NitroTPM dan AMI Attestable adalah blok bangunan yang dapat membantu Anda mengatur dan mengonfigurasi pengesahan pada instans EC2 Anda. Anda bertanggung jawab untuk mengonfigurasi AMI untuk memenuhi kasus penggunaan Anda masing-masing. Untuk informasi selengkapnya, lihat [AWS Model Tanggung Jawab Bersama](https://aws.amazon.com/compliance/shared-responsibility-model/).

**Topics**
+ [Integrasi dengan AWS KMS](#attestation-kms)
+ [Membuktikan lingkungan komputasi yang terisolasi](#attestation-isolated-compute-environments)
+ [AWS model tanggung jawab bersama](#attestation-shared-responsibility)
+ [Dapat dibuktikan AMIs](attestable-ami.md)
+ [Bersiaplah AWS KMS untuk pengesahan](prepare-attestation-service.md)
+ [Dapatkan Dokumen Pengesahan NitroTPM](attestation-get-doc.md)
+ [Integrasi dengan AWS KMS](attestation-attest.md)
+ [Mengisolasi data dari operator Anda sendiri](isolate-data-operators.md)

# 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).

# Bersiaplah AWS KMS untuk pengesahan
<a name="prepare-attestation-service"></a>

**catatan**  
Jika Anda membuktikan layanan pihak ketiga, Anda harus membangun mekanisme kustom Anda sendiri untuk menerima, mengurai, dan memvalidasi Dokumen Pengesahan. Untuk informasi selengkapnya, lihat [Validasi Dokumen Pengesahan NitroTPM](nitrotpm-attestation-document-validate.md).

Setelah membuat AMI Attestable, Anda harus memiliki pengukuran referensi yang dapat Anda gunakan untuk memvalidasi permintaan dari instans Amazon EC2. AWS KMS menyediakan dukungan bawaan untuk pengesahan dengan NitroTPM.

Untuk AWS KMS kunci yang Anda gunakan untuk mengenkripsi data rahasia, tambahkan kebijakan kunci yang mengizinkan akses kunci hanya jika permintaan API menyertakan Dokumen Pengesahan dengan pengukuran yang sesuai dengan pengukuran referensi yang Anda buat selama proses pembuatan AMI yang Dapat Dibuktikan. Penggunaan PCR4 dan PCR12 pengukuran untuk boot standar atau PCR7 pengukuran untuk Boot Aman. Ini memastikan bahwa hanya permintaan dari instance yang diluncurkan menggunakan AMI Attestable yang dapat melakukan operasi kriptografi menggunakan kunci. AWS KMS 

AWS KMS menyediakan`kms:RecipientAttestation:NitroTPMPCR4`,`kms:RecipientAttestation:NitroTPMPCR7`, dan kunci `kms:RecipientAttestation:NitroTPMPCR12` kondisi yang memungkinkan Anda membuat kondisi berbasis pengesahan untuk kebijakan kunci NitroTPM KMS. Untuk informasi selengkapnya, lihat [Kunci kondisi untuk NitroTPM](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-nitro-tpm.html).

Misalnya, kebijakan AWS KMS kunci berikut mengizinkan akses kunci hanya jika permintaan berasal dari instance dengan profil `MyEC2InstanceRole` instance terlampir, dan jika permintaan tersebut menyertakan Dokumen Pengesahan dengan nilai PCR 4 dan PCR 12 tertentu.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Allow requests from instances with attested AMI only",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/MyEC2InstanceRole"
      },
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:GenerateRandom"
      ],
      "Resource": "*",
      "Condition": {
        "StringEqualsIgnoreCase": {
          "kms:RecipientAttestation:NitroTPMPCR4":"EXAMPLE6b9b3d89a53b13f5dfd14a1049ec0b80a9ae4b159adde479e9f7f512f33e835a0b9023ca51ada02160EXAMPLE",
          "kms:RecipientAttestation:NitroTPMPCR12":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
        }
      }
    }
  ]
}
```

# Dapatkan Dokumen Pengesahan NitroTPM
<a name="attestation-get-doc"></a>

Dokumen Pengesahan adalah komponen kunci dari proses pengesahan NitroTPM. Ini berisi serangkaian pengukuran kriptografi yang dapat digunakan untuk memverifikasi identitas instance dan untuk membuktikan bahwa itu hanya menjalankan perangkat lunak tepercaya. Anda dapat menggunakan Dokumen Pengesahan dengan AWS KMS, yang menyediakan dukungan bawaan untuk pengesahan NitroTPM, atau untuk membangun mekanisme pengesahan kriptografi Anda sendiri.

`nitro-tpm-attest`Utilitas ini memungkinkan Anda untuk mengambil Dokumen Pengesahan NitroTPM yang ditandatangani untuk instans Amazon EC2 selama runtime.

Contoh deskripsi gambar Amazon Linux 2023 secara otomatis menginstal utilitas pada gambar bawaan di `/usr/bin/` direktori. Ini memastikan bahwa utilitas sudah diinstal sebelumnya pada instance yang diluncurkan menggunakan AMI. Anda tidak perlu menginstal utilitas secara manual. Untuk informasi selengkapnya, lihat [Buat contoh deskripsi gambar Amazon Linux 2023](build-sample-ami.md).

**Topics**
+ [Instal `nitro-tpm-attest` utilitas](#nitro-tpm-attest-install)
+ [Gunakan `nitro-tpm-attest` utilitas](#nitro-tpm-attest-use)
+ [Dokumen Pengesahan NitroTPM](nitrotpm-attestation-document-content.md)
+ [Validasi Dokumen Pengesahan](nitrotpm-attestation-document-validate.md)

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

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

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

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

Utilitas menyediakan satu perintah,`nitro-tpm-attest`, untuk mengambil Dokumen Pengesahan. Perintah mengembalikan Dokumen Pengesahan yang dikodekan dalam Representasi Objek Biner Ringkas (CBOR) dan ditandatangani menggunakan CBOR Object Signing and Encryption (COSE).

Saat Anda menjalankan perintah, Anda dapat menentukan parameter opsional berikut:
+ `public-key`Kunci publik yang dapat digunakan oleh AWS KMS atau layanan eksternal untuk mengenkripsi data respons sebelum dikembalikan. Ini memastikan bahwa hanya penerima yang dituju, yang memiliki kunci pribadi, yang dapat mendekripsi data. Misalnya, jika Anda membuktikan AWS KMS, layanan mengenkripsi data plaintext dengan kunci publik di Dokumen Pengesahan, dan mengembalikan ciphertext yang dihasilkan di bidang dalam respons. `CiphertextForRecipient` Hanya kunci RSA yang didukung.
+ `user-data`Data pengguna dapat digunakan untuk mengirimkan data tambahan yang ditandatangani ke layanan eksternal. Data pengguna ini dapat digunakan untuk melengkapi protokol yang disepakati antara instance yang meminta dan layanan eksternal. Tidak digunakan untuk pengesahan dengan. AWS KMS
+ `nonce`Nonce dapat digunakan untuk mengatur otentikasi tantangan-respons antara instance dan layanan eksternal untuk membantu mencegah serangan peniruan identitas. Menggunakan nonce memungkinkan layanan eksternal untuk memverifikasi bahwa itu berinteraksi dengan instance langsung dan bukan peniru yang menggunakan kembali Dokumen Pengesahan lama. Tidak digunakan untuk pengesahan dengan. AWS KMS

**Untuk mengambil Dokumen Pengesahan**  
Gunakan perintah berikut dan parameter opsional:

```
/usr/bin/nitro-tpm-attest \
--public-key rsa_public_key \
--user-data user_data \
--nonce nonce
```

[Untuk contoh lengkap yang menunjukkan cara membuat key pair RSA, dan cara meminta pengesahan dengan kunci publik, lihat repo. nitro-tpm-attest GitHub ](https://github.com/aws/NitroTPM-Tools/)

# Isi Dokumen Pengesahan NitroTPM
<a name="nitrotpm-attestation-document-content"></a>

Dokumen Pengesahan dihasilkan oleh NitroTPM dan ditandatangani oleh Nitro Hypervisor. Ini mencakup serangkaian nilai register konfigurasi platform (PCR) yang terkait dengan instans Amazon EC2. PCRs Berikut ini termasuk dalam Dokumen Pengesahan:

**penting**  
PCR0 dan PCR1 umumnya digunakan untuk mengukur kode boot awal, yang dikendalikan oleh AWS. Untuk memungkinkan pembaruan aman kode boot awal, ini PCRs akan selalu berisi nilai konstan.
+ `PCR0`— Kode yang Dapat Dieksekusi Firmware Sistem Inti
+ `PCR1`— Data Firmware Sistem Inti
+ `PCR2`— Kode eksekusi yang diperluas atau dapat dicolokkan
+ `PCR3`— Data Firmware yang Diperpanjang atau dapat dicolokkan
+ `PCR4`— Kode Manajer Boot
+ `PCR5`— Konfigurasi Kode Boot Manager dan Data dan Tabel Partisi GPT
+ `PCR6`- Spesifikasi Produsen Platform Host
+ `PCR7`— Kebijakan Boot Aman
+ `PCR8 - 15`— Didefinisikan untuk digunakan oleh Sistem Operasi Statis
+ `PCR16`— Debug
+ `PCR23`— Support Aplikasi

**PCR4**, **PCR7**, dan **PCR12**secara khusus digunakan untuk memvalidasi bahwa sebuah instance diluncurkan menggunakan AMI Attestable. PCR4 dan PCR12 dapat digunakan untuk memvalidasi dengan boot standar, dan PCR7 dapat digunakan untuk memvalidasi dengan Boot Aman.
+ **PCR4 (Boot Manager Code)** — Ketika sebuah instance dimulai, NitroTPM membuat hash kriptografi dari semua binari yang dieksekusi oleh lingkungan UEFI-nya. Dengan Attestable AMIs, binari boot ini menyematkan hash yang mencegah pemuatan binari di masa mendatang yang tidak memiliki hash yang cocok. Dengan cara ini, hash biner boot tunggal dapat menggambarkan dengan tepat kode apa yang akan dijalankan oleh sebuah instance.
+ **PCR7 (Secure Boot Policy)** — Binari boot UEFI dapat ditandatangani dengan kunci penandatanganan UEFI Secure Boot. Ketika UEFI Secure Boot diaktifkan, UEFI akan mencegah eksekusi binari boot UEFI yang tidak sesuai dengan kebijakan yang dikonfigurasi. PCR7 berisi hash dari kebijakan UEFI Secure Boot instance.

  Jika Anda perlu mempertahankan satu kebijakan KMS yang tetap ada di seluruh pembaruan instans, Anda dapat membuat kebijakan yang memvalidasi PCR7 untuk memvalidasi sertifikat Boot Aman UEFI. Selama pembuatan AMI yang Dapat Dibuktikan, Anda kemudian dapat menandatangani biner boot dengan sertifikat Anda dan menginstalnya sebagai satu-satunya sertifikat yang diizinkan dalam data UEFI AMI. Perlu diingat bahwa model ini mengharuskan Anda untuk tetap membuat sertifikat baru, menginstalnya di kebijakan Anda dan memperbarui AMIs jika Anda ingin mencegah instance yang diluncurkan dari yang lama (tidak tepercaya) AMIs agar tidak meneruskan kebijakan KMS Anda.
+ **PCR12**— Berisi hash dari baris perintah yang diteruskan ke biner boot UEFI. Diperlukan dalam hubungannya dengan PCR4 untuk boot standar untuk memvalidasi baris perintah tidak dimodifikasi.

# Validasi Dokumen Pengesahan NitroTPM
<a name="nitrotpm-attestation-document-validate"></a>

**catatan**  
Topik ini ditujukan untuk pengguna yang menggunakan layanan manajemen kunci pihak ketiga, dan perlu membangun mekanisme validasi Dokumen Pengesahan mereka sendiri.

Topik ini memberikan gambaran rinci tentang seluruh alur pengesahan NitroTPM. Ini juga membahas apa yang dihasilkan oleh sistem AWS Nitro ketika Dokumen Pengesahan diminta, dan menjelaskan bagaimana layanan manajemen kunci harus memproses Dokumen Pengesahan.

**Topics**
+ [Dokumen Pengesahan](#doc-def)
+ [Pengesahan Validasi dokumen](#validation-process)

Tujuan pengesahan adalah untuk membuktikan bahwa sebuah instance adalah entitas yang dapat dipercaya, berdasarkan kode dan konfigurasi yang dijalankannya. Akar kepercayaan untuk instance berada dalam sistem AWS Nitro, yang menyediakan Dokumen Pengesahan. 

Dokumen Pengesahan ditandatangani oleh AWS Nitro Attestation Public Key Infrastructure (PKI), yang mencakup otoritas sertifikat yang diterbitkan yang dapat dimasukkan ke dalam layanan apa pun. 

## Dokumen Pengesahan
<a name="doc-def"></a>

Dokumen Pengesahan dikodekan dalam Representasi Objek Biner Ringkas (CBOR), dan ditandatangani menggunakan CBOR Object Signing and Encryption (COSE).

Untuk informasi lebih lanjut tentang CBOR, lihat [RFC 8949: Representasi Objek Biner Ringkas](https://www.rfc-editor.org/rfc/rfc8949.html) (CBOR).

### Spesifikasi Dokumen Pengesahan
<a name="doc-spec"></a>

Berikut ini menunjukkan struktur Dokumen Pengesahan.

```
AttestationDocument = {
    module_id: text,                     ; issuing Nitro hypervisor module ID
    timestamp: uint .size 8,             ; UTC time when document was created, in
                                         ; milliseconds since UNIX epoch
    digest: digest,                      ; the digest function used for calculating the
                                         ; register values
    nitrotpm_pcrs: { + index => pcr },   ; map of PCRs at the moment the Attestation Document was generated
    certificate: cert,                   ; the public key certificate for the public key 
                                         ; that was used to sign the Attestation Document
    cabundle: [* cert],                  ; issuing CA bundle for infrastructure certificate
    ? public_key: user_data,             ; an optional DER-encoded key the attestation
                                         ; consumer can use to encrypt data with
    ? user_data: user_data,              ; additional signed user data, defined by protocol
    ? nonce: user_data,                  ; an optional cryptographic nonce provided by the
                                         ; attestation consumer as a proof of authenticity
}

cert = bytes .size (1..1024)       ; DER encoded certificate
user_data = bytes .size (0..1024)
pcr = bytes .size (32/48/64)       ; PCR content
index = 0..31
digest = "SHA384"
```

Parameter opsional dalam Dokumen Pengesahan (`public_key`,`user_data`, dan`nonce`) dapat digunakan untuk membuat protokol validasi kustom antara instance pembuktian dan layanan eksternal.

## Pengesahan Validasi dokumen
<a name="validation-process"></a>

Saat Anda meminta Dokumen Pengesahan dari Nitro Hypervisor, Anda menerima gumpalan biner yang berisi Dokumen Pengesahan yang ditandatangani. Dokumen Pengesahan yang ditandatangani adalah objek CBOR-encoded, Cose-signed (menggunakan struktur tanda tangan Cose\$1sign1). Proses validasi keseluruhan mencakup langkah-langkah berikut:

1. Dekode objek CBOR dan petakan ke struktur COSE\$1SIGN1.

1. Ekstrak Dokumen Pengesahan dari struktur Cose\$1sign1.

1. Verifikasi rantai sertifikat.

1. Pastikan bahwa Dokumen Pengesahan ditandatangani dengan benar.

Dokumen Pengesahan ditandatangani oleh AWS Nitro Attestation PKI, yang mencakup sertifikat root untuk partisi komersial. AWS Sertifikat root dapat diunduh [https://aws-nitro-enclaves.amazonaws.com.rproxy.goskope.comdari/ AWS\$1N itroEnclaves\$1Root-G1.zip](https://aws-nitro-enclaves.amazonaws.com/AWS_NitroEnclaves_Root-G1.zip), dan dapat diverifikasi menggunakan sidik jari berikut.

```
64:1A:03:21:A3:E2:44:EF:E4:56:46:31:95:D6:06:31:7E:D7:CD:CC:3C:17:56:E0:98:93:F3:C6:8F:79:BB:5B
```

Sertifikat root didasarkan pada AWS Certificate Manager Private Certificate Authority (AWS Private CA) kunci pribadi dan memiliki masa pakai 30 tahun. Subjek PCA memiliki format berikut.

```
CN=aws.nitro-enclaves, C=US, O=Amazon, OU=AWS
```

**Topics**
+ [COSE dan CBOR](#COSE-CBOR)
+ [Validitas semantik](#semantic-validation)
+ [Validitas sertifikat](#cert-validity)
+ [Validitas rantai sertifikat](#chain)

### COSE dan CBOR
<a name="COSE-CBOR"></a>

Biasanya, struktur tanda tangan Cose\$1sign1 digunakan ketika hanya satu tanda tangan yang akan ditempatkan pada pesan. Parameter yang berhubungan dengan konten dan tanda tangan ditempatkan di header yang dilindungi daripada memiliki pemisahan Cose\$1sign. Struktur dapat dikodekan sebagai tag atau untagged, tergantung pada konteks yang akan digunakan. Struktur Cose\$1sign1 yang ditandai diidentifikasi oleh tag CBOR 18. 

Objek CBOR yang membawa tubuh, tanda tangan, dan informasi tentang tubuh dan tanda tangan disebut struktur COSE\$1sign1. Struktur Cose\$1sign1 adalah array CBOR. Array mencakup bidang-bidang berikut.

```
[
  protected:   Header,
  unprotected: Header,
  payload:     This field contains the serialized content to be signed,
  signature:   This field contains the computed signature value.
]
```

Dalam konteks Dokumen Pengesahan, array mencakup yang berikut ini.

```
18(/* COSE_Sign1 CBOR tag is 18 */
    {1: -35}, /* This is equivalent with {algorithm: ECDS 384} */
    {}, /* We have nothing in unprotected */
    $ATTESTATION_DOCUMENT_CONTENT /* Attestation Document */,
    signature /* This is the signature */
)
```

Untuk informasi lebih lanjut tentang CBOR, lihat [RFC 8949: Representasi Objek Biner Ringkas](https://www.rfc-editor.org/rfc/rfc8949.html) (CBOR).

### Validitas semantik
<a name="semantic-validation"></a>

Dokumen Pengesahan akan selalu memiliki bundel CA mereka dalam urutan berikut.

```
[ ROOT_CERT - INTERM_1 - INTERM_2 .... - INTERM_N]
      0          1          2             N - 1
```

Ingatlah urutan ini, karena beberapa alat yang ada, seperti Java CertPath dari [Java PKI API Programmer's Guide](https://docs.oracle.com/javase/8/docs/technotes/guides/security/certpath/CertPathProgGuide.html), mungkin mengharuskan mereka untuk dipesan secara berbeda.

Untuk memvalidasi sertifikat, mulai dari bundel CA Dokumen Pengesahan dan buat rantai yang diperlukan, Di mana `TARGET_CERT` sertifikat dalam Dokumen Pengesahan.

```
[TARGET_CERT, INTERM_N, ..... , INTERM_2, INTERM_1, ROOT_CERT]
```

### Validitas sertifikat
<a name="cert-validity"></a>

Untuk semua sertifikat dalam rantai, Anda harus memastikan bahwa tanggal saat ini termasuk dalam periode validitas yang ditentukan dalam sertifikat.

### Validitas rantai sertifikat
<a name="chain"></a>

Secara umum, rantai beberapa sertifikat mungkin diperlukan, yang terdiri dari sertifikat pemilik kunci publik yang ditandatangani oleh satu CA, dan nol atau lebih sertifikat tambahan yang CAs ditandatangani oleh yang lain CAs. Rantai semacam itu, yang disebut jalur sertifikasi, diperlukan karena pengguna kunci publik hanya diinisialisasi dengan sejumlah kunci publik CA yang terjamin. Prosedur validasi jalur sertifikasi untuk PKI internet didasarkan pada algoritma yang disediakan dalam X.509. Pemrosesan jalur sertifikasi memverifikasi pengikatan antara nama subjek yang dibedakan nama alternatif and/or subjek dan kunci publik subjek. Pengikatan dibatasi oleh kendala yang ditentukan dalam sertifikat yang terdiri dari jalur dan input yang ditentukan oleh pihak yang mengandalkan. Kendala dasar dan ekstensi kendala kebijakan memungkinkan logika pemrosesan jalur sertifikasi untuk mengotomatiskan proses pengambilan keputusan.

**catatan**  
CRL harus dinonaktifkan saat melakukan validasi.

Menggunakan Java, mulai dari jalur root dan rantai sertifikat yang dihasilkan, validasi rantai adalah sebagai berikut.

```
validateCertsPath(certChain, rootCertficate) {
    /* The trust anchor is the root CA to trust */
    trustAnchors.add(rootCertificate);

    /* We need PKIX parameters to specify the trust anchors
     * and disable the CRL validation
     */
    validationParameters = new PKIXParameters(trustAnchors);
    certPathValidator = CertPathValidator.getInstance(PKIX);
    validationParameters.setRevocationEnabled(false);

    /* We are ensuring that certificates are chained correctly */
    certPathValidator.validate(certPath, validationParameters);
}
```

# Integrasi dengan AWS KMS
<a name="attestation-attest"></a>

Instance Anda harus memiliki aplikasi yang dapat membuat permintaan AWS KMS API dengan Dokumen Pengesahan yang diambil dari NitRotPM. Saat Anda membuat permintaan dengan Dokumen AWS KMS Pengesahan, validasi pengukuran dalam Dokumen Pengesahan yang disediakan terhadap pengukuran referensi dalam kebijakan kunci KMS. Permintaan hanya diperbolehkan jika pengukuran dalam Dokumen Pengesahan cocok dengan pengukuran referensi dalam kebijakan kunci KMS.

Saat Anda memanggil operasi [Dekripsi](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html),, [DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html), [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html), atau [GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)API dengan Dokumen Pengesahan, ini APIs mengenkripsi plaintext dalam respons di bawah kunci publik dari Dokumen Pengesahan, dan mengembalikan ciphertext alih-alih teks biasa. Ciphertext ini dapat didekripsi hanya dengan menggunakan kunci pribadi yang cocok yang dihasilkan dalam instance.

*Untuk informasi lebih lanjut, lihat [pengesahan Kriptografi untuk NitroTPM](https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html) di Panduan Pengembang.AWS Key Management Service *

**catatan**  
Jika Anda membuktikan layanan pihak ketiga, Anda harus membangun mekanisme kustom Anda sendiri untuk menerima, mengurai, dan memvalidasi Dokumen Pengesahan. Untuk informasi selengkapnya, lihat [Validasi Dokumen Pengesahan NitroTPM](nitrotpm-attestation-document-validate.md).

# Mengisolasi data dari operator Anda sendiri
<a name="isolate-data-operators"></a>

Sistem AWS Nitro tidak memiliki [akses operator](https://docs.aws.amazon.com/whitepapers/latest/security-design-of-aws-nitro-system/no-aws-operator-access.html). Tidak ada mekanisme bagi AWS sistem atau orang mana pun untuk masuk ke host Amazon EC2 Nitro, mengakses memori instans EC2, atau mengakses data pelanggan apa pun yang disimpan di penyimpanan instans terenkripsi lokal atau volume Amazon EBS terenkripsi jarak jauh.

Saat memproses data yang sangat sensitif, Anda dapat mempertimbangkan untuk membatasi akses ke data tersebut dengan mencegah operator Anda sendiri mengakses instans EC2.

Anda dapat membuat Attestable kustom AMIs yang dikonfigurasi untuk menyediakan lingkungan komputasi yang terisolasi. Konfigurasi AMI tergantung pada beban kerja dan persyaratan aplikasi Anda. Pertimbangkan praktik terbaik ini saat membangun AMI Anda untuk menciptakan lingkungan komputasi yang terisolasi.
+ **Hapus semua akses interaktif** untuk mencegah operator atau pengguna mengakses instans.
+ **Pastikan bahwa hanya perangkat lunak dan kode tepercaya** yang disertakan dalam AMI.
+ **Konfigurasikan firewall jaringan** dalam instance untuk memblokir akses.
+ **Pastikan status hanya-baca dan tidak dapat diubah** untuk semua penyimpanan dan sistem file.
+ **Batasi akses instans ke panggilan** API yang diautentikasi, diotorisasi, dan dicatat.

# Memperbarui Attestable AMIs yang tidak memiliki akses interaktif
<a name="working-with-isolated-amis"></a>

Setelah Anda meluncurkan instance menggunakan lingkungan komputasi terisolasi AMI, tidak ada cara bagi pengguna atau operator mana pun untuk terhubung ke instance. Ini berarti bahwa tidak ada cara untuk menginstal atau memperbarui perangkat lunak apa pun pada instance setelah peluncuran.

Jika perangkat lunak baru atau pembaruan perangkat lunak diperlukan, Anda harus membuat AMI Attestable baru yang menyertakan pembaruan perangkat lunak atau perangkat lunak yang diperlukan. Kemudian, gunakan AMI itu untuk meluncurkan instance baru, atau untuk melakukan penggantian volume root pada instance asli. Setiap perubahan perangkat lunak yang dilakukan pada AMI akan menghasilkan hash baru yang dihasilkan.

Tindakan berikut akan menghasilkan perubahan pada pengukuran referensi dalam Dokumen Pengesahan NitroTPM:
+ Menghentikan dan memulai instance yang diluncurkan dengan AMI yang Dapat Dibuktikan
+ Melakukan penggantian volume root dengan AMI yang berbeda

Jika Anda melakukan salah satu tindakan ini, Anda kemudian harus memperbarui layanan pengesahan Anda dengan pengukuran referensi baru. Misalnya, Anda harus memperbarui kebijakan kunci KMS Anda ke pengukuran referensi baru jika Anda menggunakannya AWS KMS untuk pengesahan.

Instance mempertahankan materi kunci NitroTPM untuk seluruh siklus hidup instance, dan bertahan melalui stop/starts operasi penggantian volume root.

# Credential Guard untuk instance Windows
<a name="credential-guard"></a>

Sistem AWS Nitro mendukung Credential Guard untuk instans Windows Amazon Elastic Compute Cloud (Amazon EC2). Credential Guard adalah fitur keamanan berbasis virtualisasi (VBS) Windows yang memungkinkan pembuatan lingkungan yang terisolasi untuk melindungi aset keamanan, seperti kredensial pengguna Windows dan pemberlakuan integritas kode, di luar perlindungan kernel Windows. Ketika Anda menjalankan instans EC2 Windows, Credential Guard menggunakan Sistem AWS Nitro untuk melindungi kredensi login Windows agar tidak diekstraksi dari memori sistem operasi.

**Topics**
+ [Prasyarat](#credential-guard-prerequisites)
+ [Luncurkan instance yang didukung](#credential-guard-launch-instance)
+ [Nonaktifkan integritas memori](#disable-memory-integrity)
+ [Aktifkan Credential Guard](#turn-on-credential-guard)
+ [Verifikasi bahwa Credential Guard sedang berjalan](#verify-credential-guard)

## Prasyarat
<a name="credential-guard-prerequisites"></a>

Instans Windows Anda harus memenuhi persyaratan berikut untuk menggunakan Credential Guard.

**Gambar Mesin Amazon (AMIs)**  
AMI harus dikonfigurasikan sebelumnya untuk mengaktifkan Secure Boot NitroTPM dan UEFI. Untuk informasi selengkapnya tentang dukungan AMIs, lihat[Persyaratan untuk menggunakan NitroTPM dengan instans Amazon EC2](enable-nitrotpm-prerequisites.md).

**Integritas memori**  
*Integritas memori*, juga dikenal sebagai *integritas kode yang dilindungi hypervisor (HVCI)* atau *integritas kode yang diberlakukan hypervisor*, tidak didukung. Sebelum Anda mengaktifkan Credential Guard, Anda harus memastikan fitur ini dinonaktifkan. Untuk informasi selengkapnya, lihat [Nonaktifkan integritas memori](#disable-memory-integrity).

**Tipe instans**  
Jenis contoh berikut mendukung Credential Guard di semua ukuran kecuali disebutkan lain:`C5`,`C5d`,`C5n`,`C6i`,`C6id`,`C6in`,`C7i`,,`C7i-flex`,`M5`,`M5d`,`M5dn`,`M5n`,`M5zn`,`M6i`,`M6id`,`M6idn`,`M6in`,`M7i`,`M7i-flex`,`R5`,`R5b`,`R5d`,,`R5dn`,`R5n`,`R6i`,`R6id`,`R6idn`, `R6in` `R7i``R7iz`,`T3`.  
+ Meskipun NitRotPM memiliki beberapa jenis instance wajib yang sama, tipe instance harus menjadi salah satu tipe instance sebelumnya untuk mendukung Credential Guard.
+ Credential Guard tidak didukung untuk:
  + Contoh logam telanjang.
  + Jenis contoh berikut:`C7i.48xlarge`,`M7i.48xlarge`, dan`R7i.48xlarge`.
Untuk informasi selengkapnya tentang jenis instans, lihat Panduan [Jenis Instans Amazon EC2](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-types.html).

## Luncurkan instance yang didukung
<a name="credential-guard-launch-instance"></a>

Anda dapat menggunakan konsol Amazon EC2 atau AWS Command Line Interface (AWS CLI) untuk meluncurkan instance yang dapat mendukung Credential Guard. Anda akan memerlukan ID AMI yang kompatibel untuk meluncurkan instans Anda yang unik untuk setiap Wilayah AWS.

**Tip**  
Anda dapat menggunakan tautan berikut untuk menemukan dan meluncurkan instans dengan AMI yang disediakan Amazon yang kompatibel di konsol Amazon EC2:  
[https://console.aws.amazon.com/ec2/v2/home?#Images:visibility=public-images;v=3;search=:TPM-Windows_Server;ownerAlias=amazon](https://console.aws.amazon.com/ec2/v2/home?#Images:visibility=public-images;v=3;search=:TPM-Windows_Server;ownerAlias=amazon)

------
#### [ Console ]

**Untuk meluncurkan sebuah instans**  
Ikuti langkah-langkah untuk [meluncurkan instance](ec2-launch-instance-wizard.md), menentukan jenis instans yang didukung dan AMI Windows yang telah dikonfigurasi sebelumnya.

------
#### [ AWS CLI ]

**Untuk meluncurkan sebuah instans**  
Gunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) untuk meluncurkan instans menggunakan tipe instans yang didukung dan AMI Windows yang telah dikonfigurasi sebelumnya.

```
aws ec2 run-instances \
    --image-id resolve:ssm:/aws/service/ami-windows-latest/TPM-Windows_Server-2022-English-Full-Base \
    --instance-type c6i.large \
    --region us-east-1 \
    --subnet-id subnet-0abcdef1234567890
    --key-name key-name
```

------
#### [ PowerShell ]

**Untuk meluncurkan sebuah instans**  
Gunakan perintah [https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) untuk meluncurkan instans menggunakan tipe instans yang didukung dan AMI Windows yang telah dikonfigurasi sebelumnya.

```
New-EC2Instance `
    -ImageId resolve:ssm:/aws/service/ami-windows-latest/TPM-Windows_Server-2022-English-Full-Base `
    -InstanceType c6i.large `
    -Region us-east-1 `
    -SubnetId subnet-0abcdef1234567890 `
    -KeyName key-name
```

------

## Nonaktifkan integritas memori
<a name="disable-memory-integrity"></a>

Anda dapat menggunakan Editor Kebijakan Grup Lokal untuk menonaktifkan integritas memori dalam skenario yang didukung. Panduan berikut dapat diterapkan untuk setiap pengaturan konfigurasi di bawah **Virtualization Based Protection of Code Integrity**:
+ **Diaktifkan tanpa kunci** – Ubah pengaturan ke **Dinonaktifkan** untuk menonaktifkan integritas memori.
+ **Diaktifkan dengan kunci UEFI** – Integritas memori telah diaktifkan dengan kunci UEFI. Integritas memori tidak dapat dinonaktifkan setelah diaktifkan dengan kunci UEFI. Sebaiknya buat instans baru dengan integritas memori dinonaktifkan dan menghentikan instans yang tidak didukung jika tidak digunakan.

**Untuk menonaktifkan integritas memori dengan Editor Kebijakan Grup Lokal**

1. Terhubung ke instans Anda sebagai akun pengguna dengan hak akses administrator menggunakan Protokol Desktop Jarak Jauh (RDP). Untuk informasi selengkapnya, lihat [Connect ke instans Windows Anda menggunakan klien RDP](connect-rdp.md).

1. Buka menu Mulai dan cari **cmd** untuk memulai prompt perintah.

1. Jalankan perintah berikut untuk membuka Editor Kebijakan Grup Lokal: `gpedit.msc`

1. Di Editor Kebijakan Grup Lokal, pilih **Konfigurasi Komputer**, **Templat Administratif**, **Sistem**, **Penjaga Perangkat**.

1. Pilih **Aktifkan Keamanan Berbasis Virtualisasi**, lalu pilih **Edit pengaturan kebijakan**.

1. Buka drop-down pengaturan untuk **Perlindungan Integritas Kode Berbasis Virtualisasi**, pilih **Nonaktifkan**, lalu pilih **Terapkan**.

1. Boot ulang instans untuk menerapkan perubahan.

## Aktifkan Credential Guard
<a name="turn-on-credential-guard"></a>

Setelah meluncurkan instans Windows dengan tipe instans yang didukung dan AMI yang kompatibel dan mengonfirmasi bahwa integritas memori dinonaktifkan, Anda dapat mengaktifkan Credential Guard.

**penting**  
Hak akses administrator diperlukan untuk melakukan langkah-langkah berikut guna mengaktifkan Credential Guard.

**Mengaktifkan Credential Guard**

1. Terhubung ke instans Anda sebagai akun pengguna dengan hak akses administrator menggunakan Protokol Desktop Jarak Jauh (RDP). Untuk informasi selengkapnya, lihat [Connect ke instans Windows Anda menggunakan klien RDP](connect-rdp.md).

1. Buka menu Mulai dan cari **cmd** untuk memulai prompt perintah.

1. Jalankan perintah berikut untuk membuka Editor Kebijakan Grup Lokal: `gpedit.msc`

1. Di Editor Kebijakan Grup Lokal, pilih **Konfigurasi Komputer**, **Templat Administratif**, **Sistem**, **Penjaga Perangkat**.

1. Pilih **Aktifkan Keamanan Berbasis Virtualisasi**, lalu pilih **Edit pengaturan kebijakan**.

1. Pilih **Diaktifkan** dalam menu **Aktifkan Keamanan Berbasis Virtualisasi**.

1. Untuk **Pilih Tingkat Keamanan Platform**, pilih **Secure Boot dan Perlindungan DMA**.

1. Untuk **Konfigurasi Credential Guard**, pilih **Diaktifkan dengan kunci UEFI**.
**catatan**  
Pengaturan kebijakan yang tersisa tidak diperlukan untuk mengaktifkan Credential Guard dan dapat dibiarkan sebagai **Tidak Dikonfigurasikan**.

   Gambar berikut menampilkan pengaturan VBS yang dikonfigurasikan seperti yang dijelaskan sebelumnya:  
![\[\]](http://docs.aws.amazon.com/id_id/AWSEC2/latest/UserGuide/images/vbs-credential-guard-gpo-enabled.png)

1. Boot ulang instans untuk menerapkan pengaturan.

## Verifikasi bahwa Credential Guard sedang berjalan
<a name="verify-credential-guard"></a>

Anda dapat menggunakan alat Informasi Sistem Microsoft (`Msinfo32.exe`) untuk mengonfirmasi bahwa Credential Guard sedang berjalan.

**penting**  
Anda harus melakukan boot ulang instans terlebih dahulu untuk menyelesaikan penerapan pengaturan kebijakan yang diperlukan untuk mengaktifkan Credential Guard.

**Untuk memverifikasi bahwa Credential Guard sedang berjalan**

1. Hubungkan ke instans Anda menggunakan Protokol Desktop Jarak Jauh (RDP). Untuk informasi selengkapnya, lihat [Connect ke instans Windows Anda menggunakan klien RDP](connect-rdp.md).

1. Dalam sesi RDP ke instans Anda, buka menu Mulai dan cari **cmd** untuk memulai prompt perintah.

1. Buka Informasi Sistem dengan menjalankan perintah berikut: `msinfo32.exe`

1. Alat Informasi Sistem Microsoft mencantumkan detail untuk konfigurasi VBS. Di samping Layanan keamanan berbasis Virtualisasi, konfirmasi bahwa **Credential Guard** muncul sebagai **Berjalan**.

   Gambar berikut menampilkan VBS berjalan seperti yang dijelaskan sebelumnya:  
![\[\]](http://docs.aws.amazon.com/id_id/AWSEC2/latest/UserGuide/images/vbs-credential-guard-msinfo32-enabled.png)

# Mengakses Amazon EC2 menggunakan titik akhir VPC antarmuka
<a name="interface-vpc-endpoints"></a>

Anda dapat meningkatkan postur keamanan VPC Anda dengan membuat koneksi pribadi antara sumber daya di VPC Anda dan Amazon EC2 API. Anda dapat mengakses Amazon EC2 API seolah-olah berada di VPC Anda, tanpa menggunakan gateway internet, perangkat NAT, koneksi VPN, atau koneksi. Direct Connect Instans EC2 di VPC Anda tidak memerlukan alamat IP publik untuk mengakses Amazon EC2 API.

Untuk informasi selengkapnya, lihat [Akses Layanan AWS melalui AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html) di *AWS PrivateLink Panduan*.

**Topics**
+ [Membuat titik akhir VPC antarmuka](#create-endpoint)
+ [Membuat kebijakan titik akhir](#endpoint-policy)

## Membuat titik akhir VPC antarmuka
<a name="create-endpoint"></a>

Buatlah titik akhir antarmuka untuk Amazon EC2 menggunakan nama layanan berikut:
+ **com.amazonaws. *region*.ec2** - Membuat titik akhir untuk tindakan Amazon EC2 API.

*Untuk informasi selengkapnya, lihat [Mengakses titik akhir VPC antarmuka Layanan AWS menggunakan antarmuka di Panduan](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html).AWS PrivateLink *

## Membuat kebijakan titik akhir
<a name="endpoint-policy"></a>

 kebijakan titik akhir adalah sumber daya IAM yang dapat Anda lampirkan ke titik akhir antarmuka Anda. Kebijakan titik akhir default mengizinkan akses penuh ke Amazon EC2 API melalui titik akhir antarmuka. Untuk mengontrol akses yang diizinkan ke API Amazon EC2 dari VPC Anda, lampirkan kebijakan titik akhir kustom ke titik akhir antarmuka.

 kebijakan titik akhir mencantumkan informasi berikut:
+ prinsipal utama yang dapat melakukan tindakan.
+ Tindakan-tindakan yang dapat dilakukan.
+ Sumber daya yang padanya tindakan dapat dilakukan.

**penting**  
Jika kebijakan non-default diterapkan ke titik akhir VPC antarmuka untuk Amazon EC2, permintaan API tertentu yang gagal, seperti yang gagal`RequestLimitExceeded`, mungkin tidak dicatat atau Amazon. AWS CloudTrail CloudWatch

Untuk informasi selengkapnya, lihat [Mengontrol akses ke layanan menggunakan kebijakan titik akhir](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html) di *Panduan AWS PrivateLink *.

Contoh berikut menunjukkan kebijakan titik akhir VPC yang menolak izin untuk membuat volume yang tidak terenkripsi atau untuk meluncurkan instans yang memiliki volume yang tidak terenkripsi. Contoh kebijakan tersebut juga memberikan izin untuk melakukan semua tindakan Amazon EC2 lainnya.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
        "Action": "ec2:*",
        "Effect": "Allow",
        "Resource": "*",
        "Principal": "*"
    },
    {
        "Action": [
            "ec2:CreateVolume"
        ],
        "Effect": "Deny",
        "Resource": "*",
        "Principal": "*",
        "Condition": {
            "Bool": {
                "ec2:Encrypted": "false"
            }
        }
    },
    {
        "Action": [
            "ec2:RunInstances"
        ],
        "Effect": "Deny",
        "Resource": "*",
        "Principal": "*",
        "Condition": {
            "Bool": {
                "ec2:Encrypted": "false"
            }
        }
    }]
}
```

------