Realizar solicitudes HTTPS a AWS WAF o Shield Advanced - AWS WAF, AWS Firewall Manager, AWS Shield Advanced y director de seguridad de red AWS Shield

Presentamos una nueva experiencia de consola para AWS WAF

Ahora puede usar la experiencia actualizada para acceder a las funciones de AWS WAF desde cualquier parte de la consola. Para obtener más información, consulta Trabajo con la experiencia de consola actualizada.

Realizar solicitudes HTTPS a AWS WAF o Shield Advanced

Las solicitudes de AWS WAF y Shield Advanced son solicitudes HTTPS según se define en RFC 2616. Al igual que cualquier solicitud HTTP, una solicitud a AWS WAF o Shield Advanced contiene un método de solicitud, una URI, encabezados de solicitudes y el contenido de una solicitud. La respuesta contiene un código de estado HTTP, encabezados de respuesta y, a veces, una respuesta.

URI de solicitud

La solicitud URI siempre es un signo de barra diagonal sencilla, /.

Encabezados HTTP

AWS WAF y Shield Advanced requieren que figure la siguiente información en el encabezado de una solicitud HTTP:

Host (requerida)

Punto de conexión que especifica dónde se crean los recursos. Para obtener más información acerca de los puntos de enlace, consulte Puntos de enlace de servicio de AWS. Por ejemplo, el valor del encabezado de Host para AWS WAF en una distribución de CloudFront es waf.amazonaws.com:443.

x-amz-date o Fecha (requerida)

Fecha utilizada para crear la firma que se encuentra en el encabezado de la Authorization. Especifique la fecha en formato estándar ISO 8601, hora UTC, tal y como se muestra en el ejemplo siguiente:

x-amz-date: 20151007T174952Z

Debe incluir x-amz-date o Date. (Algunas bibliotecas de cliente de HTTP no permiten configurar el encabezado de la Date). Cuando hay un encabezado de x-amz-date, AWS WAF ignora cualquier encabezado de Date al autenticar la solicitud.

La marca temporal debe estar en el intervalo de 15 minutos de la hora del sistema AWS a la que se recibe la solicitud. En caso contrario, la solicitud falla y emite el código de error RequestExpired para impedir que otra persona reproduzca sus solicitudes.

Authorization (requerida)

Información necesaria para solicitar la autenticación. Para obtener más información sobre la creación de este encabezado, consulte Autenticación de solicitudes.

X-Amz-Target (requerida)

Concatenación de AWSWAF_ o AWSShield_, la versión de la API sin puntuación, un punto (.) y el nombre de la operación, por ejemplo:

AWSWAF_20150824.CreateWebACL

Content-Type (condicional)

Especifica que el tipo de contenido es JSON, así como la versión de JSON, tal y como se muestra en el ejemplo siguiente:

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

Condición: obligatorio para las solicitudes de POST.

Content-Length (condicional)

Longitud del mensaje (sin encabezados) de acuerdo con RFC 2616.

Condición: obligatoria si el texto de la solicitud contiene información (la mayoría de los kits de herramientas agregan este encabezado automáticamente).

A continuación, se muestra un ejemplo de un encabezado en una solicitud de HTTP para crear un paquete de protección (ACL web) en 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

Cuerpo de la solicitud HTTP

Muchas acciones de AWS WAF y de Shield Advanced requieren que se incluyan datos con formato JSON en el cuerpo de la solicitud.

La siguiente solicitud de ejemplo utiliza una declaración JSON simple para actualizar una IPSet e incluir la dirección IP 192.0.2.44 (representada en notación 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" } } ] }