Amazon Web Services
一般参考 (Version 1.0)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

任务 2:创建签名版本 4 的待签字符串

待签字符串包含有关您的请求和您在任务 1:针对签名版本 4 创建规范请求中创建的规范请求的元信息。您将使用待签字符串和稍后在任务 3:为 AWS Signature 版本 4 计算签名中为计算请求签名而作为输入创建的派生签名密钥。

要创建待签字符串,请如以下伪代码所示,连接算法、日期和时间、凭证范围和规范请求的摘要:

待签字符串结构

Copy
StringToSign = Algorithm + \n + RequestDateTime + \n + CredentialScope + \n + HashedCanonicalRequest

以下示例演示如何使用任务 1:创建规范请求中的相同请求构造待签字符串。

例 HTTPS 请求

Copy
GET https://iam.cn-north-1.amazonaws.com.cn/?Action=ListUsers&Version=2010-05-08 HTTP/1.1 Host: iam.cn-north-1.amazonaws.com.cn/ Content-Type: application/x-www-form-urlencoded; charset=utf-8 X-Amz-Date: 20150830T123600Z

创建待签字符串

  1. 以算法名称开头,后跟换行符。该值是您用于计算规范请求摘要的哈希算法。对于 SHA256,算法是 AWS4-HMAC-SHA256

    Copy
    AWS4-HMAC-SHA256\n
  2. 追加请求日期值,后跟换行符。该日期是使用 ISO8601 基本格式以 YYYYMMDD'T'HHMMSS'Z' 格式在 x-amz-date 标头中指定的。此值必须与您在前面所有步骤中使用的值匹配。

    Copy
    20150830T123600Z\n
  3. 追加凭证范围值,后跟换行符。此值是一个字符串,包含日期、目标区域、所请求的服务和小写字符形式的终止字符串(“aws4_request”)。区域和服务名称字符串必须采用 UTF-8 编码。

    Copy
    20150830/cn-north-1/iam/aws4_request\n
    • 日期必须为 YYYYMMDD 格式。请注意,日期不包括时间值。

    • 请确保您指定的区域是您将请求发送到的目标区域。请参阅AWS 区域和终端节点

  4. 追加您在任务 1:针对签名版本 4 创建规范请求中创建的规范请求的哈希。该值后面不跟换行符。如 RFC 4648 第 8 节所定义,经过哈希处理的规范请求必须为 base-16 编码的小写形式。

    Copy
    c0f52cbaae2f5c43042257a73d9eafc6d42e3306a4ebab6d9235f391dff4d990

以下待签字符串是 2015 年 8 月 30 日的对 IAM 的请求。

例 待签字符串

Copy
AWS4-HMAC-SHA256 20150830T123600Z 20150830/cn-north-1/iam/aws4_request c0f52cbaae2f5c43042257a73d9eafc6d42e3306a4ebab6d9235f391dff4d990