Gunakan AWS WAF untuk melindungi REST API Anda di API Gateway - APIGerbang Amazon

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

Gunakan AWS WAF untuk melindungi REST API Anda di API Gateway

AWS WAF adalah firewall aplikasi web yang membantu melindungi aplikasi web dan API dari serangan. Ini memungkinkan Anda untuk mengonfigurasi seperangkat aturan yang disebut daftar kontrol akses web (web ACL) yang memungkinkan, memblokir, atau menghitung permintaan web berdasarkan aturan dan kondisi keamanan web yang dapat disesuaikan yang Anda tentukan. Untuk informasi selengkapnya, lihat Cara AWS WAF Kerja.

Anda dapat menggunakan AWS WAF untuk melindungi API Gateway REST API Anda dari eksploitasi web umum, seperti injeksi SQL dan serangan cross-site scripting (XSS). Ini dapat memengaruhi ketersediaan dan kinerja API, membahayakan keamanan, atau mengkonsumsi sumber daya yang berlebihan. Misalnya, Anda dapat membuat aturan untuk mengizinkan atau memblokir permintaan dari rentang alamat IP tertentu, permintaan dari blok CIDR, permintaan yang berasal dari negara atau wilayah tertentu, permintaan yang berisi kode SQL berbahaya, atau permintaan yang berisi skrip berbahaya.

Anda juga dapat membuat aturan yang cocok dengan string tertentu atau pola ekspresi reguler di header HTTP, metode, string kueri, URI, dan badan permintaan (terbatas pada 64 KB pertama). Selain itu, Anda dapat membuat aturan untuk memblokir serangan dari agen pengguna tertentu, bot buruk, dan pencakar konten. Misalnya, Anda dapat menggunakan aturan berbasis tarif untuk menentukan jumlah permintaan web yang diizinkan oleh setiap IP klien dalam periode 5 menit yang terus diperbarui.

penting

AWS WAF adalah garis pertahanan pertama Anda terhadap eksploitasi web. Bila AWS WAF diaktifkan pada API, AWS WAF aturan dievaluasi sebelum fitur kontrol akses lainnya, seperti kebijakan sumber daya, kebijakanIAM, otorisasi Lambda, dan otorisasi Amazon Cognito. Misalnya, jika AWS WAF memblokir akses dari blok CIDR yang diizinkan oleh kebijakan sumber daya, AWS WAF diutamakan dan kebijakan sumber daya tidak dievaluasi.

AWS WAF Untuk mengaktifkan API Anda, Anda perlu melakukan hal berikut:

  1. Gunakan AWS WAF konsol, AWS SDK, atau CLI untuk membuat ACL web yang berisi kombinasi aturan terkelola yang diinginkan dan aturan AWS WAF kustom Anda sendiri. Untuk informasi selengkapnya, lihat Memulai AWS WAF dan daftar kontrol akses Web (ACL web).

    penting

    API Gateway memerlukan ACL AWS WAFV2 web untuk aplikasi Regional atau ACL AWS WAF Classic Regional web.

  2. Kaitkan ACL AWS WAF web dengan tahap API. Anda dapat melakukannya dengan menggunakan AWS WAF konsol, AWS SDK, CLI, atau dengan menggunakan konsol API Gateway.

Untuk mengaitkan ACL AWS WAF web dengan tahap API Gateway API menggunakan konsol API Gateway

Untuk menggunakan konsol API Gateway untuk mengaitkan ACL AWS WAF web dengan tahap API Gateway API yang ada, gunakan langkah-langkah berikut:

  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih API yang sudah ada atau buat yang baru.

  3. Di panel navigasi utama, pilih Tahapan, lalu pilih panggung.

  4. Di bagian Detail tahap, pilih Edit.

  5. Di bawah Firewall aplikasi Web (AWS WAF), pilih ACL web Anda.

    Jika Anda menggunakan AWS WAFV2, pilih ACL AWS WAFV2 web untuk aplikasi Regional. ACL web dan AWS WAFV2 sumber daya lain yang digunakannya harus berada di Wilayah yang sama dengan API Anda.

    Jika Anda menggunakan AWS WAF Classic Regional, pilih ACL web Regional.

  6. Pilih Simpan perubahan.

Kaitkan ACL AWS WAF web dengan tahap API Gateway API menggunakan AWS CLI

Untuk menggunakan AWS CLI untuk mengaitkan ACL AWS WAFV2 web untuk aplikasi Regional dengan tahap API Gateway API yang ada, panggil associate-web-aclperintah tersebut, seperti pada contoh berikut:

aws wafv2 associate-web-acl \ --web-acl-arn arn:aws:wafv2:{region}:111122223333:regional/webacl/test-cli/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --resource-arn arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod

Untuk menggunakan AWS CLI untuk mengaitkan ACL AWS WAF Classic Regional web dengan tahap API Gateway API yang ada, panggil associate-web-aclperintah tersebut, seperti pada contoh berikut:

aws waf-regional associate-web-acl \ --web-acl-id 'aabc123a-fb4f-4fc6-becb-2b00831cadcf' \ --resource-arn 'arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod'

Kaitkan ACL AWS WAF web dengan tahap API menggunakan AWS WAF REST API

Untuk menggunakan AWS WAFV2 REST API untuk mengaitkan ACL AWS WAFV2 web untuk aplikasi Regional dengan tahap API Gateway API yang ada, gunakan perintah AssociateWebACL, seperti pada contoh berikut:

import boto3 wafv2 = boto3.client('wafv2') wafv2.associate_web_acl( WebACLArn='arn:aws:wafv2:{region}:111122223333:regional/webacl/test/abc6aa3b-fc33-4841-b3db-0ef3d3825b25', ResourceArn='arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod' )

Untuk menggunakan AWS WAF REST API untuk mengaitkan ACL AWS WAF Classic Regional web dengan tahap API Gateway API yang ada, gunakan perintah AssociateWebACL, seperti pada contoh berikut:

import boto3 waf = boto3.client('waf-regional') waf.associate_web_acl( WebACLId='aabc123a-fb4f-4fc6-becb-2b00831cadcf', ResourceArn='arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod' )