Respostas personalizadas para ações Block - AWS WAF, AWS Firewall Manager, e AWS Shield Advanced

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á.

Respostas personalizadas para ações Block

Você pode AWS WAF instruir 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 Ação da regra. Para obter mais informações sobre ações padrão de web ACL, consulte A ação padrão da web ACL.

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 AWS WAF, consulte a seção a seguir,Códigos de status compatíveis para resposta personalizada.

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, como 301 (Moved Permanently) ou 302 (Found), e depois especifica um novo cabeçalho Location com o novo URL.

Interação com respostas que você define em seu recurso protegido

As respostas personalizadas que você especifica para a AWS WAF Block ação têm precedência sobre qualquer especificação de resposta definida no seu recurso protegido.

O serviço de hospedagem do AWS recurso com o qual você protege AWS WAF pode permitir o tratamento personalizado de respostas para solicitações da web. Os exemplos incluem:

  • Com a Amazon CloudFront, você pode personalizar a página de erro com base no código de status. Para obter informações, consulte Geração de respostas de erro personalizadas no Amazon CloudFront Developer Guide.

  • 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 AWS WAF personalizadas com configurações de resposta personalizadas no AWS recurso protegido. 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 que AWS WAF bloqueiam, o seguinte mostra a ordem de precedência.

  1. AWS WAF resposta personalizada — Se a AWS WAF Block ação 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.

  2. 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.

  3. AWS WAF Blockresposta padrão — Caso contrário, o recurso protegido responderá ao cliente com a Block resposta AWS WAF 403 (Forbidden) padrão.

Para solicitações da Web que AWS WAF permitem, 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 AWS WAF para solicitações permitidas. A única personalização que você pode configurar 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, Inserções de cabeçalho de solicitação personalizadas 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 } }