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
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
Hostdo 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: 20151007T174952ZVocê deve incluir
x-amz-dateouDate. (Algumas bibliotecas de cliente HTTP não permitem a definição do cabeçalhoDate). Quando um cabeçalhox-amz-dateestiver presente, o AWS WAF ignorará qualquer cabeçalhoDateao 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_ouAWSShield_, 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.1Condiçã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" } } ] }