对请求进行身份验证 - AWS WAF、AWS Firewall Manager、AWS Shield Advanced 和 AWS Shield 网络安全分析器

介绍 AWS WAF 的全新控制台体验

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

对请求进行身份验证

如果 AWS 为您使用的语言提供了开发工具包,建议您使用该开发工具包。与使用 AWS WAF 或 Shield Advanced API 相比,所有 AWS 开发工具包都会大大简化签名请求的过程,从而为您节省大量时间。此外,开发工具包还可轻松与您的开发环境集成,并可让您轻松访问相关命令。

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

收到您的请求后,AWS WAF 或 Shield Advanced 使用与您用于对该请求进行签名的相同哈希函数和输入重新计算签名。如果所得签名与该请求中的签名相匹配,则 AWS WAF 或 Shield Advanced 处理该请求。如果不匹配,则拒绝请求。

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

任务 1:创建规范请求

按照https://docs.aws.amazon.com/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。

  • 派生密钥。派生密钥的计算方法是,以您的秘密访问密钥为开始并使用凭证范围字符串来创建一系列 HMAC 散列消息认证码 (HMAC)。