的元素Amazon签名版本 4 请求 - Amazon 一般参考
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

的元素Amazon签名版本 4 请求

每个使用版本 4 签名的 HTTP/HTTPS 请求都必须包含这些元素。

  • 终端节点规范

  • 操作

  • 必需和可选参数

  • 日期

  • 身份验证参数

终端节点规范

这指定为 HTTP/1.1 请求中的 Host 标头。此标头指定您要向其发送请求的计算机的 DNS 名称,例如 dynamodb.us-east-1.amazonaws.com

您必须随 HTTP/1.1 请求包含 Host 标头。对于 HTTP/2 请求,您可以使用 :authority 标头或 Host 标头。仅使用 :authority 标头以符合 HTTP/2 规范。并非所有服务都支持 HTTP/2 请求,因此请检查服务文档以了解详细信息。

终端节点通常包含服务名称和区域,您必须将这两者用作 Credential 身份验证参数的一部分。例如,欧洲西部 1 区域的 Amazon DynamoDB 终端节点为dynamodb.eu-west-1.amazonaws.com. 如果您未指定区域,Web 服务将使用默认区域 us-east-1。如果您使用的是使用全球唯一终端节点的 IAM 服务(如),请使用默认区域 (us-east-1),作为Credential身份验证参数(本主题稍后将介绍)。

有关由Amazon,请参阅区域和终端节点.

Action

此元素指定您希望 Web 服务执行的操作,如 DynamoDBCreateTable操作或 Amazon EC2DescribeInstancesaction. 指定的操作确定在请求中使用的参数。对于查询 API,此操作是一个 API 名称。对于非查询 API(如 RESTful API),请参阅服务文档以了解相应的操作。

必需和可选参数

此元素指定请求操作的参数。Web 服务中的每个操作都具有一组用于定义 API 调用的必需参数和可选参数。API 版本通常是必需参数。有关必需参数和可选参数的详细信息,请参阅服务文档。

Date

这是您发出请求的日期和时间。在请求中包括日期有助于防止第三方拦截您的请求并稍后重新提交。该日期使用 ISO8601 Basic 格式通过 x-amz-date 标头以 YYYYMMDD'T'HHMMSS'Z' 格式指定。

身份验证参数

您发送的每个请求都必须包含以下一组参数,这些参数包括:Amazon用于确保请求的有效性和可靠性。

  • 算法。您用作签名过程一部分的哈希算法。例如,如果您使用 SHA-256 创建哈希,请使用值 AWS4-HMAC-SHA256

  • 凭证范围。以斜杠(“/”)分隔的字符串,它通过将您的访问密钥 ID 和凭证范围组件串联起来而形成。凭证范围包括采用 YYYYMMDD 格式的日期、Amazon 区域、服务名称和特殊的终止字符串 (aws4_request)。例如,以下字符串表示Credential参数中的 IAM 请求us-east-1 cn-north-1区域。

    AKIAIOSFODNN7EXAMPLE/20111015/us-east-1/iam/aws4_request

    AKIAIOSFODNN7EXAMPLE/20111015/cn-north-1/iam/aws4_request

    重要

    您必须为区域、服务名称和特殊的终止字符串使用小写字符。

  • SignedHeaders 要在签名中包含的 HTTP/HTTPS 标头的以分号(“;”)分隔的列表。

  • 签名 一个十六进制编码字符串,表示在Task 3:计算签名Amazon签名版本 4中介绍的签名操作的输出。您必须使用您在 Algorithm 参数中指定的算法来计算签名。

若要查看示例已签名请求,请参阅完整签名版本 4 签名过程的示例 (Python)