向发出 HTTPS 请求Amazon WAF或 Shield Advanced - Amazon WAF、Amazon Firewall Manager 和 Amazon Shield Advanced
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

向发出 HTTPS 请求Amazon WAF或 Shield Advanced

Amazon WAF和 Shield Advanced 请求是 HTTPS 请求,如RFC 2616。与任何 HTTP 请求一样,对Amazon WAF或 Shield Advanced 包含请求方法、URI、请求标头和请求正文。响应包含 HTTP 状态码、响应标题,有时候包含响应主体。

请求 URI

请求 URI 始终是一个正斜杠 /

HTTP 标头

Amazon WAF和 Shield Advanced 要求在 HTTP 请求标头中包含以下信息:

Host (必需)

指定资源创建位置的终端节点。有关终端节点的信息,请参阅Amazon服务终端节点。例如,Host标头Amazon WAF是针对 CloudFront 分配的waf.amazonaws.com:443

x-amz-date 或 Date(必需)

用于创建 Authorization 标头中包含的签名的日期。采用 ISO 8601 标准格式以 UTC 时间指定日期,如以下示例所示:

x-amz-date: 20151007T174952Z

必须包含 x-amz-dateDate。(有些 HTTP 客户端库不允许设置 Date 标头。) 当存在 x-amz-date 标头时,Amazon WAF 在验证请求身份时会忽略所有 Date 标头。

当接收请求时,时间戳必须在 Amazon 系统时间的 15 分钟内。如果不在此时间范围内,请求将失败,并出现 RequestExpired 错误代码,以防止其他人重放您的请求。

Authorization (必需)

请求身份验证所需的信息。有关构建此标头的更多信息,请参阅对请求进行身份验证

X-Amz-Target (必需)

AWSWAF_AWSShield_、无标点的 API 版本、句点 (.) 以及操作名称的联接,例如:

AWSWAF_20150824.CreateWebACL

Content-Type (条件性)

指定内容类型为 JSON,并指定 JSON 的版本,如以下示例所示:

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

条件:对 POST 请求是必需的。

Content-Length (条件性)

符合 RFC 2616 的消息的长度(不带标头)。

条件:如果请求正文本身包含信息(大多数工具包自动添加此标题),则必需。

以下示例为在 Amazon WAF 中创建 Web ACL 所用的 HTTP 请求的标头:

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

HTTP 请求正文

多个Amazon WAF和 Shield Advanced API 操作要求您在请求正文中包含 JSON 格式的数据。

以下示例请求使用一个简单的 JSON 语句来更新 IPSet (在控制台中称为 IP 匹配条件),以包含 IP 地址 192.0.2.44 (用 CIDR 表示法记为 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" } } ] }