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

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

向 Amazon WAF 或 Shield Advanced 发出HTTPS请求

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

请求 URI

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

HTTP 标头

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

Host(必需)

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

x-amz-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 and Shield Advanced API 操作都要求您在请求正文中包含 JSON 格式的数据。

以下示例请求使用一个简单的 JSON 语句来更新 IPSet,以包含 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" } } ] }