View a markdown version of this page

Protégez votre passerelle avec AWS WAF - Amazon Bedrock AgentCore

Protégez votre passerelle avec AWS WAF

Vous pouvez utiliser AWS WAF avec Amazon Bedrock AgentCore Gateway pour protéger votre passerelle contre les exploits Web, le trafic de robots et les attaques volumétriques. AWS Le WAF fournit une couche de sécurité intégrée qui évalue toutes les demandes entrantes avant qu'elles n'atteignent vos cibles.

Lorsque vous associez une liste de contrôle d'accès Web (ACL Web) AWS WAF à votre passerelle, AWS WAF inspecte chaque demande entrante et applique les règles que vous configurez. Les demandes correspondant à une règle de blocage sont rejetées avant d'atteindre une cible. Vous associez une ACL Web au niveau de la passerelle, à une ACL Web par passerelle.

Comment ? AWS WAF fonctionne avec votre passerelle

Lorsque vous associez une ACL Web à votre passerelle, le flux de demandes suivant se produit :

  1. Un client envoie une demande au point de terminaison de votre passerelle.

  2. AWS WAF évalue la demande par rapport aux règles de l'ACL Web associée.

  3. Si la demande est autorisée, la passerelle l'achemine vers la cible appropriée.

  4. Si la demande est bloquée, la passerelle renvoie une erreur au client sans transmettre la demande.

AWS WAF évalue chaque demande entrante en ligne. Lorsqu'aucune ACL Web n'est associée à votre passerelle, il n'y a aucune surcharge et aucune évaluation AWS WAF n'a lieu.

Conditions préalables

Avant d'associer une ACL Web à votre passerelle, assurez-vous que vous répondez aux exigences suivantes :

  • Votre ACL Web AWS WAF doit exister dans la même AWS région que votre passerelle.

  • Vous devez utiliser une ACL Web régionale. CloudFront Les ACL Web (globales) ne sont pas prises en charge.

  • Votre passerelle doit être en bon READY état.

  • Votre identité IAM doit disposer des autorisations suivantes :

    • wafv2:AssociateWebACL

    • wafv2:DisassociateWebACL

    • wafv2:GetWebACLForResource

    • wafv2:ListResourcesForWebACL

    • bedrock-agentcore:GatewayAssociateWebACL

    • bedrock-agentcore:GatewayDisassociateWebACL

    • bedrock-agentcore:GatewayGetWebACLForResource

    • bedrock-agentcore:GatewayListResourcesForWebACL

Associer une ACL Web à votre passerelle

Vous pouvez associer une ACL Web à votre passerelle à l'aide de la console AWS WAF ou de la AWS CLI. Une passerelle peut avoir au plus une ACL Web. Cependant, une ACL Web peut être associée à plusieurs passerelles. Pour modifier l'ACL Web associée à votre passerelle, associez une nouvelle ACL Web. La nouvelle association remplace l'association existante.

Pour associer une ACL Web à votre passerelle à l'aide de la AWS CLI, exécutez la commande suivante :

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

Remplacez les valeurs ARN par l'ARN de votre ACL Web et l'ARN de votre passerelle.

Dissociation d'une ACL Web de votre passerelle

Pour supprimer la protection AWS WAF de votre passerelle, dissociez l'ACL Web. Vous devez dissocier toute ACL Web de votre passerelle avant de pouvoir supprimer la passerelle.

Pour dissocier une ACL Web de votre passerelle à l'aide de la AWS CLI, exécutez la commande suivante :

aws wafv2 disassociate-web-acl \ --resource-arn arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-gateway-id

Remplacez la valeur de l'ARN par l'ARN de votre passerelle.

Configuration de la   AWS Mode de défaillance du WAF

Si le AWS WAF est inaccessible ou expire pendant l'évaluation de la demande, la passerelle utilise le mode de défaillance configuré pour déterminer s'il faut bloquer ou autoriser la demande.

FAIL_CLOSE

La passerelle bloque la demande. Il s’agit du comportement de par défaut.

FAIL_OPEN

La passerelle permet à la demande d'atteindre la cible sans évaluation AWS WAF.

Pour configurer le mode de défaillance, utilisez l'UpdateGatewayAPI avec le wafConfiguration paramètre suivant :

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"}'
Important

Le mode de défaillance par défaut estFAIL_CLOSE, qui fournit une approche axée sur la sécurité. À utiliser FAIL_OPEN uniquement lorsque la disponibilité est plus importante que la sécurité pour votre charge de travail.

AWS Gestion des réponses WAF

Lorsque AWS WAF bloque une demande, la réponse d'erreur dépend de votre type de cible :

Objectifs MCP

Les demandes bloquées renvoient une JSON-RPC erreur avec le code -32002 et le message"Authorization error - Request forbidden".

Cibles HTTP et passthrough

Les requêtes bloquées renvoient le HTTP 403.

Si AWS le délai d'expiration du WAF FAIL_CLOSE est configuré, la passerelle renvoie la même erreur qu'une demande bloquée. Si AWS le WAF renvoie une erreur 5xx, les cibles MCP reçoivent une JSON-RPC erreur avec le code -32603 et le message. "Internal error - Server error"

Contrôle AWS Activité WAF

Vous pouvez surveiller l'activité AWS WAF de votre passerelle à l'aide des CloudWatch métriques Amazon.

Les métriques suivantes sont disponibles dans l'espace de AWS/Bedrock-AgentCore noms :

Métrique Description

WafBlocks

Le nombre de demandes bloquées par le AWS WAF, y compris les réponses de blocage par défaut et personnalisées.

WafFailOpens

Le nombre de demandes pour lesquelles le AWS WAF était inaccessible et le mode de défaillance de la passerelle est FAIL_OPEN tel que la demande a été transmise à la cible sans évaluation du AWS WAF. Des valeurs non nulles soutenues indiquent que votre passerelle laisse passer le trafic sans inspection AWS WAF.

WafFailCloses

Le nombre de demandes pour lesquelles le AWS WAF était inaccessible et le mode de défaillance de la passerelle est FAIL_CLOSE tel que la demande a été rejetée. Des valeurs non nulles soutenues indiquent que votre passerelle perd du trafic en raison de l'inaccessibilité du AWS WAF.

Pour obtenir des informations détaillées au niveau des règles sur les demandes bloquées, utilisez la journalisation AWS WAF. Vous pouvez corréler l'ID de demande dans les journaux de votre passerelle avec les journaux AWS WAF.

Quotas et limites

Les quotas et limitations suivants s'appliquent à l'intégration du AWS WAF à votre passerelle :

  • Maximum de 100 associations ACL Web par compte.

  • AWS L'association WAF se fait uniquement au niveau de la passerelle, et non par cible. Pour appliquer différentes règles à différentes cibles, utilisez des règles AWS WAF basées sur le chemin d'URI.

  • AWS L'intégration WAF est disponible dans AWS les régions où AWS WAF et AgentCore Gateway sont disponibles.

Bonnes pratiques

Nous recommandons les pratiques suivantes lorsque vous utilisez AWS WAF avec votre passerelle :

  • Utilisez des groupes de règles AWS gérées pour bénéficier de protections communes contre les menaces connues.

  • Mettez en œuvre des règles basées sur le débit pour vous protéger contre les attaques volumétriques.

  • Utilisez des IP-based règles pour autoriser ou refuser de répertorier les sources connues.

  • Testez les règles AWS WAF en COUNT mode avant de passer en mode BLOCK afin de comprendre l'impact sur votre trafic.

  • Surveillez WafBlocks les WafFailOpens WafFailCloses indicateurs et les indicateurs pour ajuster vos règles et identifier les problèmes.

  • Utilisez le FAIL_CLOSE mode par défaut pour les charges de travail sensibles à la sécurité. À utiliser FAIL_OPEN uniquement lorsque la disponibilité est critique et que d'autres contrôles de sécurité sont en place.