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

引入全新的主机体验 Amazon WAF

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

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

对请求进行身份验证

如果您使用的语言为 Amazon 提供 SDK,我们建议您使用 SDK。与使用 Amazon WAF 或 Shield Advanced API 相比,所有这些都 Amazon SDKs 大大简化了签署请求的过程,并为您节省了大量时间。此外,它们可以轻松地与您的开发环境 SDKs 集成,并提供对相关命令的轻松访问。

Amazon WAF 而且 Shield Advanced 要求您通过签署请求来验证您发送的每个请求。要对请求进行签名,您需要使用加密哈希函数计算出数字签名,此函数可根据输入返回一个哈希值。输入内容包括您的请求文本和秘密访问密钥。哈希函数返回哈希值,您将该值包含在请求中,作为签名。该签名是您的请求的 Authorization 标头的一部分。

收到您的请求后, Amazon WAF 或 Shield Advanced 会使用您签署请求时使用的相同哈希函数和输入重新计算签名。如果生成的签名与请求中的签名相匹配, Amazon WAF 或者 Shield Advanced 会处理该请求。如果不匹配,则拒绝请求。

Amazon WAF 而且 Shield Advanced 支持使用Amazon 签名版本 4 进行身份验证。计算签名的过程可分为三个任务:

任务 1:创建规范请求

按照https://docs.amazonaws.cn/general/latest/gr/sigv4-create-canonical-request.html中的Amazon Web Services 一般参考任务 1:针对签名版本 4 创建规范请求中所述,以规范格式创建 HTTP 请求。

任务 2:创建待签字符串

创建一个字符串,将该字符串用作您的加密哈希函数输入值中的一项。该字符串称为“待签字符串”,是以下值的结合:

  • 哈希算法的名称

  • 请求日期

  • 凭证范围字符串

  • 来自上一任务的规范请求

凭证范围字符串本身是日期、区域和服务信息的结合。

对于 X-Amz-Credential 参数,指定以下内容:

  • 您要将请求发送到的终端节点的代码,即 us-east-2

  • waf(表示服务缩写)

例如:

X-Amz-Credential=AKIAIOSFODNN7EXAMPLE/20130501/us-east-2/waf/aws4_request

任务 3:创建签名

使用接受两种输入字符串的加密哈希函数为您的请求创建签名:

  • 您的待签字符串,来自任务 2。

  • 派生密钥。派生密钥的计算方法是从您的私有访问密钥开始,然后使用凭证范围字符串创建一系列基于哈希的消息身份验证代码 () HMACs。