

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

# Keamanan di Amazon API Gateway
<a name="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 model](https://aws.amazon.com/compliance/shared-responsibility-model/) * menggambarkan ini sebagai keamanan cloud dan keamanan *di* 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 API Gateway, lihat [AWS layanan dalam cakupan berdasarkan AWS layanan program kepatuhan](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Keamanan di cloud** — Tanggung jawab Anda ditentukan oleh AWS layanan yang Anda gunakan. Anda juga bertanggung jawab atas faktor lain, yang mencakup sensitivitas data Anda, persyaratan perusahaan Anda, serta undang-undang dan peraturan yang berlaku. 

Dokumentasi ini membantu Anda memahami cara menerapkan model tanggung jawab bersama saat menggunakan API Gateway. Topik berikut menunjukkan cara mengonfigurasi API Gateway untuk memenuhi tujuan keamanan dan kepatuhan Anda. Anda juga mempelajari cara menggunakan AWS layanan lain yang membantu Anda memantau dan mengamankan sumber daya API Gateway Anda. 

Untuk informasi selengkapnya, lihat [Gambaran Umum Keamanan Amazon API Gateway](https://d1.awsstatic.com/whitepapers/api-gateway-security.pdf).

**Topics**
+ [Perlindungan data di Amazon API Gateway](data-protection.md)
+ [Manajemen identitas dan akses untuk Amazon API Gateway](security-iam.md)
+ [Pencatatan dan pemantauan di Amazon API Gateway](security-monitoring.md)
+ [Validasi kepatuhan untuk Amazon API Gateway](compliance-validation.md)
+ [Ketahanan di Amazon API Gateway](disaster-recovery-resiliency.md)
+ [Keamanan infrastruktur di Amazon API Gateway](infrastructure-security.md)
+ [Analisis kerentanan di Amazon API Gateway](vulnerability-analysis.md)
+ [Praktik terbaik keamanan di Amazon API Gateway](security-best-practices.md)

# Perlindungan data di Amazon API Gateway
<a name="data-protection"></a>

[Model tanggung jawab AWS bersama model tanggung](https://aws.amazon.com/compliance/shared-responsibility-model/) berlaku untuk perlindungan data di Amazon API Gateway. 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 sumber daya. AWS 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 API Gateway 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.

# Enkripsi data di Amazon API Gateway
<a name="data-protection-encryption"></a>

Perlindungan data mengacu pada melindungi data saat transit (saat bepergian ke dan dari API Gateway) dan saat istirahat (saat disimpan di AWS).

## Enkripsi data saat istirahat di Amazon API Gateway
<a name="data-protection-at-rest"></a>

Jika Anda memilih untuk mengaktifkan caching untuk REST API, Anda dapat mengaktifkan enkripsi cache. Untuk mempelajari selengkapnya, lihat [Pengaturan cache untuk REST APIs di API Gateway](api-gateway-caching.md).

Untuk informasi selengkapnya tentang perlindungan data, lihat postingan blog [Model Tanggung Jawab Bersama AWS dan GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di *Blog Keamanan AWS *.

### Enkripsi dan dekripsi kunci pribadi sertifikat Anda
<a name="private-key"></a>

**Saat Anda membuat nama domain khusus untuk pribadi APIs, sertifikat ACM dan kunci pribadi Anda dienkripsi menggunakan kunci KMS AWS terkelola yang memiliki alias aws/acm.** Anda dapat melihat ID kunci dengan alias ini di AWS KMS konsol di bawah **kunci AWS terkelola**.

API Gateway tidak langsung mengakses sumber daya ACM Anda. Ini menggunakan AWS TLS Connection Manager untuk mengamankan dan mengakses kunci pribadi untuk sertifikat Anda. Saat Anda menggunakan sertifikat ACM untuk membuat nama domain kustom API Gateway untuk pribadi APIs, API Gateway mengaitkan sertifikat Anda dengan AWS TLS Connection Manager. Ini dilakukan dengan membuat hibah AWS KMS terhadap Kunci AWS Terkelola Anda dengan awalan **aws/acm**. Hibah adalah instrumen kebijakan yang memungkinkan TLS Connection Manager untuk menggunakan kunci KMS dalam operasi kriptografi. Hibah ini memungkinkan prinsipal penerima hibah (TLS Connection Manager) untuk memanggil operasi hibah yang ditentukan pada kunci KMS untuk mendekripsi kunci pribadi sertifikat Anda. TLS Connection Manager kemudian menggunakan sertifikat dan kunci pribadi yang didekripsi (plaintext) untuk membuat koneksi aman (sesi SSL/TLS) dengan klien layanan API Gateway. Ketika sertifikat dipisahkan dari nama domain kustom API Gateway untuk pribadi APIs, hibah akan dihentikan.

Jika Anda ingin menghapus akses ke kunci KMS, kami sarankan Anda mengganti atau menghapus sertifikat dari layanan menggunakan Konsol Manajemen AWS atau `update-service` perintah di AWS CLI.

### Konteks enkripsi untuk API Gateway
<a name="encryption-context"></a>

[Konteks enkripsi](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) adalah kumpulan opsional pasangan kunci-nilai yang berisi informasi kontekstual tentang apa kunci pribadi Anda mungkin digunakan untuk. AWS KMS mengikat konteks enkripsi ke data terenkripsi dan menggunakannya sebagai data otentikasi tambahan untuk mendukung enkripsi yang diautentikasi.

Ketika kunci TLS Anda digunakan dengan API Gateway dan TLS Connection manager, nama layanan API Gateway Anda disertakan dalam konteks enkripsi yang digunakan untuk mengenkripsi kunci Anda saat istirahat. Anda dapat memverifikasi nama domain kustom API Gateway yang digunakan sertifikat dan kunci pribadi Anda dengan melihat konteks enkripsi di CloudTrail log Anda seperti yang ditunjukkan di bagian berikutnya, atau dengan melihat tab **Sumber Daya Terkait** di konsol ACM.

Untuk mendekripsi data, konteks enkripsi yang sama disertakan dalam permintaan. API Gateway menggunakan konteks enkripsi yang sama di semua operasi kriptografi AWS KMS, di mana kuncinya `aws:apigateway:arn` dan nilainya adalah Nama Sumber Daya Amazon (ARN) dari sumber daya API Gateway. `PrivateDomainName`

Contoh berikut menunjukkan konteks enkripsi dalam output dari operasi seperti`CreateGrant`.

```
"constraints": {
"encryptionContextEquals": {
"aws:acm:arn": "arn:aws:acm:us-west-2:859412291086:certificate/9177097a-f0ae-4be1-93b1-19f911ea4f88",
"aws:apigateway:arn": "arn:aws:apigateway:us-west-2:859412291086:/domainnames/denytest-part1.pdx.sahig.people.aws.dev+cbaeumzjhg"
}
},
"operations": [
"Decrypt"
],
"granteePrincipal": "tlsconnectionmanager.amazonaws.com"
```

## Enkripsi data dalam perjalanan di Amazon API Gateway
<a name="data-protection-in-transit"></a>

Yang APIs dibuat dengan Amazon API Gateway hanya mengekspos titik akhir HTTPS. API Gateway tidak mendukung titik akhir (HTTP) yang tidak terenkripsi.

API Gateway mengelola sertifikat untuk `execute-api` titik akhir default. Jika Anda mengonfigurasi nama domain kustom, [Anda menentukan sertifikat untuk nama domain](how-to-custom-domains.md#custom-domain-names-certificates). Sebagai praktik terbaik, jangan [menyematkan sertifikat](https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-pinning.html).

Untuk keamanan yang lebih baik, Anda dapat memilih versi protokol Transport Layer Security (TLS) minimum yang akan diterapkan untuk domain kustom API Gateway Anda. WebSocket APIs dan APIs dukungan HTTP hanya TLS 1.2. Untuk mempelajari selengkapnya, lihat [Pilih kebijakan keamanan untuk domain kustom Anda di API Gateway](apigateway-custom-domain-tls-version.md).

Anda juga dapat mengatur CloudFront distribusi Amazon dengan sertifikat SSL khusus di akun Anda dan menggunakannya dengan Regional APIs. Anda kemudian dapat mengonfigurasi kebijakan keamanan untuk CloudFront distribusi dengan TLS 1.1 atau lebih tinggi berdasarkan persyaratan keamanan dan kepatuhan Anda.

Untuk informasi selengkapnya tentang perlindungan data, lihat [Lindungi REST Anda APIs di API Gateway](rest-api-protect.md) dan posting blog [Model Tanggung Jawab AWS Bersama dan GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di *Blog AWS Keamanan*.

# Privasi lalu lintas antarjaringan
<a name="security-traffic-privacy"></a>

Menggunakan Amazon API Gateway, Anda dapat membuat REST pribadi APIs yang hanya dapat diakses dari Amazon Virtual Private Cloud (VPC). VPC menggunakan antarmuka [VPC endpoint, yang merupakan antarmuka jaringan endpoint](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) yang Anda buat di VPC Anda. Dengan menggunakan [kebijakan sumber daya](apigateway-private-api-create.md#apigateway-private-api-set-up-resource-policy), Anda dapat mengizinkan atau menolak akses ke API dari titik akhir yang dipilih VPCs dan VPC, termasuk di seluruh akun. AWS Setiap endpoint dapat digunakan untuk mengakses beberapa private APIs. Anda juga dapat menggunakan Direct Connect untuk membuat sambungan dari jaringan lokal ke Amazon VPC dan mengakses API pribadi Anda melalui koneksi tersebut. Dalam semua kasus, lalu lintas ke API pribadi Anda menggunakan koneksi aman dan tidak meninggalkan jaringan Amazon; itu terisolasi dari internet publik. Untuk mempelajari informasi lebih lanjut, lihat [REST pribadi APIs di API Gateway](apigateway-private-apis.md).

# Manajemen identitas dan akses untuk Amazon API Gateway
<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 *diberi wewenang* (memiliki izin) untuk menggunakan sumber daya API Gateway. IAM adalah Layanan AWS yang dapat Anda gunakan tanpa biaya tambahan.

**Topics**
+ [Audiens](#security_iam_audience)
+ [Mengautentikasi dengan identitas](#security_iam_authentication)
+ [Mengelola akses menggunakan kebijakan](#security_iam_access-manage)
+ [Cara kerja Amazon API Gateway dengan IAM](security_iam_service-with-iam.md)
+ [Contoh kebijakan berbasis identitas Amazon API Gateway](security_iam_id-based-policy-examples.md)
+ [Contoh kebijakan berbasis sumber daya Amazon API Gateway](security_iam_resource-based-policy-examples.md)
+ [Memecahkan masalah identitas dan akses Amazon API Gateway](security_iam_troubleshoot.md)
+ [Menggunakan peran terkait layanan untuk API Gateway](using-service-linked-roles.md)

## Audiens
<a name="security_iam_audience"></a>

Cara Anda menggunakan AWS Identity and Access Management (IAM) berbeda berdasarkan peran Anda:
+ **Pengguna layanan** - minta izin dari administrator Anda jika Anda tidak dapat mengakses fitur (lihat [Memecahkan masalah identitas dan akses Amazon API Gateway](security_iam_troubleshoot.md))
+ **Administrator layanan** - tentukan akses pengguna dan mengirimkan permintaan izin (lihat [Cara kerja Amazon API Gateway dengan IAM](security_iam_service-with-iam.md))
+ **Administrator IAM** - tulis kebijakan untuk mengelola akses (lihat [Contoh kebijakan berbasis identitas Amazon API Gateway](security_iam_id-based-policy-examples.md))

## Mengautentikasi dengan identitas
<a name="security_iam_authentication"></a>

Otentikasi adalah cara Anda masuk AWS menggunakan kredensi identitas Anda. Anda harus diautentikasi sebagai Pengguna root akun AWS, pengguna IAM, atau dengan mengasumsikan peran IAM.

Anda dapat masuk sebagai identitas federasi menggunakan kredensional dari sumber identitas seperti AWS IAM Identity Center (Pusat Identitas IAM), otentikasi masuk tunggal, atau kredensional. Google/Facebook Untuk informasi selengkapnya tentang cara masuk, lihat [Cara masuk ke Akun AWS Anda](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) dalam *Panduan Pengguna AWS Sign-In *.

Untuk akses terprogram, AWS sediakan SDK dan CLI untuk menandatangani permintaan secara kriptografis. Untuk informasi selengkapnya, lihat [AWS Signature Version 4 untuk permintaan API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) dalam *Panduan Pengguna IAM*.

### Akun AWS pengguna root
<a name="security_iam_authentication-rootuser"></a>

 Saat Anda membuat Akun AWS, Anda mulai dengan satu identitas masuk yang disebut *pengguna Akun AWS root* yang memiliki akses lengkap ke semua Layanan AWS dan sumber daya. Kami sangat menyarankan agar Anda tidak menggunakan pengguna root untuk tugas sehari-hari. Untuk tugas yang memerlukan kredensial pengguna root, lihat [Tugas yang memerlukan kredensial pengguna root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) dalam *Panduan Pengguna IAM*. 

### Pengguna dan grup IAM
<a name="security_iam_authentication-iamuser"></a>

*[Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* adalah identitas dengan izin khusus untuk satu orang atau aplikasi. Sebaiknya gunakan kredensial sementara alih-alih pengguna IAM dengan kredensial jangka panjang. Untuk informasi selengkapnya, lihat [Mewajibkan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensi sementara](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) di Panduan Pengguna *IAM*.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) menentukan kumpulan pengguna IAM dan mempermudah pengelolaan izin untuk pengguna dalam jumlah besar. Untuk mempelajari selengkapnya, lihat [Kasus penggunaan untuk pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) dalam *Panduan Pengguna IAM*.

### Peran IAM
<a name="security_iam_authentication-iamrole"></a>

*[Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* adalah identitas dengan izin khusus yang menyediakan kredensial sementara. Anda dapat mengambil peran dengan [beralih dari pengguna ke peran IAM (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) atau dengan memanggil operasi AWS CLI atau AWS API. 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*.

Peran IAM berguna untuk akses pengguna terfederasi, izin pengguna IAM sementara, akses lintas akun, akses lintas layanan, dan aplikasi yang berjalan di Amazon EC2. Untuk informasi selengkapnya, lihat [Akses sumber daya lintas akun di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dalam *Panduan Pengguna IAM*.

## Mengelola akses menggunakan kebijakan
<a name="security_iam_access-manage"></a>

Anda mengontrol akses AWS dengan membuat kebijakan dan melampirkannya ke AWS identitas atau sumber daya. Kebijakan menentukan izin saat dikaitkan dengan identitas atau sumber daya. AWS mengevaluasi kebijakan ini ketika kepala sekolah membuat permintaan. Sebagian besar kebijakan disimpan AWS sebagai dokumen JSON. Untuk informasi selengkapnya tentang dokumen kebijakan JSON, lihat [Gambaran umum kebijakan JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) dalam *Panduan Pengguna IAM*.

Menggunakan kebijakan, administrator menentukan siapa yang memiliki akses ke apa dengan mendefinisikan **principal** mana yang dapat melakukan **tindakan** pada **sumber daya** apa, dan dalam **kondisi** apa.

Secara default, pengguna dan peran tidak memiliki izin. Administrator IAM membuat kebijakan IAM dan menambahkannya ke peran, yang kemudian dapat diambil oleh pengguna. Kebijakan IAM mendefinisikan izin terlepas dari metode yang Anda gunakan untuk melakukan operasinya.

### Kebijakan berbasis identitas
<a name="security_iam_access-manage-id-based-policies"></a>

Kebijakan berbasis identitas adalah dokumen kebijakan izin JSON yang Anda lampirkan ke identitas (pengguna, grup, atau peran). Kebijakan ini mengontrol tindakan apa yang bisa dilakukan oleh identitas tersebut, terhadap sumber daya yang mana, dan dalam kondisi apa. Untuk mempelajari cara membuat kebijakan berbasis identitas, lihat [Tentukan izin IAM kustom dengan kebijakan yang dikelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dalam *Panduan Pengguna IAM*.

Kebijakan berbasis identitas dapat berupa *kebijakan inline* (disematkan langsung ke dalam satu identitas) atau *kebijakan terkelola* (kebijakan mandiri yang dilampirkan pada banyak identitas). Untuk mempelajari cara memilih antara kebijakan terkelola dan kebijakan inline, lihat [Pilih antara kebijakan terkelola dan kebijakan inline](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) dalam *Panduan Pengguna IAM*.

### Kebijakan berbasis sumber daya
<a name="security_iam_access-manage-resource-based-policies"></a>

Kebijakan berbasis sumber daya adalah dokumen kebijakan JSON yang Anda lampirkan ke sumber daya. Contohnya termasuk *kebijakan kepercayaan peran IAM* dan *kebijakan bucket* Amazon S3. Dalam layanan yang mendukung kebijakan berbasis sumber daya, administrator layanan dapat menggunakannya untuk mengontrol akses ke sumber daya tertentu. Anda harus [menentukan principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) dalam kebijakan berbasis sumber daya.

Kebijakan berbasis sumber daya merupakan kebijakan inline yang terletak di layanan tersebut. Anda tidak dapat menggunakan kebijakan AWS terkelola dari IAM dalam kebijakan berbasis sumber daya.

### Daftar kontrol akses (ACLs)
<a name="security_iam_access-manage-acl"></a>

Access control lists (ACLs) mengontrol prinsipal mana (anggota akun, pengguna, atau peran) yang memiliki izin untuk mengakses sumber daya. ACLs mirip dengan kebijakan berbasis sumber daya, meskipun mereka tidak menggunakan format dokumen kebijakan JSON.

Amazon S3, AWS WAF, dan Amazon VPC adalah contoh layanan yang mendukung. ACLs Untuk mempelajari selengkapnya ACLs, lihat [Ringkasan daftar kontrol akses (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) di *Panduan Pengembang Layanan Penyimpanan Sederhana Amazon*.

### Jenis-jenis kebijakan lain
<a name="security_iam_access-manage-other-policies"></a>

AWS mendukung jenis kebijakan tambahan yang dapat menetapkan izin maksimum yang diberikan oleh jenis kebijakan yang lebih umum:
+ **Batasan izin** – Menetapkan izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas kepada entitas IAM. Untuk informasi selengkapnya, lihat [Batasan izin untuk entitas IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) dalam *Panduan Pengguna IAM*.
+ **Kebijakan kontrol layanan (SCPs)** — Tentukan izin maksimum untuk organisasi atau unit organisasi di AWS Organizations. Untuk informasi selengkapnya, lihat [Kebijakan kontrol layanan](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) dalam *Panduan Pengguna AWS Organizations *.
+ **Kebijakan kontrol sumber daya (RCPs)** — Tetapkan izin maksimum yang tersedia untuk sumber daya di akun Anda. Untuk informasi selengkapnya, lihat [Kebijakan kontrol sumber daya (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) di *Panduan AWS Organizations Pengguna*.
+ **Kebijakan sesi** – Kebijakan lanjutan yang diteruskan sebagai parameter saat membuat sesi sementara untuk peran atau pengguna terfederasi. Untuk informasi selengkapnya, lihat [Kebijakan sesi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) dalam *Panduan Pengguna IAM*.

### Berbagai jenis kebijakan
<a name="security_iam_access-manage-multiple-policies"></a>

Ketika beberapa jenis kebijakan berlaku pada suatu permintaan, izin yang dihasilkan lebih rumit untuk dipahami. Untuk mempelajari cara AWS menentukan apakah akan mengizinkan permintaan saat beberapa jenis kebijakan terlibat, lihat [Logika evaluasi kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) di *Panduan Pengguna IAM*.

# Cara kerja Amazon API Gateway dengan IAM
<a name="security_iam_service-with-iam"></a>

Sebelum Anda menggunakan IAM untuk mengelola akses ke API Gateway, Anda harus memahami fitur IAM apa yang tersedia untuk digunakan dengan API Gateway. Untuk mendapatkan tampilan tingkat tinggi tentang cara kerja API Gateway dan AWS layanan lainnya dengan IAM, lihat [AWS Layanan yang Bekerja dengan IAM di Panduan Pengguna *IAM*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html).

**Topics**
+ [Kebijakan berbasis identitas API Gateway](#security_iam_service-with-iam-id-based-policies)
+ [Kebijakan berbasis sumber daya API Gateway](#security_iam_service-with-iam-resource-based-policies)
+ [Otorisasi berdasarkan tag API Gateway](#security_iam_service-with-iam-tags)
+ [Peran IAM API Gateway](#security_iam_service-with-iam-roles)

## Kebijakan berbasis identitas API Gateway
<a name="security_iam_service-with-iam-id-based-policies"></a>

Dengan kebijakan berbasis identitas IAM, Anda dapat menentukan tindakan dan sumber daya mana yang diizinkan atau ditolak serta kondisi di mana tindakan diizinkan atau ditolak. API Gateway mendukung tindakan, sumber daya, dan kunci kondisi tertentu. Untuk informasi selengkapnya tentang tindakan, sumber daya, dan kunci kondisi khusus Gateway API, lihat Kunci [tindakan, sumber daya, dan kondisi untuk Pengelolaan dan Tindakan Amazon API Gateway](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagement.html)[, sumber daya, dan kunci kondisi untuk Amazon API Gateway](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagementv2.html) Management V2. Untuk informasi tentang semua elemen yang Anda gunakan dalam kebijakan JSON, lihat [Referensi Elemen Kebijakan IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) di Panduan Pengguna *IAM*.

Contoh berikut menunjukkan kebijakan berbasis identitas yang memungkinkan pengguna untuk membuat atau memperbarui hanya REST pribadi. APIs Untuk contoh lainnya, lihat [Contoh kebijakan berbasis identitas Amazon API Gateway](security_iam_id-based-policy-examples.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ScopeToPrivateApis",
      "Effect": "Allow",
      "Action": [
        "apigateway:PATCH",
        "apigateway:POST",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/restapis",
        "arn:aws:apigateway:us-east-1::/restapis/??????????"
      ],
      "Condition": {
        "ForAllValues:StringEqualsIfExists": {
          "apigateway:Request/EndpointType": "PRIVATE",
          "apigateway:Resource/EndpointType": "PRIVATE"
        }
      }
    },
    {
      "Sid": "AllowResourcePolicyUpdates",
      "Effect": "Allow",
      "Action": [
          "apigateway:UpdateRestApiPolicy"
      ],
      "Resource": [
          "arn:aws:apigateway:us-east-1::/restapis/*"
      ]
    }
  ]
}
```

------

### Tindakan
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

Elemen `Action` dari kebijakan JSON menjelaskan tindakan yang dapat Anda gunakan untuk mengizinkan atau menolak akses dalam sebuah kebijakan.

Tindakan kebijakan di API Gateway menggunakan awalan berikut sebelum tindakan:`apigateway:`. Pernyataan kebijakan harus memuat elemen `Action` atau `NotAction`. API Gateway mendefinisikan serangkaian tindakannya sendiri yang menjelaskan tugas yang dapat Anda lakukan dengan layanan ini.



`Action`Ekspresi API-managing memiliki format`apigateway:action`, di mana *action* salah satu tindakan API Gateway berikut: **GET**, **POST**, **PUT**, **DELETE**, **PATCH** (untuk memperbarui sumber daya), atau **\$1**, yang merupakan semua tindakan sebelumnya.

Beberapa contoh `Action` ekspresi meliputi:
+ **apigateway:\$1**untuk semua tindakan API Gateway.
+ **apigateway:GET**hanya untuk tindakan GET di API Gateway.

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

```
"Action": [
      "apigateway:action1",
      "apigateway:action2"
```

Untuk informasi tentang kata kerja HTTP yang akan digunakan untuk operasi API Gateway tertentu, lihat Referensi [API Amazon API Gateway Versi 1 (REST APIs) dan Referensi](https://docs.aws.amazon.com/apigateway/api-reference/) [API Amazon API Gateway Versi 2](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/api-reference.html) (WebSocket dan HTTP APIs).

Untuk informasi selengkapnya, lihat [Contoh kebijakan berbasis identitas Amazon API Gateway](security_iam_id-based-policy-examples.md).

### Sumber daya
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana **utama** dapat melakukan **tindakan** pada **sumber daya**, dan dalam **kondisi apa**.

Elemen kebijakan JSON `Resource` menentukan objek yang menjadi target penerapan tindakan. Praktik terbaiknya, tentukan sumber daya menggunakan [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Untuk tindakan yang tidak mendukung izin di tingkat sumber daya, gunakan wildcard (\$1) untuk menunjukkan bahwa pernyataan tersebut berlaku untuk semua sumber daya.

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



Sumber daya API Gateway memiliki format ARN berikut:

```
arn:aws:apigateway:region::resource-path-specifier
```

Misalnya, untuk menentukan REST API dengan id *`api-id`* dan sub-sumber dayanya, seperti otorisasi dalam pernyataan Anda, gunakan ARN berikut:

```
"Resource": "arn:aws:apigateway:us-east-2::/restapis/api-id/*"
```

Untuk menentukan semua REST APIs dan sub-sumber daya milik akun tertentu, gunakan wildcard (\$1):

```
"Resource": "arn:aws:apigateway:us-east-2::/restapis/*"
```

Untuk daftar jenis sumber daya API Gateway dan jenisnya ARNs, lihat[Referensi API Gateway Amazon Resource Name (ARN)](arn-format-reference.md). 

### Kunci syarat
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, **principal** dapat melakukan **tindakan** pada suatu **sumber daya**, dan dalam suatu **syarat**.

Elemen `Condition` menentukan ketika pernyataan dieksekusi berdasarkan kriteria yang ditetapkan. Anda dapat membuat ekspresi bersyarat yang menggunakan [operator kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), misalnya sama dengan atau kurang dari, untuk mencocokkan kondisi dalam kebijakan dengan nilai-nilai yang diminta. Untuk melihat semua kunci kondisi AWS global, lihat [kunci konteks kondisi AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) di *Panduan Pengguna IAM*.

API Gateway mendefinisikan kumpulan kunci kondisinya sendiri dan juga mendukung penggunaan beberapa kunci kondisi global. Untuk daftar kunci kondisi API Gateway, lihat [Kunci Kondisi untuk Amazon API Gateway](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_manageamazonapigateway.html#manageamazonapigateway-policy-keys) di *Panduan Pengguna IAM*. Untuk informasi tentang tindakan dan sumber daya yang dapat Anda gunakan dengan kunci kondisi, lihat [Tindakan yang Ditentukan oleh Amazon API Gateway](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_manageamazonapigateway.html#amazonapigateway-actions-as-permissions).

Untuk informasi tentang penandaan, termasuk kontrol akses berbasis atribut, lihat. [Menandai sumber daya API Gateway Anda](apigateway-tagging.md)

### Contoh
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Untuk contoh kebijakan berbasis identitas API Gateway, lihat. [Contoh kebijakan berbasis identitas Amazon API Gateway](security_iam_id-based-policy-examples.md)

## Kebijakan berbasis sumber daya API Gateway
<a name="security_iam_service-with-iam-resource-based-policies"></a>

Kebijakan berbasis sumber daya adalah dokumen kebijakan JSON yang menentukan tindakan apa yang dapat dilakukan oleh prinsipal tertentu pada sumber daya API Gateway dan dalam kondisi apa. API Gateway mendukung kebijakan izin berbasis sumber daya untuk REST. APIs Anda menggunakan kebijakan sumber daya untuk mengontrol siapa yang dapat menjalankan REST API. Untuk informasi selengkapnya, lihat [Kontrol akses ke REST API dengan kebijakan sumber daya API Gateway](apigateway-resource-policies.md). 

### Contoh
<a name="security_iam_service-with-iam-resource-based-policies-examples"></a>

Untuk contoh kebijakan berbasis sumber daya API Gateway, lihat. [Contoh kebijakan sumber daya API Gateway](apigateway-resource-policies-examples.md)

## Otorisasi berdasarkan tag API Gateway
<a name="security_iam_service-with-iam-tags"></a>

Anda dapat melampirkan tag ke resource API Gateway atau meneruskan tag dalam permintaan ke API Gateway. Untuk mengendalikan akses berdasarkan tanda, berikan informasi tentang tanda di [elemen kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dari kebijakan menggunakan kunci kondisi `apigateway:ResourceTag/key-name`, `aws:RequestTag/key-name`, atau `aws:TagKeys`. Untuk informasi selengkapnya tentang menandai resource API Gateway, lihat[Menggunakan tag untuk mengontrol akses ke sumber daya API API Gateway REST API](apigateway-tagging-iam-policy.md).

Untuk contoh kebijakan berbasis identitas untuk membatasi akses ke sumber daya berdasarkan tag pada sumber daya tersebut, lihat. [Menggunakan tag untuk mengontrol akses ke sumber daya API API Gateway REST API](apigateway-tagging-iam-policy.md)

## Peran IAM API Gateway
<a name="security_iam_service-with-iam-roles"></a>

[Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) adalah entitas dalam AWS akun Anda yang memiliki izin tertentu.

### Menggunakan kredensi sementara dengan API Gateway
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

Anda dapat menggunakan kredensial sementara untuk masuk dengan gabungan, menjalankan IAM role, atau menjalankan peran lintas akun. Anda memperoleh kredensil keamanan sementara dengan memanggil operasi AWS STS API seperti [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)atau. [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) 

API Gateway mendukung penggunaan kredensi sementara. 

### Peran terkait layanan
<a name="security_iam_service-with-iam-roles-service-linked"></a>

[Peran terkait AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) memungkinkan layanan mengakses sumber daya di layanan lain untuk menyelesaikan tindakan atas nama Anda. Peran terkait layanan muncul di akun IAM Anda dan dimiliki oleh layanan tersebut. Administrator IAM dapat melihat tetapi tidak dapat mengedit izin untuk peran terkait layanan.

API Gateway mendukung peran terkait layanan. Untuk informasi tentang membuat atau mengelola peran terkait layanan API Gateway, lihat. [Menggunakan peran terkait layanan untuk API Gateway](using-service-linked-roles.md)

### Peran layanan
<a name="security_iam_service-with-iam-roles-service"></a>

Layanan dapat mengambil [peran layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) atas nama Anda. Peran layanan memungkinkan layanan mengakses sumber daya di layanan lain untuk menyelesaikan tindakan atas nama Anda. Peran layanan muncul di akun IAM Anda dan dimiliki oleh akun, sehingga administrator dapat mengubah izin untuk peran ini. Namun, melakukan hal itu dapat merusak fungsionalitas layanan.

API Gateway mendukung peran layanan. 

# Contoh kebijakan berbasis identitas Amazon API Gateway
<a name="security_iam_id-based-policy-examples"></a>

Secara default, pengguna dan peran IAM tidak memiliki izin untuk membuat atau memodifikasi sumber daya API Gateway. Mereka juga tidak dapat melakukan tugas menggunakan Konsol Manajemen AWS, AWS CLI, atau AWS SDKs. Administrator IAM harus membuat kebijakan IAM yang memberikan izin kepada pengguna dan peran untuk melakukan operasi API tertentu pada sumber daya yang diperlukan. Administrator kemudian harus melampirkan kebijakan tersebut ke pengguna IAM atau grup yang memerlukan izin tersebut.

Untuk informasi tentang cara membuat kebijakan IAM, lihat [Membuat Kebijakan pada Tab JSON di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) Pengguna *IAM*. Untuk informasi tentang tindakan, sumber daya, dan kondisi khusus untuk API Gateway, lihat [Kunci tindakan, sumber daya, dan kondisi untuk Manajemen dan Tindakan Amazon API Gateway](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagement.html)[, sumber daya, dan kunci kondisi untuk Amazon API Gateway Management V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagementv2.html).

**Topics**
+ [Praktik terbaik kebijakan](#security_iam_service-with-iam-policy-best-practices)
+ [Mengizinkan pengguna melihat izin mereka sendiri](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Izin baca sederhana](#api-gateway-policy-example-apigateway-general)
+ [Buat hanya REQUEST atau otorisasi JWT](#security_iam_id-based-policy-examples-v2-import)
+ [Mengharuskan `execute-api` titik akhir default dinonaktifkan](#security_iam_id-based-policy-examples-v2-endpoint-status)
+ [Izinkan pengguna untuk membuat atau memperbarui hanya REST pribadi APIs](#security_iam_id-based-policy-examples-private-api)
+ [Mengharuskan rute API memiliki otorisasi](#security_iam_id-based-policy-examples-require-authorization)
+ [Mencegah pengguna membuat atau memperbarui tautan VPC](#security_iam_id-based-policy-examples-deny-vpc-link)
+ [Contoh kebijakan untuk menggunakan aturan perutean](#security_iam_id-based-policy-examples-routing-mode)

## Praktik terbaik kebijakan
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Kebijakan berbasis identitas menentukan apakah seseorang dapat membuat, mengakses, atau menghapus sumber daya API Gateway di akun Anda. Tindakan ini membuat Akun AWS Anda dikenai biaya. Ketika Anda membuat atau mengedit kebijakan berbasis identitas, ikuti panduan dan rekomendasi ini:
+ **Mulailah dengan kebijakan AWS terkelola dan beralih ke izin hak istimewa paling sedikit — Untuk mulai memberikan izin** kepada pengguna dan beban kerja Anda, gunakan *kebijakan AWS terkelola* yang memberikan izin untuk banyak kasus penggunaan umum. Mereka tersedia di Anda Akun AWS. Kami menyarankan Anda mengurangi izin lebih lanjut dengan menentukan kebijakan yang dikelola AWS pelanggan yang khusus untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [Kebijakan yang dikelola AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) atau [Kebijakan yang dikelola AWS untuk fungsi tugas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dalam *Panduan Pengguna IAM*.
+ **Menerapkan izin dengan hak akses paling rendah** – Ketika Anda menetapkan izin dengan kebijakan IAM, hanya berikan izin yang diperlukan untuk melakukan tugas. Anda melakukannya dengan mendefinisikan tindakan yang dapat diambil pada sumber daya tertentu dalam kondisi tertentu, yang juga dikenal sebagai *izin dengan hak akses paling rendah*. Untuk informasi selengkapnya tentang cara menggunakan IAM untuk mengajukan izin, lihat [Kebijakan dan izin dalam IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dalam *Panduan Pengguna IAM*.
+ **Gunakan kondisi dalam kebijakan IAM untuk membatasi akses lebih lanjut** – Anda dapat menambahkan suatu kondisi ke kebijakan Anda untuk membatasi akses ke tindakan dan sumber daya. Sebagai contoh, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakan SSL. Anda juga dapat menggunakan ketentuan untuk memberikan akses ke tindakan layanan jika digunakan melalui yang spesifik Layanan AWS, seperti CloudFormation. Untuk informasi selengkapnya, lihat [Elemen kebijakan JSON IAM: Kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dalam *Panduan Pengguna IAM*.
+ **Gunakan IAM Access Analyzer untuk memvalidasi kebijakan IAM Anda untuk memastikan izin yang aman dan fungsional** – IAM Access Analyzer memvalidasi kebijakan baru dan yang sudah ada sehingga kebijakan tersebut mematuhi bahasa kebijakan IAM (JSON) dan praktik terbaik IAM. IAM Access Analyzer menyediakan lebih dari 100 pemeriksaan kebijakan dan rekomendasi yang dapat ditindaklanjuti untuk membantu Anda membuat kebijakan yang aman dan fungsional. Untuk informasi selengkapnya, lihat [Validasi kebijakan dengan IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) dalam *Panduan Pengguna IAM*.
+ **Memerlukan otentikasi multi-faktor (MFA)** - Jika Anda memiliki skenario yang mengharuskan pengguna IAM atau pengguna root di Anda, Akun AWS aktifkan MFA untuk keamanan tambahan. Untuk meminta MFA ketika operasi API dipanggil, tambahkan kondisi MFA pada kebijakan Anda. Untuk informasi selengkapnya, lihat [Amankan akses API dengan MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) dalam *Panduan Pengguna IAM*.

Untuk informasi selengkapnya tentang praktik terbaik dalam IAM, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

## Mengizinkan pengguna melihat izin mereka sendiri
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Contoh ini menunjukkan cara membuat kebijakan yang mengizinkan pengguna IAM melihat kebijakan inline dan terkelola yang dilampirkan ke identitas pengguna mereka. Kebijakan ini mencakup izin untuk menyelesaikan tindakan ini di konsol atau menggunakan API atau secara terprogram. AWS CLI AWS 

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## Izin baca sederhana
<a name="api-gateway-policy-example-apigateway-general"></a>

Kebijakan contoh ini memberikan izin kepada pengguna untuk mendapatkan informasi tentang semua sumber daya HTTP atau WebSocket API dengan pengenal `a123456789` di AWS Wilayah us-east-1. Sumber daya `arn:aws:apigateway:us-east-1::/apis/a123456789/*` mencakup semua sub-sumber daya API seperti otorisasi dan penerapan.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "apigateway:GET"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis/a123456789/*"
      ]
    }
  ]
}
```

------

## Buat hanya REQUEST atau otorisasi JWT
<a name="security_iam_id-based-policy-examples-v2-import"></a>

Kebijakan contoh ini memungkinkan pengguna untuk membuat APIs dengan hanya `REQUEST` atau `JWT` otorisasi, termasuk melalui [impor](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis.html#ImportApi). Di `Resource` bagian kebijakan, `arn:aws:apigateway:us-east-1::/apis/??????????` sumber daya harus memiliki maksimal 10 karakter, yang mengecualikan sub-sumber daya API. Contoh ini digunakan `ForAllValues` di `Condition` bagian karena pengguna dapat membuat beberapa otorisasi sekaligus dengan mengimpor API.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "OnlyAllowSomeAuthorizerTypes",
      "Effect": "Allow",
      "Action": [
        "apigateway:PUT",
        "apigateway:POST",
        "apigateway:PATCH"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/??????????",
        "arn:aws:apigateway:us-east-1::/apis/*/authorizers",
        "arn:aws:apigateway:us-east-1::/apis/*/authorizers/*"
      ],
      "Condition": {
        "ForAllValues:StringEqualsIfExists": {
          "apigateway:Request/AuthorizerType": [
            "REQUEST",
            "JWT"
          ]
        }
      }
    }
  ]
}
```

------

## Mengharuskan `execute-api` titik akhir default dinonaktifkan
<a name="security_iam_id-based-policy-examples-v2-endpoint-status"></a>

 Kebijakan contoh ini memungkinkan pengguna untuk membuat, memperbarui, atau mengimpor API, dengan persyaratan yang `DisableExecuteApiEndpoint` ada`true`. `DisableExecuteApiEndpoint`Kapan`true`, klien tidak dapat menggunakan `execute-api` titik akhir default untuk menjalankan API.

Kami menggunakan `BoolIfExists` kondisi untuk menangani panggilan untuk memperbarui API yang tidak memiliki kunci `DisableExecuteApiEndpoint` kondisi terisi. Saat pengguna mencoba membuat atau mengimpor API, kunci `DisableExecuteApiEndpoint` kondisi selalu diisi.

Karena `apis/*` sumber daya juga menangkap sub sumber daya seperti otorisasi atau metode, kami secara eksplisit mencakupnya hanya APIs dengan pernyataan. `Deny`

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DisableExecuteApiEndpoint",
      "Effect": "Allow",
      "Action": [
        "apigateway:PATCH",
        "apigateway:POST",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/*"
      ],
      "Condition": {
        "BoolIfExists": {
          "apigateway:Request/DisableExecuteApiEndpoint": true
        }
      }
    },
    {
      "Sid": "ScopeDownToJustApis",
      "Effect": "Deny",
      "Action": [
        "apigateway:PATCH",
        "apigateway:POST",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis/*/*"
      ]
    }
  ]
}
```

------

## Izinkan pengguna untuk membuat atau memperbarui hanya REST pribadi APIs
<a name="security_iam_id-based-policy-examples-private-api"></a>

Kebijakan contoh ini menggunakan kunci kondisi untuk mengharuskan pengguna membuat saja `PRIVATE` APIs, dan untuk mencegah pembaruan yang mungkin mengubah API dari `PRIVATE` tipe lain, seperti`REGIONAL`.

Kami menggunakan `ForAllValues` untuk mewajibkan bahwa setiap `EndpointType` ditambahkan ke API adalah`PRIVATE`. Kami menggunakan kunci kondisi sumber daya untuk mengizinkan pembaruan apa pun ke API selama itu`PRIVATE`. `ForAllValues`hanya berlaku jika ada kunci kondisi.

Kami menggunakan non-greedy matcher (`?`) untuk secara eksplisit mencocokkan dengan API IDs untuk mencegah mengizinkan sumber daya non-API seperti otorisasi.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ScopePutToPrivateApis",
            "Effect": "Allow",
            "Action": [
                "apigateway:PUT"
            ],
            "Resource": [
                "arn:aws:apigateway:us-east-1::/restapis",
                "arn:aws:apigateway:us-east-1::/restapis/??????????"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "apigateway:Resource/EndpointType": "PRIVATE"
                }
            }
        },
        {
            "Sid": "ScopeToPrivateApis",
            "Effect": "Allow",
            "Action": [
                "apigateway:DELETE",
                "apigateway:PATCH",
                "apigateway:POST"
            ],
            "Resource": [
                "arn:aws:apigateway:us-east-1::/restapis",
                "arn:aws:apigateway:us-east-1::/restapis/??????????"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "apigateway:Request/EndpointType": "PRIVATE",
                    "apigateway:Resource/EndpointType": "PRIVATE"
                }
            }
        },
        {
            "Sid": "AllowResourcePolicyUpdates",
            "Effect": "Allow",
            "Action": [
                "apigateway:UpdateRestApiPolicy"
            ],
            "Resource": [
                "arn:aws:apigateway:us-east-1::/restapis/*"
            ]
        }
    ]
}
```

------

## Mengharuskan rute API memiliki otorisasi
<a name="security_iam_id-based-policy-examples-require-authorization"></a>

Kebijakan ini menyebabkan upaya untuk membuat atau memperbarui rute (termasuk melalui [impor](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis.html#ImportApi)) gagal jika rute tidak memiliki otorisasi. `ForAnyValue`mengevaluasi ke false jika kunci tidak ada, seperti ketika rute tidak sedang dibuat atau diperbarui. Kami menggunakan `ForAnyValue` karena beberapa rute dapat dibuat melalui impor.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowUpdatesOnApisAndRoutes",
      "Effect": "Allow",
      "Action": [
        "apigateway:POST",
        "apigateway:PATCH",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/??????????",
        "arn:aws:apigateway:us-east-1::/apis/*/routes",
        "arn:aws:apigateway:us-east-1::/apis/*/routes/*"
      ]
    },
    {
      "Sid": "DenyUnauthorizedRoutes",
      "Effect": "Deny",
      "Action": [
        "apigateway:POST",
        "apigateway:PATCH",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/*"
      ],
      "Condition": {
        "ForAnyValue:StringEqualsIgnoreCase": {
          "apigateway:Request/RouteAuthorizationType": "NONE"
        }
      }
    }
  ]
}
```

------

## Mencegah pengguna membuat atau memperbarui tautan VPC
<a name="security_iam_id-based-policy-examples-deny-vpc-link"></a>

Kebijakan ini mencegah pengguna membuat atau memperbarui tautan VPC. Tautan VPC memungkinkan Anda mengekspos sumber daya dalam VPC Amazon ke klien di luar VPC.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyVPCLink",
      "Effect": "Deny",
      "Action": [
        "apigateway:POST",
        "apigateway:PUT",
        "apigateway:PATCH"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/vpclinks",
        "arn:aws:apigateway:us-east-1::/vpclinks/*"
      ]
    }
  ]
}
```

------

## Contoh kebijakan untuk menggunakan aturan perutean
<a name="security_iam_id-based-policy-examples-routing-mode"></a>

Contoh kebijakan berikut menunjukkan cara menggunakan tombol RoutingRule kondisi untuk mengontrol cara pengguna dapat merutekan lalu lintas dari nama domain kustom mereka ke REST mereka APIs. Anda dapat menggunakan contoh ini untuk membuat kebijakan berbutir halus untuk jenis aturan perutean yang dapat dibuat pengguna. Untuk informasi selengkapnya, lihat [Aturan perutean untuk menghubungkan tahapan API ke nama domain khusus untuk REST APIs](rest-api-routing-rules.md).

### Mencegah pengguna mengubah cara nama domain kustom merutekan permintaan
<a name="security_iam_id-based-policy-examples-routing-mode-1"></a>

Kebijakan ini mencegah pengguna membuat atau memperbarui`BasePathMapping`, `ApiMapping` atau`RoutingRule`. Semua sumber daya ini dapat mengubah cara nama domain kustom merutekan permintaan APIs.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyAccessBasePathMappingsApiMappingsRoutingRules",
      "Effect": "Deny",
      "Action": "apigateway:*",
      "Resource": [
        "arn:aws:apigateway:us-east-1::/domainnames/example.com/basepathmappings/*",
        "arn:aws:apigateway:us-east-1::/domainnames/example.com/apimappings/*",
        "arn:aws:apigateway:us-east-1:111122223333:/domainnames/example.com/routingrules/*"
      ]
    }
  ]
}
```

------

### Memungkinkan pengguna untuk memperbarui aturan routing untuk prioritas tertentu
<a name="security_iam_id-based-policy-examples-routing-mode-2"></a>

Kebijakan ini memungkinkan pengguna untuk hanya memperbarui aturan perutean ke prioritas antara 1001 dan 2000. Anda dapat menggunakan aturan ini untuk memisahkan aturan produksi Anda dari aturan prioritas yang lebih rendah dan kemudian mengizinkan pengguna untuk mengubah aturan prioritas yang lebih rendah tanpa memengaruhi aturan produksi.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "UpdatingRoutingRulePriorityBetween1001And2000",
      "Effect": "Allow",
      "Action": "apigateway:UpdateRoutingRule",
      "Resource": "arn:aws:apigateway:us-east-1:111122223333:/domainnames/example.com/routingrules/*",
      "Condition": {
        "NumericGreaterThanEquals": {
          "apigateway:Resource/Priority": 1001,
          "apigateway:Request/Priority": 1001
        },
       "NumericLessThanEquals": {
          "apigateway:Resource/Priority": 2000,
          "apigateway:Request/Priority": 2000
        } 
      }
    }
  ]
}
```

------

### Izinkan pengguna memperbarui aturan perutean atau pemetaan jalur dasar untuk nilai jalur dasar tertentu
<a name="security_iam_id-based-policy-examples-routing-mode-3"></a>

Kebijakan ini memungkinkan pengguna untuk hanya memperbarui pemetaan jalur dasar untuk setiap jalur dasar yang dimulai dengan `orders` atau memperbarui aturan perutean yang cocok dengan jalur dasar yang dimulai. `orders` Dalam kebijakan ini, pengguna dapat memperbarui aturan pemetaan atau perutean jalur dasar untuk `orders/create` atau`orders123`, tetapi tidak. `payment/orders`

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
      {
        "Sid": "AllowUpdateRoutingRuleUnderPathOrders",
        "Effect": "Allow",
        "Action": "apigateway:UpdateRoutingRule",
        "Resource": "arn:aws:apigateway:us-east-1:111122223333:/domainnames/example.com/routingrules/*",
        "Condition": {
            "ForAllValues:StringLike": {
                "apigateway:Request/ConditionBasePaths": ["orders*"],
                "apigateway:Resource/ConditionBasePaths": ["orders*"]
            },
            "Null":{
                 "apigateway:Request/ConditionBasePaths":"false",
                 "apigateway:Resource/ConditionBasePaths":"false"             
          }
        }
      }
  ]
}
```

------

### Izinkan pengguna memperbarui mode perutean ke nilai tertentu
<a name="security_iam_id-based-policy-examples-routing-mode-4"></a>

Kebijakan ini memungkinkan pengguna untuk hanya memperbarui mode perutean ke `API_MAPPING_ONLY` dan`ROUTING_RULE_THEN_API_MAPPING`. Untuk informasi selengkapnya tentang mode perutean, lihat[Mengatur mode routing untuk nama domain kustom Anda](set-routing-mode.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
        {
           "Sid": "AllowUpdateRoutingModeToAnythingWithApiMapping",
           "Effect": "Allow",
           "Action": ["apigateway:PATCH"],
           "Resource": "arn:aws:apigateway:us-east-1::/domainnames/example.com",
              "Condition": {
               "StringLike": {
                   "apigateway:Request/RoutingMode":"*API_MAPPING*"
               }
           }
       }
    ]
}
```

------

# Contoh kebijakan berbasis sumber daya Amazon API Gateway
<a name="security_iam_resource-based-policy-examples"></a>

Untuk contoh kebijakan berbasis sumber daya, lihat. [Contoh kebijakan sumber daya API Gateway](apigateway-resource-policies-examples.md)

# Memecahkan masalah identitas dan akses Amazon API Gateway
<a name="security_iam_troubleshoot"></a>

Gunakan informasi berikut untuk membantu Anda mendiagnosis dan memperbaiki masalah umum yang mungkin Anda temui saat bekerja dengan API Gateway dan IAM.

**Topics**
+ [Saya tidak berwenang untuk melakukan tindakan di API Gateway](#security_iam_troubleshoot-no-permissions)
+ [Saya tidak berwenang untuk melakukan iam: PassRole](#security_iam_troubleshoot-passrole)
+ [Saya ingin mengizinkan orang di luar AWS akun saya untuk mengakses sumber daya API Gateway saya](#security_iam_troubleshoot-cross-account-access)

## Saya tidak berwenang untuk melakukan tindakan di API Gateway
<a name="security_iam_troubleshoot-no-permissions"></a>

Jika Anda menerima pesan kesalahan bahwa Anda tidak memiliki otorisasi untuk melakukan tindakan, kebijakan Anda harus diperbarui agar Anda dapat melakukan tindakan tersebut.

Contoh kesalahan berikut terjadi ketika pengguna IAM `mateojackson` mencoba menggunakan konsol untuk melihat detail tentang suatu sumber daya `my-example-widget` rekaan, tetapi tidak memiliki izin `apigateway:GetWidget` rekaan.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: apigateway:GetWidget on resource: my-example-widget because no identity-based policy allows the GetWidget action 
```

Dalam hal ini, kebijakan untuk pengguna `mateojackson` harus diperbarui untuk mengizinkan akses ke sumber daya `my-example-widget` dengan menggunakan tindakan `apigateway:GetWidget`.

Jika Anda memerlukan bantuan, hubungi AWS administrator Anda. Administrator Anda adalah orang yang memberi Anda kredensial masuk.

## Saya tidak berwenang untuk melakukan iam: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Jika Anda menerima kesalahan yang tidak diizinkan untuk melakukan `iam:PassRole` tindakan, kebijakan Anda harus diperbarui agar Anda dapat meneruskan peran ke API Gateway.

Beberapa Layanan AWS memungkinkan Anda untuk meneruskan peran yang ada ke layanan tersebut alih-alih membuat peran layanan baru atau peran terkait layanan. Untuk melakukannya, Anda harus memiliki izin untuk meneruskan peran ke layanan.

Contoh kesalahan berikut terjadi ketika pengguna IAM bernama `marymajor` mencoba menggunakan konsol untuk melakukan tindakan di API Gateway. Namun, tindakan tersebut memerlukan layanan untuk mendapatkan izin yang diberikan oleh peran layanan. Mary tidak memiliki izin untuk meneruskan peran tersebut pada layanan.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Dalam kasus ini, kebijakan Mary harus diperbarui agar dia mendapatkan izin untuk melakukan tindakan `iam:PassRole` tersebut.

Jika Anda memerlukan bantuan, hubungi AWS administrator Anda. Administrator Anda adalah orang yang memberi Anda kredensial masuk.

## Saya ingin mengizinkan orang di luar AWS akun saya untuk mengakses sumber daya API Gateway saya
<a name="security_iam_troubleshoot-cross-account-access"></a>

Anda dapat membuat peran yang dapat digunakan pengguna di akun lain atau orang-orang di luar organisasi Anda untuk mengakses sumber daya Anda. Anda dapat menentukan siapa saja yang dipercaya untuk mengambil peran tersebut. Untuk layanan yang mendukung kebijakan berbasis sumber daya atau daftar kontrol akses (ACLs), Anda dapat menggunakan kebijakan tersebut untuk memberi orang akses ke sumber daya Anda.

Untuk mempelajari selengkapnya, periksa referensi berikut:
+ Untuk mempelajari apakah API Gateway mendukung fitur-fitur ini, lihat[Cara kerja Amazon API Gateway dengan IAM](security_iam_service-with-iam.md).
+ Untuk mempelajari cara menyediakan akses ke sumber daya Anda di seluruh sumber daya Akun AWS yang Anda miliki, lihat [Menyediakan akses ke pengguna IAM di pengguna lain Akun AWS yang Anda miliki](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) di *Panduan Pengguna IAM*.
+ Untuk mempelajari cara menyediakan akses ke sumber daya Anda kepada pihak ketiga Akun AWS, lihat [Menyediakan akses yang Akun AWS dimiliki oleh pihak ketiga](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) dalam *Panduan Pengguna IAM*.
+ Untuk mempelajari cara memberikan akses melalui federasi identitas, lihat [Menyediakan akses ke pengguna terautentikasi eksternal (federasi identitas)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) dalam *Panduan Pengguna IAM*.
+ *Untuk mempelajari perbedaan antara menggunakan peran dan kebijakan berbasis sumber daya untuk akses lintas akun, lihat [Akses sumber daya lintas akun di IAM di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html).*

# Menggunakan peran terkait layanan untuk API Gateway
<a name="using-service-linked-roles"></a>

Amazon API Gateway menggunakan AWS Identity and Access Management peran [terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) (IAM). Peran terkait layanan adalah jenis peran IAM unik yang ditautkan langsung ke API Gateway. Peran terkait layanan telah ditentukan sebelumnya oleh API Gateway dan menyertakan semua izin yang diperlukan layanan untuk memanggil AWS layanan lain atas nama Anda. 

Peran terkait layanan membuat pengaturan API Gateway lebih mudah karena Anda tidak perlu menambahkan izin yang diperlukan secara manual. API Gateway mendefinisikan izin dari peran terkait layanan, dan kecuali ditentukan lain, hanya API Gateway yang dapat mengambil perannya. Izin yang ditentukan mencakup kebijakan kepercayaan dan kebijakan izin, serta bahwa kebijakan izin tidak dapat dilampirkan ke entitas IAM lainnya.

Anda dapat menghapus peran tertaut layanan hanya setelah menghapus sumber daya terkait terlebih dahulu. Ini melindungi sumber daya API Gateway Anda karena Anda tidak dapat secara tidak sengaja menghapus izin untuk mengakses sumber daya.

Untuk informasi tentang layanan lain yang mendukung peran terkait layanan, lihat [Layanan AWS yang bisa digunakan dengan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) dan carilah layanan yang memiliki opsi **Ya** di kolom **Peran Terkait Layanan**. Pilih **Ya** dengan sebuah tautan untuk melihat dokumentasi peran terkait layanan untuk layanan tersebut.

## Izin peran terkait layanan untuk API Gateway
<a name="slr-permissions"></a>

API Gateway menggunakan peran terkait layanan bernama **AWSServiceRoleForAPIGateway**— Memungkinkan API Gateway mengakses Elastic Load Balancing, Amazon Data Firehose, dan sumber daya layanan lainnya atas nama Anda.

Peran AWSService RoleFor APIGateway terkait layanan mempercayai layanan berikut untuk mengambil peran:
+ `ops.apigateway.amazonaws.com`

Kebijakan izin peran memungkinkan API Gateway menyelesaikan tindakan berikut pada sumber daya yang ditentukan:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:AddListenerCertificates",
                "elasticloadbalancing:RemoveListenerCertificates",
                "elasticloadbalancing:ModifyListener",
                "elasticloadbalancing:DescribeListeners",
                "elasticloadbalancing:DescribeLoadBalancers",
                "xray:PutTraceSegments",
                "xray:PutTelemetryRecords",
                "xray:GetSamplingTargets",
                "xray:GetSamplingRules",
                "logs:CreateLogDelivery",
                "logs:GetLogDelivery",
                "logs:UpdateLogDelivery",
                "logs:DeleteLogDelivery",
                "logs:ListLogDeliveries",
                "servicediscovery:DiscoverInstances"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "firehose:DescribeDeliveryStream",
                "firehose:PutRecord",
                "firehose:PutRecordBatch"
            ],
            "Resource": "arn:aws:firehose:*:*:deliverystream/amazon-apigateway-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "acm:DescribeCertificate",
                "acm:GetCertificate"
            ],
            "Resource": "arn:aws:acm:*:*:certificate/*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkInterfacePermission",
            "Resource": "arn:aws:ec2:*:*:network-interface/*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:network-interface/*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "Owner",
                        "VpcLinkId"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:DeleteNetworkInterface",
                "ec2:AssignPrivateIpAddresses",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterfacePermission",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeNetworkInterfaceAttribute",
                "ec2:DescribeVpcs",
                "ec2:DescribeNetworkInterfacePermissions",
                "ec2:UnassignPrivateIpAddresses",
                "ec2:DescribeSubnets",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "servicediscovery:GetNamespace",
            "Resource": "arn:aws:servicediscovery:*:*:namespace/*"
        },
        {
            "Effect": "Allow",
            "Action": "servicediscovery:GetService",
            "Resource": "arn:aws:servicediscovery:*:*:service/*"
        }
    ]
}
```

------

Anda harus mengonfigurasi izin untuk mengizinkan entitas IAM (seperti pengguna, grup, atau peran) untuk membuat, mengedit, atau menghapus peran terkait layanan. Untuk informasi selengkapnya, silakan lihat [Izin Peran Tertaut Layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) di *Panduan Pengguna IAM*.

## Membuat peran terkait layanan untuk API Gateway
<a name="create-slr"></a>

Anda tidak perlu membuat peran terkait layanan secara manual. Saat Anda membuat API, nama domain kustom, atau tautan VPC di, API Gateway Konsol Manajemen AWS AWS CLI, atau AWS API, API Gateway membuat peran terkait layanan untuk Anda. 

Jika Anda menghapus peran terkait layanan ini, dan ingin membuatnya lagi, Anda dapat mengulangi proses yang sama untuk membuat kembali peran tersebut di akun Anda. Saat Anda membuat API, nama domain kustom, atau tautan VPC, API Gateway membuat peran terkait layanan untuk Anda lagi. 

## Mengedit peran terkait layanan untuk API Gateway
<a name="edit-slr"></a>

API Gateway tidak memungkinkan Anda mengedit peran AWSService RoleFor APIGateway terkait layanan. Setelah membuat peran terkait layanan, Anda tidak dapat mengubah nama peran karena berbagai entitas mungkin mereferensikan peran tersebut. Namun, Anda dapat menyunting penjelasan peran menggunakan IAM. Untuk informasi selengkapnya, lihat [Mengedit Peran Tertaut Layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) dalam *Panduan Pengguna IAM*.

## Menghapus peran terkait layanan untuk API Gateway
<a name="delete-slr"></a>

Jika Anda tidak perlu lagi menggunakan fitur atau layanan yang memerlukan peran terkait layanan, kami merekomendasikan Anda menghapus peran tersebut. Dengan begitu, Anda tidak memiliki entitas yang tidak digunakan yang tidak dipantau atau dipelihara secara aktif. Tetapi, Anda harus membersihkan sumber daya peran terkait layanan sebelum menghapusnya secara manual.

**catatan**  
Jika layanan API Gateway menggunakan peran saat Anda mencoba menghapus sumber daya, penghapusan mungkin gagal. Jika hal itu terjadi, tunggu beberapa menit dan coba mengoperasikannya lagi.

**Untuk menghapus sumber daya API Gateway yang digunakan oleh AWSService RoleFor APIGateway**

1. Buka konsol API Gateway di [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/). 

1. Arahkan ke API, nama domain kustom, atau tautan VPC yang menggunakan peran terkait layanan.

1. Gunakan konsol untuk menghapus sumber daya.

1. Ulangi prosedur untuk menghapus semua APIs, nama domain khusus, atau tautan VPC yang menggunakan peran terkait layanan.

**Untuk menghapus peran tertaut layanan secara manual menggunakan IAM**

Gunakan konsol IAM, the AWS CLI, atau AWS API untuk menghapus peran AWSService RoleFor APIGateway terkait layanan. Untuk informasi selengkapnya, silakan lihat [Menghapus Peran Terkait Layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) di *Panduan Pengguna IAM*.

## Wilayah yang Didukung untuk peran terkait layanan API Gateway
<a name="slr-regions"></a>

API Gateway mendukung penggunaan peran terkait layanan di semua Wilayah tempat layanan tersedia. Untuk informasi selengkapnya, lihat [Titik Akhir AWS Layanan](https://docs.aws.amazon.com/general/latest/gr/rande.html).

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



Lihat detail tentang pembaruan kebijakan AWS terkelola untuk API Gateway sejak layanan ini mulai melacak perubahan ini. Untuk peringatan otomatis tentang perubahan pada halaman ini, berlangganan umpan RSS di halaman [riwayat Dokumen](history.md) API Gateway.


| Ubah | Deskripsi | Date | 
| --- | --- | --- | 
|  Menambahkan `acm:GetCertificate` dukungan pada `AWSServiceRoleForAPIGateway` kebijakan.  |  `AWSServiceRoleForAPIGateway`Kebijakan ini sekarang menyertakan izin untuk memanggil tindakan ACM `GetCertificate` API.  | 12 Juli 2021 | 
|  API Gateway mulai melacak perubahan  |  API Gateway mulai melacak perubahan untuk kebijakan AWS terkelolanya.  | 12 Juli 2021 | 

# Pencatatan dan pemantauan di Amazon API Gateway
<a name="security-monitoring"></a>

Pemantauan adalah bagian penting dalam menjaga keandalan, ketersediaan, dan kinerja API Gateway dan AWS solusi Anda. Anda harus mengumpulkan data pemantauan dari semua bagian AWS solusi Anda sehingga Anda dapat lebih mudah men-debug kegagalan multi-titik jika terjadi. AWS menyediakan beberapa alat untuk memantau sumber daya API Gateway Anda dan menanggapi potensi insiden:

** CloudWatch Log Amazon**  
Untuk membantu men-debug masalah yang terkait dengan eksekusi permintaan atau akses klien ke API Anda, Anda dapat mengaktifkan CloudWatch Log untuk mencatat panggilan API. Untuk informasi selengkapnya, lihat [Siapkan CloudWatch logging untuk REST APIs di API Gateway](set-up-logging.md).

** CloudWatch Alarm Amazon**  
Menggunakan CloudWatch alarm, Anda menonton satu metrik selama periode waktu yang Anda tentukan. Jika metrik melebihi ambang batas tertentu, pemberitahuan akan dikirim ke topik atau AWS Auto Scaling kebijakan Amazon Simple Notification Service. CloudWatch alarm tidak memanggil tindakan ketika metrik berada dalam keadaan tertentu. Sebaliknya, kondisi tersebut harus diubah dan dipertahankan selama periode tertentu. Untuk informasi selengkapnya, lihat [Pantau eksekusi REST API dengan CloudWatch metrik Amazon](monitoring-cloudwatch.md).

**Akses Logging ke Firehose**  
Untuk membantu men-debug masalah yang terkait dengan akses klien ke API Anda, Anda dapat mengaktifkan Firehose untuk mencatat panggilan API. Untuk informasi selengkapnya, lihat [Log panggilan REST API ke Amazon Data Firehose di API Gateway](apigateway-logging-to-kinesis.md).

**AWS CloudTrail**  
CloudTrail menyediakan catatan tindakan yang diambil oleh pengguna, peran, atau AWS layanan di API Gateway. Dengan menggunakan informasi yang dikumpulkan oleh CloudTrail, Anda dapat menentukan permintaan yang dibuat ke API Gateway, alamat IP dari mana permintaan dibuat, siapa yang membuat permintaan, kapan dibuat, dan detail tambahan. Untuk informasi selengkapnya, lihat [Mencatat panggilan API Amazon API Gateway menggunakan AWS CloudTrail](cloudtrail.md). 

**AWS X-Ray**  
X-Ray adalah AWS layanan yang mengumpulkan data tentang permintaan yang dilayani aplikasi Anda, dan menggunakannya untuk membuat peta layanan yang dapat Anda gunakan untuk mengidentifikasi masalah dengan aplikasi Anda dan peluang untuk pengoptimalan. Untuk informasi selengkapnya, lihat [Siapkan AWS X-Ray dengan API Gateway REST APIs](apigateway-enabling-xray.md). 

**AWS Config**  
AWS Config memberikan tampilan terperinci tentang konfigurasi AWS sumber daya di akun Anda. Anda dapat melihat bagaimana sumber daya terkait, mendapatkan riwayat perubahan konfigurasi, dan melihat bagaimana hubungan dan konfigurasi berubah seiring waktu. Anda dapat menggunakan AWS Config untuk menentukan aturan yang mengevaluasi konfigurasi sumber daya untuk kepatuhan data. AWS Config aturan mewakili setelan konfigurasi ideal untuk sumber daya API Gateway Anda. Jika sumber daya melanggar aturan dan ditandai sebagai tidak sesuai, AWS Config Anda dapat memperingatkan Anda menggunakan topik Amazon Simple Notification Service (Amazon SNS). Untuk detailnya, lihat [Memantau konfigurasi API Gateway API dengan AWS Config](apigateway-config.md). 

# Mencatat panggilan API Amazon API Gateway menggunakan AWS CloudTrail
<a name="cloudtrail"></a>

Amazon API Gateway terintegrasi dengan [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html), layanan yang menyediakan catatan tindakan yang diambil oleh pengguna, peran, atau Layanan AWS. CloudTrail menangkap semua panggilan REST API untuk layanan API Gateway sebagai peristiwa. Panggilan yang diambil termasuk panggilan dari konsol API Gateway dan panggilan kode ke layanan API Gateway APIs. Dengan menggunakan informasi yang dikumpulkan oleh CloudTrail, Anda dapat menentukan permintaan yang dibuat ke API Gateway, alamat IP dari mana permintaan dibuat, kapan dibuat, dan detail tambahan.

**catatan**  
[TestInvokeAuthorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-authorizer.html)dan [TestInvokeMethod](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-method.html)tidak masuk CloudTrail.

Setiap entri peristiwa atau log berisi informasi tentang entitas yang membuat permintaan tersebut. Informasi identitas membantu Anda menentukan berikut hal ini:
+ Baik permintaan tersebut dibuat dengan kredensial pengguna root atau pengguna.
+ Apakah permintaan dibuat atas nama pengguna IAM Identity Center.
+ Apakah permintaan tersebut dibuat dengan kredensial keamanan sementara untuk satu peran atau pengguna gabungan.
+ Apakah permintaan tersebut dibuat oleh Layanan AWS lain.

CloudTrail aktif di Anda Akun AWS ketika Anda membuat akun dan Anda secara otomatis memiliki akses ke **riwayat CloudTrail Acara**. **Riwayat CloudTrail Acara menyediakan catatan** yang dapat dilihat, dapat dicari, dapat diunduh, dan tidak dapat diubah dari 90 hari terakhir dari peristiwa manajemen yang direkam dalam file. Wilayah AWS Untuk informasi selengkapnya, lihat [Bekerja dengan riwayat CloudTrail Acara](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html) di *Panduan AWS CloudTrail Pengguna*. Tidak ada CloudTrail biaya untuk melihat **riwayat Acara**.

Untuk catatan acara yang sedang berlangsung dalam 90 hari Akun AWS terakhir Anda, buat jejak atau penyimpanan data acara [CloudTrailDanau](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html).

**CloudTrail jalan setapak**  
*Jejak* memungkinkan CloudTrail untuk mengirimkan file log ke bucket Amazon S3. Semua jalur yang dibuat menggunakan Konsol Manajemen AWS Multi-region. Anda dapat membuat jalur Single-region atau Multi-region dengan menggunakan. AWS CLI Membuat jejak Multi-wilayah disarankan karena Anda menangkap aktivitas Wilayah AWS di semua akun Anda. Jika Anda membuat jejak wilayah Tunggal, Anda hanya dapat melihat peristiwa yang dicatat di jejak. Wilayah AWS Untuk informasi selengkapnya tentang jejak, lihat [Membuat jejak untuk Anda Akun AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html) dan [Membuat jejak untuk organisasi](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-trail-organization.html) di *Panduan AWS CloudTrail Pengguna*.  
Anda dapat mengirimkan satu salinan acara manajemen yang sedang berlangsung ke bucket Amazon S3 Anda tanpa biaya CloudTrail dengan membuat jejak, namun, ada biaya penyimpanan Amazon S3. Untuk informasi selengkapnya tentang CloudTrail harga, lihat [AWS CloudTrail Harga](https://aws.amazon.com/cloudtrail/pricing/). Untuk informasi tentang harga Amazon S3, lihat [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

**CloudTrail Menyimpan data acara danau**  
*CloudTrail Lake* memungkinkan Anda menjalankan kueri berbasis SQL pada acara Anda. CloudTrail [Lake mengonversi peristiwa yang ada dalam format JSON berbasis baris ke format Apache ORC.](https://orc.apache.org/) ORC adalah format penyimpanan kolumnar yang dioptimalkan untuk pengambilan data dengan cepat. Peristiwa digabungkan ke dalam *penyimpanan data peristiwa*, yang merupakan kumpulan peristiwa yang tidak dapat diubah berdasarkan kriteria yang Anda pilih dengan menerapkan pemilih acara [tingkat lanjut](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-concepts.html#adv-event-selectors). Penyeleksi yang Anda terapkan ke penyimpanan data acara mengontrol peristiwa mana yang bertahan dan tersedia untuk Anda kueri. Untuk informasi lebih lanjut tentang CloudTrail Danau, lihat [Bekerja dengan AWS CloudTrail Danau](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) di *Panduan AWS CloudTrail Pengguna*.  
CloudTrail Penyimpanan data acara danau dan kueri menimbulkan biaya. Saat Anda membuat penyimpanan data acara, Anda memilih [opsi harga](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-manage-costs.html#cloudtrail-lake-manage-costs-pricing-option) yang ingin Anda gunakan untuk penyimpanan data acara. Opsi penetapan harga menentukan biaya untuk menelan dan menyimpan peristiwa, dan periode retensi default dan maksimum untuk penyimpanan data acara. Untuk informasi selengkapnya tentang CloudTrail harga, lihat [AWS CloudTrail Harga](https://aws.amazon.com/cloudtrail/pricing/).

## Acara manajemen API Gateway di CloudTrail
<a name="cloudtrail-management-events"></a>

[Acara manajemen](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events) memberikan informasi tentang operasi manajemen yang dilakukan pada sumber daya di Anda Akun AWS. Ini juga dikenal sebagai operasi bidang kontrol. Secara default, CloudTrail mencatat peristiwa manajemen.

Amazon API Gateway mencatat semua tindakan API Gateway sebagai peristiwa manajemen, kecuali untuk [TestInvokeAuthorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-authorizer.html)dan [TestInvokeMethod](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-method.html). Untuk mengetahui daftar tindakan Amazon API Gateway yang dicatatkan oleh API Gateway CloudTrail, lihat [Referensi API Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/api/API_Operations.html).

## Contoh acara API Gateway
<a name="cloudtrail-event-examples"></a>

Peristiwa mewakili permintaan tunggal dari sumber manapun dan mencakup informasi tentang operasi API yang diminta, tanggal dan waktu operasi, parameter permintaan, dan sebagainya. CloudTrail file log bukanlah jejak tumpukan yang diurutkan dari panggilan API publik, sehingga peristiwa tidak muncul dalam urutan tertentu.

Contoh berikut menunjukkan CloudTrail peristiwa yang menunjukkan `GetResource` tindakan API Gateway:

```
{
    Records: [
        {
            eventVersion: "1.03",
            userIdentity: {
                type: "Root",
                principalId: "AKIAI44QH8DHBEXAMPLE",
                arn: "arn:aws:iam::123456789012:root",
                accountId: "123456789012",
                accessKeyId: "AKIAIOSFODNN7EXAMPLE",
                sessionContext: {
                    attributes: {
                        mfaAuthenticated: "false",
                        creationDate: "2015-06-16T23:37:58Z"
                    }
                }
            },
            eventTime: "2015-06-17T00:47:28Z",
            eventSource: "apigateway.amazonaws.com",
            eventName: "GetResource",
            awsRegion: "us-east-1",
            sourceIPAddress: "203.0.113.11",
            userAgent: "example-user-agent-string",
            requestParameters: {
                restApiId: "3rbEXAMPLE",
                resourceId: "5tfEXAMPLE",
                template: false
            },
            responseElements: null,
            requestID: "6d9c4bfc-148a-11e5-81b6-7577cEXAMPLE",
            eventID: "4d293154-a15b-4c33-9e0a-ff5eeEXAMPLE",
            readOnly: true,
            eventType: "AwsApiCall",
            recipientAccountId: "123456789012"
        },
        ... additional entries ...
    ]
}
```

Untuk informasi tentang konten CloudTrail rekaman, lihat [konten CloudTrail rekaman](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html) di *Panduan AWS CloudTrail Pengguna*.

# Memantau konfigurasi API Gateway API dengan AWS Config
<a name="apigateway-config"></a>

Anda dapat menggunakan [AWS Config](https://aws.amazon.com/config/)untuk merekam perubahan konfigurasi yang dibuat pada resource API Gateway API dan mengirim notifikasi berdasarkan perubahan sumber daya. Mempertahankan riwayat perubahan konfigurasi untuk sumber daya API Gateway berguna untuk pemecahan masalah operasional, audit, dan kasus penggunaan kepatuhan.

AWS Config dapat melacak perubahan ke:
+ **Konfigurasi tahap API**, seperti:
  + pengaturan cluster cache
  + pengaturan throttle
  + pengaturan log akses
  + penyebaran aktif yang ditetapkan di atas panggung
+ **Konfigurasi API**, seperti:
  + konfigurasi titik akhir
  + versi
  + protokol
  + tag

Selain itu, Aturan AWS Config fitur ini memungkinkan Anda untuk menentukan aturan konfigurasi dan secara otomatis mendeteksi, melacak, dan memperingatkan pelanggaran terhadap aturan ini. Dengan melacak perubahan pada properti konfigurasi sumber daya ini, Anda juga dapat membuat AWS Config aturan yang dipicu perubahan untuk sumber daya API Gateway Anda, dan menguji konfigurasi sumber daya Anda terhadap praktik terbaik.

Anda dapat mengaktifkan AWS Config di akun Anda dengan menggunakan AWS Config konsol atau AWS CLI. Pilih jenis sumber daya yang ingin Anda lacak perubahannya. Jika sebelumnya Anda mengonfigurasi AWS Config untuk merekam semua jenis sumber daya, sumber daya API Gateway ini akan direkam secara otomatis di akun Anda. Support untuk Amazon API Gateway in AWS Config tersedia di semua wilayah AWS publik dan AWS GovCloud (US). Untuk daftar lengkap Wilayah yang didukung, lihat [Titik Akhir dan Kuota Amazon API Gateway](https://docs.aws.amazon.com/general/latest/gr/apigateway.html) di bagian. Referensi Umum AWS

**Topics**
+ [Jenis sumber daya yang mendukung](#apigateway-config-resources-rules)
+ [Menyiapkan AWS Config](#apigateway-config-setup)
+ [Mengkonfigurasi AWS Config untuk merekam sumber daya API Gateway](#apigateway-config-configuring)
+ [Melihat detail konfigurasi API Gateway di AWS Config konsol](#apigateway-config-console)
+ [Mengevaluasi sumber daya API Gateway menggunakan aturan AWS Config](#apigateway-config-rules)

## Jenis sumber daya yang mendukung
<a name="apigateway-config-resources-rules"></a>

Jenis sumber daya API Gateway berikut terintegrasi dengan AWS Config dan didokumentasikan dalam [Jenis AWS Sumber Daya dan Hubungan Sumber Daya yang AWS Config Didukung](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html):
+ `AWS::ApiGatewayV2::Api`(WebSocket dan HTTP API)
+ `AWS::ApiGateway::RestApi`(REST API)
+ `AWS::ApiGatewayV2::Stage`(WebSocket dan tahap HTTP API)
+ `AWS::ApiGateway::Stage`(Tahap REST API)

Untuk informasi selengkapnya AWS Config, lihat [Panduan AWS Config Pengembang](https://docs.aws.amazon.com/config/latest/developerguide/). Untuk informasi harga, lihat [halaman informasi harga AWS Config](https://aws.amazon.com/config/pricing/).

**penting**  
Jika Anda mengubah salah satu properti API berikut setelah API diterapkan, Anda *harus* menerapkan [ulang API untuk menyebarkan](how-to-deploy-api.md) perubahan. Jika tidak, Anda akan melihat perubahan atribut di AWS Config konsol, tetapi pengaturan properti sebelumnya akan tetap berlaku; perilaku runtime API tidak akan berubah.  
**`AWS::ApiGateway::RestApi`** – `binaryMediaTypes`, `minimumCompressionSize`, `apiKeySource`
**`AWS::ApiGatewayV2::Api`** – `apiKeySelectionExpression`

## Menyiapkan AWS Config
<a name="apigateway-config-setup"></a>

Untuk mengatur awalnya AWS Config, lihat topik berikut di [Panduan AWS Config Pengembang](https://docs.aws.amazon.com/config/latest/developerguide/).
+ [Menyiapkan AWS Config dengan Konsol](https://docs.aws.amazon.com/config/latest/developerguide/gs-console.html)
+ [Menyiapkan AWS Config dengan AWS CLI](https://docs.aws.amazon.com/config/latest/developerguide/gs-cli.html)

## Mengkonfigurasi AWS Config untuk merekam sumber daya API Gateway
<a name="apigateway-config-configuring"></a>

Secara default, AWS Config mencatat perubahan konfigurasi untuk semua jenis sumber daya regional yang didukung yang ditemukan di wilayah tempat lingkungan Anda berjalan. Anda dapat menyesuaikan AWS Config untuk merekam perubahan hanya untuk jenis sumber daya tertentu, atau perubahan pada sumber daya global.

Untuk mempelajari sumber daya regional vs global dan mempelajari cara menyesuaikan AWS Config konfigurasi Anda, lihat [Memilih AWS Config Rekaman Sumber Daya yang mana](https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html).

## Melihat detail konfigurasi API Gateway di AWS Config konsol
<a name="apigateway-config-console"></a>

Anda dapat menggunakan AWS Config konsol untuk mencari sumber daya API Gateway dan mendapatkan detail terkini dan historis tentang konfigurasinya. Prosedur berikut menunjukkan cara menemukan informasi tentang API Gateway API.

**Untuk menemukan sumber daya API Gateway di AWS konsol konfigurasi**

1. Buka [konsol AWS Config](https://console.aws.amazon.com/config).

1. Pilih **Sumber Daya**.

1. Pada halaman**Inventarisasi sumber daya**, pilih **Sumber Daya**.

1. Buka menu **Jenis sumber daya**, gulir ke APIGateway atau APIGateway V2, lalu pilih satu atau beberapa jenis sumber daya API Gateway.

1. Pilih **Lihat**.

1. Pilih ID sumber daya dalam daftar sumber daya yang AWS Config ditampilkan. AWS Config menampilkan detail konfigurasi dan informasi lain tentang sumber daya yang Anda pilih.

1. Untuk melihat detail lengkap konfigurasi yang direkam, pilih **Lihat Detail**.

Untuk mempelajari lebih lanjut cara menemukan sumber daya dan melihat informasi di halaman ini, lihat [Melihat Konfigurasi dan Riwayat AWS Sumber Daya](https://docs.aws.amazon.com/config/latest/developerguide/view-manage-resource.html) di Panduan AWS Config Pengembang.

## Mengevaluasi sumber daya API Gateway menggunakan aturan AWS Config
<a name="apigateway-config-rules"></a>

Anda dapat membuat AWS Config aturan, yang mewakili pengaturan konfigurasi ideal untuk sumber daya API Gateway Anda. Anda dapat menggunakan [Aturan AWS Config Terkelola](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html) yang telah ditentukan sebelumnya, atau menentukan aturan khusus. AWS Config terus melacak perubahan pada konfigurasi sumber daya Anda untuk menentukan apakah perubahan tersebut melanggar salah satu kondisi dalam aturan Anda. AWS Config Konsol menunjukkan status kepatuhan aturan dan sumber daya Anda.

Jika sumber daya melanggar aturan dan ditandai sebagai tidak patuh, AWS Config dapat mengingatkan Anda menggunakan topik Amazon [Simple Notification Service Developer Guide (Amazon](https://docs.aws.amazon.com/sns/latest/dg/) SNS). Untuk menggunakan data dalam AWS Config peringatan ini secara terprogram, gunakan antrian Amazon Simple Queue Service (Amazon SQS) sebagai titik akhir notifikasi untuk topik Amazon SNS.

Untuk mempelajari lebih lanjut tentang menyiapkan dan menggunakan aturan, lihat [Mengevaluasi Sumber Daya dengan Aturan](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) di [Panduan AWS Config Pengembang](https://docs.aws.amazon.com/config/latest/developerguide/). 

# Validasi kepatuhan untuk Amazon API Gateway
<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/).

# Ketahanan di Amazon API Gateway
<a name="disaster-recovery-resiliency"></a>

Infrastruktur AWS global dibangun di sekitar AWS Wilayah dan Zona Ketersediaan. AWS Wilayah menyediakan beberapa Availability Zone yang terpisah secara fisik dan terisolasi, yang terhubung dengan latensi rendah, throughput tinggi, dan jaringan yang 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. 

Sebagai layanan Regional yang dikelola sepenuhnya, API Gateway beroperasi di beberapa Availability Zone di setiap Wilayah, menggunakan redundansi Availability Zone untuk meminimalkan kegagalan infrastruktur sebagai kategori risiko ketersediaan. API Gateway dirancang untuk memulihkan secara otomatis dari kegagalan Availability Zone. 

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

Untuk APIs mencegah Anda kewalahan oleh terlalu banyak permintaan, API Gateway membatasi permintaan ke permintaan Anda. APIs Secara khusus, API Gateway menetapkan batas pada tingkat kondisi tunak dan ledakan pengiriman permintaan terhadap semua APIs yang ada di akun Anda. Anda dapat mengonfigurasi pelambatan khusus untuk Anda. APIs Untuk mempelajari selengkapnya, lihat [Throttle request ke REST APIs Anda untuk throughput yang lebih baik di API Gateway](api-gateway-request-throttling.md).

Anda dapat menggunakan pemeriksaan kesehatan Route 53 untuk mengontrol failover DNS dari API Gateway API di wilayah utama ke API Gateway API di wilayah sekunder. Sebagai contoh, lihat [Konfigurasikan pemeriksaan kesehatan khusus untuk failover DNS untuk API Gateway API](dns-failover.md).

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

Sebagai layanan terkelola, Amazon API Gateway 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 API Gateway 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.

Anda dapat memanggil operasi API ini dari lokasi jaringan mana pun, tetapi API Gateway mendukung kebijakan akses berbasis sumber daya, yang dapat mencakup pembatasan berdasarkan alamat IP sumber. Anda juga dapat menggunakan kebijakan berbasis sumber daya untuk mengontrol akses dari titik akhir Amazon Virtual Private Cloud (Amazon VPC) tertentu atau spesifik. VPCs Secara efektif, ini mengisolasi akses jaringan ke sumber daya API Gateway tertentu hanya dari VPC tertentu dalam AWS jaringan.

# Analisis kerentanan di Amazon API Gateway
<a name="vulnerability-analysis"></a>

Konfigurasi dan kontrol TI adalah tanggung jawab bersama antara AWS dan Anda, pelanggan kami. Untuk informasi selengkapnya, lihat [model tanggung jawab AWS bersama](https://aws.amazon.com/compliance/shared-responsibility-model/).

# Praktik terbaik keamanan di Amazon API Gateway
<a name="security-best-practices"></a>

API Gateway menyediakan sejumlah fitur keamanan untuk dipertimbangkan saat Anda mengembangkan dan menerapkan kebijakan keamanan Anda sendiri. Praktik terbaik berikut adalah pedoman umum dan tidak mewakili solusi keamanan yang lengkap. Karena praktik terbaik ini mungkin tidak sesuai atau tidak memadai untuk lingkungan Anda, perlakukan itu sebagai pertimbangan yang bermanfaat, bukan sebagai resep.

**Terapkan akses hak akses paling rendah**  
Gunakan kebijakan IAM untuk menerapkan akses hak istimewa paling sedikit untuk membuat, membaca, memperbarui, atau menghapus API Gateway. APIs Untuk mempelajari selengkapnya, lihat [Manajemen identitas dan akses untuk Amazon API Gateway](security-iam.md). API Gateway menawarkan beberapa opsi untuk mengontrol akses APIs yang Anda buat. Untuk mempelajari lebih lanjut, lihat[Kontrol dan kelola akses ke REST APIs di API Gateway](apigateway-control-access-to-api.md),[Mengontrol dan mengelola akses ke WebSocket APIs dalam API Gateway](apigateway-websocket-api-control-access.md), dan[Kontrol akses ke HTTP APIs dengan otorisasi JWT di API Gateway](http-api-jwt-authorizer.md).

**Menerapkan logging**  
Gunakan CloudWatch Log atau Amazon Data Firehose untuk mencatat permintaan ke Anda. APIs Untuk mempelajari lebih lanjut, lihat[Pantau REST APIs di API Gateway](rest-api-monitor.md),[Konfigurasikan logging untuk WebSocket APIs di API Gateway](websocket-api-logging.md), dan[Konfigurasikan logging untuk HTTP APIs di API Gateway](http-api-logging.md).

**Menerapkan CloudWatch alarm Amazon**  
Menggunakan CloudWatch alarm, Anda menonton satu metrik selama periode waktu yang Anda tentukan. Jika metrik melebihi ambang batas tertentu, pemberitahuan akan dikirim ke topik atau AWS Auto Scaling kebijakan Amazon Simple Notification Service. CloudWatch alarm tidak memanggil tindakan ketika metrik berada dalam keadaan tertentu. Sebaliknya, negara harus telah berubah dan dipertahankan untuk sejumlah periode tertentu. Untuk informasi selengkapnya, lihat [Pantau eksekusi REST API dengan CloudWatch metrik Amazon](monitoring-cloudwatch.md).

**Aktifkan AWS CloudTrail**  
CloudTrail menyediakan catatan tindakan yang diambil oleh pengguna, peran, atau AWS layanan di API Gateway. Dengan menggunakan informasi yang dikumpulkan oleh CloudTrail, Anda dapat menentukan permintaan yang dibuat ke API Gateway, alamat IP dari mana permintaan dibuat, siapa yang membuat permintaan, kapan dibuat, dan detail tambahan. Untuk informasi selengkapnya, lihat [Mencatat panggilan API Amazon API Gateway menggunakan AWS CloudTrail](cloudtrail.md). 

**Aktifkan AWS Config**  
AWS Config memberikan tampilan terperinci tentang konfigurasi AWS sumber daya di akun Anda. Anda dapat melihat bagaimana sumber daya terkait, mendapatkan riwayat perubahan konfigurasi, dan melihat bagaimana hubungan dan konfigurasi berubah seiring waktu. Anda dapat menggunakan AWS Config untuk menentukan aturan yang mengevaluasi konfigurasi sumber daya untuk kepatuhan data. AWS Config aturan mewakili pengaturan konfigurasi ideal untuk sumber daya API Gateway Anda. Jika sumber daya melanggar aturan dan ditandai sebagai tidak sesuai, AWS Config dapat mengingatkan Anda menggunakan topik Amazon Simple Notification Service (Amazon SNS). Lihat perinciannya di [Memantau konfigurasi API Gateway API dengan AWS Config](apigateway-config.md). 

**Gunakan AWS Security Hub CSPM**  
Pantau penggunaan API Gateway yang berkaitan dengan praktik terbaik keamanan dengan menggunakan [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html). Security Hub CSPM menggunakan *kontrol keamanan* untuk mengevaluasi konfigurasi sumber daya dan *standar keamanan* untuk membantu Anda mematuhi berbagai kerangka kerja kepatuhan. Untuk informasi selengkapnya tentang menggunakan Security Hub CSPM guna mengevaluasi resource API Gateway, lihat [kontrol Amazon API Gateway](https://docs.aws.amazon.com/securityhub/latest/userguide/apigateway-controls.html) di *AWS Security Hub Panduan Pengguna*.