Como fazer solicitações HTTPS para o AWS WAF ou Shield Advanced - Administrador de segurança da rede do AWS WAF, AWS Firewall Manager, AWS Shield Advanced e AWS Shield

Apresentação de uma nova experiência de console para o AWS WAF

Agora você pode usar a experiência atualizada para acessar a funcionalidade do AWS WAF em qualquer lugar no console. Consulte mais detalhes em Trabalhar com a experiência atualizada do console.

Como fazer solicitações HTTPS para o AWS WAF ou Shield Advanced

As solicitações do AWS WAF e do Shield Advanced são solicitações HTTPS, conforme definido na RFC 2616. Como qualquer solicitação HTTP, uma solicitação para o AWS WAF ou para o Shield Advanced contém um método de solicitação, um URI, cabeçalhos de solicitação e o corpo da solicitação. A resposta contém um código de status HTTP, cabeçalhos de resposta e, às vezes, corpo da resposta.

URI da solicitação

O URI da solicitação é sempre uma barra individual, /.

Cabeçalhos HTTP

O AWS WAF e o Shield Advanced requerem as informações a seguir no cabeçalho de uma solicitação HTTP:

Host (obrigatório)

O endpoint que especifica onde seus recursos são criados. Para obter informações sobre endpoints, consulte endpoints de serviço da AWS. Por exemplo, o valor do cabeçalho Host do AWS WAF para uma distribuição do CloudFront é waf.amazonaws.com:443.

x-amz-date ou Data (obrigatório)

A data usada para criar a assinatura contida no cabeçalho Authorization. Especifique a data no formato padrão ISO 8601, no horário UTC, como mostrado no exemplo a seguir:

x-amz-date: 20151007T174952Z

Você deve incluir x-amz-date ou Date. (Algumas bibliotecas de cliente HTTP não permitem a definição do cabeçalho Date). Quando um cabeçalho x-amz-date estiver presente, o AWS WAF ignorará qualquer cabeçalho Date ao autenticar a solicitação.

O time stamp deve estar no intervalo de 15 minutos da hora do sistema da AWS quando a solicitação for recebida. Se não estiver, a solicitação falhará, com o código de erro RequestExpired, para impedir que outra pessoa reproduza suas solicitações.

Autorização (obrigatório)

As informações necessárias para solicitar a autenticação. Para mais informações sobre a criação desse cabeçalho, consulte Autenticação de solicitações.

X-Amz-Target (obrigatório)

Uma concatenação de AWSWAF_ ou AWSShield_, a versão da API sem pontuação, um ponto final (.) e o nome da operação, por exemplo:

AWSWAF_20150824.CreateWebACL

Content-Type (condicional)

Especifica que o tipo de conteúdo é JSON, bem como a versão do JSON, como mostrado no exemplo a seguir:

Content-Type: application/x-amz-json-1.1

Condição: obrigatório para solicitações do POST.

Content-Length (condicional)

Comprimento da mensagem (sem cabeçalhos) de acordo com a RFC 2616.

Condição: obrigatório se o corpo da solicitação em si contiver informações (a maioria dos toolkits adiciona esse cabeçalho automaticamente).

Veja a seguir um exemplo de cabeçalho para uma solicitação HTTP para criar um pacote de proteção (ACL da Web) no AWS WAF:

POST / HTTP/1.1 Host: waf.amazonaws.com:443 X-Amz-Date: 20151007T174952Z Authorization: AWS4-HMAC-SHA256 Credential=AccessKeyID/20151007/us-east-2/waf/aws4_request, SignedHeaders=host;x-amz-date;x-amz-target, Signature=145b1567ab3c50d929412f28f52c45dbf1e63ec5c66023d232a539a4afd11fd9 X-Amz-Target: AWSWAF_20150824.CreateWebACL Accept: */* Content-Type: application/x-amz-json-1.1; charset=UTF-8 Content-Length: 231 Connection: Keep-Alive

Corpo da solicitação HTTP

Muitas ações de API do AWS WAF e do Shield Advanced exigem que você inclua dados formatados por JSON no corpo da solicitação.

A solicitação do exemplo a seguir usa uma instrução JSON simples para atualizar um IPSet para incluir o endereço IP 192.0.2.44 (representado na notação CIDR como 192.0.2.44/32):

POST / HTTP/1.1 Host: waf.amazonaws.com:443 X-Amz-Date: 20151007T174952Z Authorization: AWS4-HMAC-SHA256 Credential=AccessKeyID/20151007/us-east-2/waf/aws4_request, SignedHeaders=host;x-amz-date;x-amz-target, Signature=145b1567ab3c50d929412f28f52c45dbf1e63ec5c66023d232a539a4afd11fd9 X-Amz-Target: AWSWAF_20150824.UpdateIPSet Accept: */* Content-Type: application/x-amz-json-1.1; charset=UTF-8 Content-Length: 283 Connection: Keep-Alive { "ChangeToken": "d4c4f53b-9c7e-47ce-9140-0ee5ffffffff", "IPSetId": "69d4d072-170c-463d-ab82-0643ffffffff", "Updates": [ { "Action": "INSERT", "IPSetDescriptor": { "Type": "IPV4", "Value": "192.0.2.44/32" } } ] }