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

引入全新的主机体验 Amazon WAF

现在,您可以使用更新的体验访问控制台中任意位置的 Amazon WAF 功能。有关更多详细信息,请参阅 使用更新的主机体验

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

向 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 的消息的长度(不带标头)。

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

以下是在中创建保护包或 Web ACL 的 HTTP 请求的标头示例 Amazon 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

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" } } ] }