View a markdown version of this page

Melindungi gateway Anda dengan AWS WAF - Batu Dasar Amazon AgentCore

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

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 sebaris 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 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, aliran permintaan berikut terjadi:

  1. Klien mengirimkan permintaan ke titik akhir gateway Anda.

  2. AWS WAF mengevaluasi permintaan terhadap aturan di ACL web terkait.

  3. Jika permintaan diizinkan, gateway merutekkannya ke target yang sesuai.

  4. Jika permintaan diblokir, gateway mengembalikan kesalahan ke klien tanpa meneruskan permintaan.

AWS WAF mengevaluasi setiap permintaan masuk sebaris. Ketika tidak ada ACL web yang terkait 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 Wilayah yang sama AWS dengan gateway Anda.

  • Anda harus menggunakan ACL web regional. CloudFront ACL web (global) tidak didukung.

  • Gerbang Anda harus dalam READY keadaan.

  • 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 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 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 ARN ACL web Anda dan gateway ARN.

Memisahkan ACL web dari gateway

Untuk menghapus perlindungan AWS WAF dari gateway Anda, lepaskan ACL web. Anda harus melepaskan ACL web apa pun dari gateway Anda sebelum Anda dapat menghapus gateway.

Untuk melepaskan 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 Mode 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 melalui 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 jika ketersediaan lebih penting daripada keamanan untuk beban kerja Anda.

AWS Penanganan respons WAF

Ketika AWS WAF memblokir permintaan, respons kesalahan tergantung pada jenis target Anda:

Target MCP

Permintaan yang diblokir mengembalikan JSON-RPC kesalahan dengan kode -32002 dan pesan"Authorization error - Request forbidden".

HTTP dan target passthrough

Permintaan yang diblokir mengembalikan HTTP 403.

Jika AWS waktu 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

WafBlocks

Jumlah permintaan yang diblokir oleh AWS WAF, termasuk respons blok default dan kustom.

WafFailOpens

Jumlah permintaan di mana AWS WAF tidak dapat dijangkau dan mode kegagalan gatewayFAIL_OPEN, sehingga permintaan diteruskan ke target tanpa AWS evaluasi WAF. Nilai non-nol berkelanjutan menunjukkan gateway Anda membiarkan lalu lintas lewat tanpa inspeksi AWS WAF.

WafFailCloses

Jumlah permintaan di mana AWS WAF tidak dapat dijangkau dan mode kegagalan gateway adalahFAIL_CLOSE, sehingga permintaan ditolak. Nilai non-nol yang berkelanjutan menunjukkan gateway Anda kehilangan lalu lintas karena AWS WAF tidak dapat dijangkau.

Untuk mendapatkan detail tingkat aturan tentang permintaan yang diblokir, gunakan pencatatan AWS WAF. Anda dapat menghubungkan 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 Wil AWS ayah di mana AWS WAF dan AgentCore Gateway tersedia.

Praktik terbaik

Kami merekomendasikan praktik berikut saat menggunakan AWS WAF dengan gateway Anda:

  • Gunakan grup AWS aturan Aturan Terkelola untuk perlindungan umum terhadap ancaman yang diketahui.

  • Menerapkan aturan berbasis laju untuk melindungi dari serangan volumetrik.

  • Gunakan IP-based aturan untuk mengizinkan daftar atau menolak daftar sumber yang diketahui.

  • Uji aturan AWS WAF dalam COUNT mode sebelum beralih ke BLOCK untuk memahami dampaknya pada lalu lintas Anda.

  • PantauWafBlocks,WafFailOpens, dan WafFailCloses metrik untuk menyesuaikan aturan Anda dan mengidentifikasi masalah.

  • Gunakan FAIL_CLOSE mode default untuk beban kerja yang sensitif terhadap keamanan. Gunakan FAIL_OPEN hanya jika ketersediaan sangat penting dan Anda memiliki kontrol keamanan lainnya.