Melindungi gateway Anda dengan AWS WAF
Anda dapat menggunakan AWS WAF dengan Amazon Bedrock AgentCore Gateway untuk melindungi gateway Anda dari eksploitasi web, lalu lintas bot, dan serangan volumetrik. AWS WAF menyediakan lapisan keamanan inline yang mengevaluasi semua permintaan masuk sebelum mencapai target Anda.
Saat Anda mengaitkan daftar kontrol akses web AWS WAF (ACL web) dengan gateway Anda, AWS WAF akan memeriksa setiap permintaan masuk dan menerapkan aturan yang Anda konfigurasikan. Permintaan yang cocok dengan aturan blok ditolak sebelum mencapai target apa pun. Anda mengaitkan ACL web di tingkat gateway, dengan satu ACL web per gateway.
Bagaimana AWS WAF bekerja dengan gateway Anda
Saat Anda mengaitkan ACL web dengan gateway Anda, alur permintaan berikut akan terjadi:
-
Klien mengirimkan permintaan ke titik akhir gateway Anda.
-
AWS WAF mengevaluasi permintaan terhadap aturan di ACL web terkait.
-
Jika permintaan diizinkan, gateway merutkannya ke target yang sesuai.
-
Jika permintaan diblokir, gateway mengembalikan kesalahan ke klien tanpa meneruskan permintaan.
AWS WAF mengevaluasi setiap inbound request inline. Ketika tidak ada ACL web yang dikaitkan dengan gateway Anda, tidak ada overhead dan tidak ada evaluasi AWS WAF yang terjadi.
Prasyarat
Sebelum Anda mengaitkan ACL web dengan gateway Anda, pastikan Anda memenuhi persyaratan berikut:
-
ACL web AWS WAF Anda harus ada di AWS Wilayah yang sama dengan gateway Anda.
-
Anda harus menggunakan ACL web regional. CloudFront ACL web (global) tidak didukung.
-
Gateway Anda harus dalam
READYkeadaan. -
Identitas IAM Anda harus memiliki izin berikut:
-
wafv2:AssociateWebACL -
wafv2:DisassociateWebACL -
wafv2:GetWebACLForResource -
wafv2:ListResourcesForWebACL -
bedrock-agentcore:GatewayAssociateWebACL -
bedrock-agentcore:GatewayDisassociateWebACL -
bedrock-agentcore:GatewayGetWebACLForResource -
bedrock-agentcore:GatewayListResourcesForWebACL
-
Mengaitkan ACL web dengan gateway Anda
Anda dapat mengaitkan ACL web dengan gateway Anda dengan menggunakan konsol AWS WAF atau CLI AWS . Satu gateway dapat memiliki paling banyak satu ACL web. Namun, satu ACL web dapat dikaitkan dengan beberapa gateway. Untuk mengubah ACL web yang terkait dengan gateway Anda, kaitkan ACL web baru. Asosiasi baru menggantikan yang sudah ada.
Untuk mengaitkan ACL web dengan gateway Anda dengan menggunakan AWS CLI, jalankan perintah berikut:
aws wafv2 associate-web-acl \ --web-acl-arn arn:aws:wafv2:us-east-1:123456789012:regional/webacl/my-web-acl/a1b2c3d4-5678-90ab-cdef-example11111 \ --resource-arn arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-gateway-id
Ganti nilai ARN dengan ACL ARN web Anda dan gateway ARN.
Memisahkan ACL web dari gateway Anda
Untuk menghapus perlindungan AWS WAF dari gateway Anda, lepaskan ACL web. Anda harus memisahkan ACL web apa pun dari gateway Anda sebelum Anda dapat menghapus gateway.
Untuk memisahkan ACL web dari gateway Anda dengan menggunakan AWS CLI, jalankan perintah berikut:
aws wafv2 disassociate-web-acl \ --resource-arn arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-gateway-id
Ganti nilai ARN dengan ARN gateway Anda.
Mengonfigurasi AWS Modus kegagalan WAF
Jika AWS WAF tidak dapat dijangkau atau waktu habis selama evaluasi permintaan, gateway menggunakan mode kegagalan yang dikonfigurasi untuk menentukan apakah akan memblokir atau mengizinkan permintaan.
-
FAIL_CLOSE -
Gateway memblokir permintaan. Ini adalah perilaku default.
-
FAIL_OPEN -
Gateway memungkinkan permintaan sampai ke target tanpa evaluasi AWS WAF.
Untuk mengkonfigurasi mode kegagalan, gunakan UpdateGateway API dengan wafConfiguration parameter:
aws bedrock-agentcore-control update-gateway \ --gateway-identifier my-gateway-id \ --name my-gateway \ --role-arn arn:aws:iam::123456789012:role/my-gateway-service-role \ --authorizer-type CUSTOM_JWT \ --authorizer-configuration '{ "customJWTAuthorizer": { "discoveryUrl": "https://cognito-idp.us-east-1.amazonaws.com/my-user-pool/.well-known/openid-configuration", "allowedClients": ["clientId"] } }' \ --waf-configuration '{"failureMode": "FAIL_OPEN"}'
penting
Mode kegagalan default adalahFAIL_CLOSE, yang menyediakan pendekatan keamanan pertama. Gunakan FAIL_OPEN hanya ketika ketersediaan lebih penting daripada keamanan untuk beban kerja Anda.
AWS Penanganan respons WAF
Saat AWS WAF memblokir permintaan, respons kesalahan bergantung pada jenis target Anda:
- Target MCP
-
Permintaan yang diblokir mengembalikan JSON-RPC kesalahan dengan kode
-32002dan pesan"Authorization error - Request forbidden". - HTTP dan target passthrough
-
Permintaan yang diblokir mengembalikan HTTP 403.
Jika waktu AWS WAF habis dengan FAIL_CLOSE konfigurasi, gateway mengembalikan kesalahan yang sama dengan permintaan yang diblokir. Jika AWS WAF mengembalikan kesalahan 5xx, target MCP menerima JSON-RPC kesalahan dengan kode -32603 dan pesan. "Internal error - Server error"
Memantau AWS Aktivitas WAF
Anda dapat memantau aktivitas AWS WAF untuk gateway Anda dengan menggunakan CloudWatch metrik Amazon.
Metrik berikut tersedia di AWS/Bedrock-AgentCore namespace:
| Metrik | Deskripsi |
|---|---|
|
|
Jumlah permintaan yang diblokir oleh AWS WAF, termasuk respons blok default dan kustom. |
|
|
Jumlah permintaan di mana AWS WAF tidak dapat dijangkau dan mode kegagalan gateway adalah |
|
|
Jumlah permintaan di mana AWS WAF tidak dapat dijangkau dan mode kegagalan gateway adalah |
Untuk mendapatkan detail tingkat aturan tentang permintaan yang diblokir, gunakan pencatatan AWS WAF. Anda dapat mengkorelasikan ID permintaan di log gateway Anda dengan log AWS WAF.
Kuota dan Batasan
Kuota dan batasan berikut berlaku untuk integrasi AWS WAF dengan gateway Anda:
-
Maksimal 100 asosiasi ACL web per akun.
-
AWS Asosiasi WAF hanya pada tingkat gateway, bukan per target. Untuk menerapkan aturan yang berbeda ke target yang berbeda, gunakan aturan AWS WAF berbasis jalur URI.
-
AWS Integrasi WAF tersedia di AWS Wilayah di mana AWS WAF dan AgentCore Gateway tersedia.
Praktik terbaik
Kami merekomendasikan praktik berikut saat menggunakan AWS WAF dengan gateway Anda:
-
Gunakan grup aturan Aturan AWS Terkelola untuk perlindungan umum terhadap ancaman yang diketahui.
-
Menerapkan aturan berbasis tingkat untuk melindungi terhadap serangan volumetrik.
-
Gunakan IP-based aturan untuk mengizinkan atau menolak daftar sumber yang diketahui.
-
Uji aturan AWS WAF dalam
COUNTmode sebelum beralihBLOCKuntuk memahami dampak pada lalu lintas Anda. -
Pantau
WafBlocks,WafFailOpens, danWafFailClosesmetrik untuk menyesuaikan aturan Anda dan mengidentifikasi masalah. -
Gunakan
FAIL_CLOSEmode default untuk beban kerja yang sensitif terhadap keamanan. GunakanFAIL_OPENhanya ketika ketersediaan sangat penting dan Anda memiliki kontrol keamanan lainnya.