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 :
-
Un client envoie une demande au point de terminaison de votre passerelle.
-
AWS WAF évalue la demande par rapport aux règles de l'ACL Web associée.
-
Si la demande est autorisée, la passerelle l'achemine vers la cible appropriée.
-
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
-32002et 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 |
|---|---|
|
|
Le nombre de demandes bloquées par le AWS WAF, y compris les réponses de blocage par défaut et personnalisées. |
|
|
Le nombre de demandes pour lesquelles le AWS WAF était inaccessible et le mode de défaillance de la passerelle est |
|
|
Le nombre de demandes pour lesquelles le AWS WAF était inaccessible et le mode de défaillance de la passerelle est |
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
COUNTmode avant de passer en modeBLOCKafin de comprendre l'impact sur votre trafic. -
Surveillez
WafBlockslesWafFailOpensWafFailClosesindicateurs et les indicateurs pour ajuster vos règles et identifier les problèmes. -
Utilisez le
FAIL_CLOSEmode par défaut pour les charges de travail sensibles à la sécurité. À utiliserFAIL_OPENuniquement lorsque la disponibilité est critique et que d'autres contrôles de sécurité sont en place.