As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Como enviar respostas personalizadas para ações Block
Essa seção explica como instruir o AWS WAF a enviar uma resposta HTTP personalizada de volta ao cliente para ações de regra ou ações padrão de ACL da Web definidas como Block. Para obter mais informações sobre as ações de regra, consulte Como usar ações de regras no AWS WAF. Para obter mais informações sobre ações padrão de web ACL, consulte Como definir a ação padrão da ACL da Web no AWS WAF.
Ao definir o tratamento personalizado de resposta para uma ação Block, você define o código de status, os cabeçalhos e o corpo da resposta. Para obter uma lista de códigos de status que você pode usar com o AWS WAF, consulte a seção a seguir, Códigos de status compatíveis para respostas personalizadas.
Casos de uso
Os casos de uso de respostas personalizadas incluem o seguinte:
-
Enviar um código de status não padrão de volta ao cliente.
-
Enviar cabeçalhos de resposta personalizada de volta ao cliente. É possível especificar qualquer nome de cabeçalho, exceto
content-type
. -
Enviar uma página de erro estática de volta ao cliente.
-
Redirecionar o cliente para um URL diferente. Para fazer isso, você especifica um dos códigos de status de redirecionamento
3xx
, como301 (Moved Permanently)
ou302 (Found)
, e depois especifica um novo cabeçalhoLocation
com o novo URL.
Interação com respostas que você define em seu recurso protegido
As respostas personalizadas que você especifica para a ação Block do AWS WAF têm precedência sobre qualquer especificação de resposta definida no seu recurso protegido.
O serviço de host para o recurso da AWS que você protege com o AWS WAF pode permitir o tratamento personalizado de respostas para solicitações da web. Os exemplos incluem:
-
Com o Amazon CloudFront, você pode personalizar a página de erro com base no código de status. Para obter mais informações, consulte Gerar respostas personalizadas a erros no Guia do desenvolvedor do Amazon CloudFront.
-
Com o Amazon API Gateway, você pode definir a resposta e o código de status do seu gateway. Para obter mais informações, consulte Respostas do API Gateway no Guia do desenvolvedor do Amazon API Gateway.
Você não pode combinar configurações de resposta personalizada do AWS WAF com configurações de resposta personalizada no recurso protegido da AWS. A especificação de resposta para qualquer solicitação individual da web vem totalmente do AWS WAF ou totalmente do recurso protegido.
Para solicitações da web bloqueadas pelo AWS WAF, veja a seguir a ordem de precedência.
-
Resposta personalizada do AWS WAF:Se a ação Block do AWS WAF tiver uma resposta personalizada ativada, o recurso protegido enviará a resposta personalizada configurada de volta ao cliente. Qualquer configuração de resposta que você possa ter definido no próprio recurso protegido não tem efeito.
-
Resposta personalizada definida no recurso protegido:Caso contrário, se o recurso protegido tiver configurações de resposta personalizada especificadas, o recurso protegido usará essas configurações para responder ao cliente.
-
Resposta Block padrão do AWS WAF:Caso contrário, o recurso protegido responderá ao cliente com a resposta Block padrão do AWS WAF
403 (Forbidden)
.
Para solicitações da web que o AWS WAF permite, sua configuração do recurso protegido determina a resposta que ele envia de volta ao cliente. Você não pode definir as configurações de resposta no AWS WAF para solicitações permitidas. A única personalização que você pode configurar no AWS WAF para solicitações permitidas é a inserção de cabeçalhos personalizados na solicitação original, antes de encaminhar a solicitação para o recurso protegido. Isso é descrito na seção anterior, Como inserir cabeçalhos de solicitação personalizados para ações sem bloqueio.
Cabeçalhos de resposta personalizada
É possível especificar qualquer nome de cabeçalho, exceto content-type
.
Corpos de resposta personalizada
Você define o corpo de uma resposta personalizada dentro do contexto da web ACL ou do grupo de regras em que deseja usá-la. Depois de definir um corpo de resposta personalizada, você pode usá-lo como referência em qualquer outro lugar na web ACL ou no grupo de regras em que você o criou. Nas configurações de ação individual Block, você faz referência ao corpo personalizado que deseja usar e define o código de status e o cabeçalho da resposta personalizada.
Ao criar uma resposta personalizada no console, você pode escolher entre os corpos de resposta que já foram definidos ou criar um novo corpo. Fora do console, você define seus corpos de resposta personalizada no nível da web ACL ou do grupo de regras e, em seguida, faz referência a eles nas configurações de ação dentro da web ACL ou do grupo de regras. Isso é mostrado no exemplo JSON na seção a seguir.
Exemplo de resposta personalizada
O exemplo a seguir lista o JSON de um grupo de regras com configurações de resposta personalizada. O corpo da resposta personalizada é definido para todo o grupo de regras e, em seguida, referenciado por chave na ação da regra.
{ "ARN": "test_rulegroup_arn", "Capacity": 1, "CustomResponseBodies": { "CustomResponseBodyKey1": { "Content": "This is a plain text response body.", "ContentType": "TEXT_PLAIN" } }, "Description": "This is a test rule group.", "Id": "test_rulegroup_id", "Name": "TestRuleGroup", "Rules": [ { "Action": { "Block": { "CustomResponse": { "CustomResponseBodyKey": "CustomResponseBodyKey1", "ResponseCode": 404, "ResponseHeaders": [ { "Name": "BlockActionHeader1Name", "Value": "BlockActionHeader1Value" } ] } } }, "Name": "GeoMatchRule", "Priority": 1, "Statement": { "GeoMatchStatement": { "CountryCodes": [ "US" ] } }, "VisibilityConfig": { "CloudWatchMetricsEnabled": true, "MetricName": "TestRuleGroupReferenceMetric", "SampledRequestsEnabled": true } } ], "VisibilityConfig": { "CloudWatchMetricsEnabled": true, "MetricName": "TestRuleGroupMetric", "SampledRequestsEnabled": true } }