选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

身份验证方法

聚焦模式
身份验证方法 - AWS Identity and Access Management
重要

除非您使用 AWS SDK 或 CLI,否则您必须编写代码来计算在请求中提供身份验证信息的签名。AWS 签名版本 4 中的签名计算可能是一项复杂的任务,我们建议您尽可能使用 AWS SDK 或 CLI。

您可以使用以下方法之一快速传递身份验证信息:

HTTP 授权标头

HTTP Authorization 标头是验证请求的最常用方法。所有 REST API 操作(使用 POST 请求的基于浏览器的上传除外)都需要此标头。

以下示例显示了 SigV4 和 SigV4a 的 Authorization 标头值。为便于阅读,此示例中添加了换行符。在您的代码中,该标头必须是连续的字符串。算法和凭证之间没有逗号,但是,必须使用逗号分隔其他元素。

例 SigV4
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20130524/us-east-1/s3/aws4_request, SignedHeaders=host;range;x-amz-date, Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024
例 SigV4a
Authorization: AWS4-ECDSA-P256-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20130524/s3/aws4_request, SignedHeaders=host;range;x-amz-date;x-amz-region-set, Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024

下表介绍了上述示例中授权标头值的各个组成部分:

组件 描述

授权

用于计算签名的算法。

  • SigV4 – 使用 AWS4-HMAC-SHA256。此字符串标识 AWS SigV4(AWS4)和 HMAC-SHA256 算法。

  • SigV4a – 使用 AWS4-ECDSA-P256-SHA256。此字符串标识 AWS SigV4(AWS4)和 ECDSA-P256-SHA-256 算法。

凭证

您的访问密钥 ID 和范围信息。

  • SigV4 – 包括用于计算签名的日期、区域和服务。该字符串具有以下形式:

    <your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

  • SigV4a – 包括用于计算签名的日期和服务。该字符串具有以下形式:

    <your-access-key-id>/<date>/<aws-service>/aws4_request

<date> 值使用 YYYYMMDD 格式指定。当发送请求到 Amazon S3 时,<aws-service> 值为 S3。

SignedHeaders

用于计算签名的请求标头的分号分隔列表。该列表仅包含标头名称,并且标头名称必须为小写。例如:host;range;x-amz-date

对于 SigV4a,您必须包含一个区域集标头,该标头指定请求将在哪一组区域中生效。标头 X-Amz-Region-Set 被指定为逗号分隔值的列表。

签名

256 位签名以 64 个小写十六进制字符表示。例如:fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024

请注意,签名计算因所选择的传输有效负载的选项而异。

查询字符串参数

您可以使用查询字符串在 URL 中完全表达请求。在这种情况下,您可以使用查询参数来提供请求信息,包括身份验证信息。由于请求签名是 URL 的一部分,因此这类 URL 通常称为预签名 URL。您可以使用预签名 URL 在 HTML 中嵌入可单击链接,该链接的有效期最长 7 天。有关更多信息,请参阅《Amazon S3 API Reference》中的 Authenticating Requests: Using Query Parameters (AWS Signature Version 4)

以下示例显示了 SigV4 和 SigV4a 的预签名 URL。为便于阅读,此示例中添加了换行符:

例 SigV4
https://s3.amazonaws.com/amzn-s3-demo-bucket/test.txt ? X-Amz-Algorithm=AWS4-HMAC-SHA256 & X-Amz-Credential=<your-access-key-id>/20130721/<region>/s3/aws4_request & X-Amz-Date=20130721T201207Z & X-Amz-Expires=86400 & X-Amz-SignedHeaders=host &X-Amz-Signature=<signature-value>
例 SigV4a
http://s3.amazonaws.com/amzn-s3-demo-bucket/test.txt ? X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256 & X-Amz-Credential=<your-access-key-id>/20240721/s3/aws4_request & X-amz-Region-Set=<regionset> & X-Amz-Date=20240721T201207Z & X-Amz-Expires=86400 & X-Amz-SignedHeaders=host;x-amz-region-set & X-Amz-Signature=<signature-value>
注意

URL 中的 X-Amz-Credential 值显示“/”字符只是为了方便阅读。实际上,它应该编码为 %2F。例如:

&X-Amz-Credential=<your-access-key-id>%2F20130721%2Fus-east-1%2Fs3%2Faws4_request

下表介绍了 URL 中提供身份验证信息的查询参数。

查询字符串参数名称 描述

X-Amz-Algorithm

AWS 签名的版本和用于计算签名的算法。

  • SigV4 – 使用 AWS4-HMAC-SHA256。此字符串标识 AWS SigV4(AWS4)和 HMAC-SHA256 算法。

  • SigV4a – 使用 AWS4-ECDSA-P256-SHA256。此字符串标识 AWS SigV4(AWS4)和 ECDSA-P256-SHA-256 算法。

X-Amz-Credential

除了访问密钥 ID 外,该参数还提供签名有效的范围。该值必须与您在签名计算中使用的范围匹配(后续部分将对此进行说明)。

  • SigV4 – 该参数值的一般形式如下:<your-access-key-id>/<date>/<AWS Region>/<AWS-service>/aws4_request

    例如:AKIAIOSFODNN7EXAMPLE/20130721/us-east-1/s3/aws4_request

  • SigV4a – 该参数值的一般形式如下:<your-access-key-id>/<date>/<AWS-service>/aws4_request

    例如:AKIAIOSFODNN7EXAMPLE/20130721/s3/aws4_request

    SigV4a 的区域在区域集标头 X-Amz-Region-Set 中定义。

有关 AWS 区域字符串的列表,请参阅《AWS General Reference》中的 Regional Endpoints

X-Amz-Region-Set

请求将在其中生效的区域集。标头 x-amz-region-set 被指定为逗号分隔值的列表。

X-Amz-Date

日期和时间格式必须遵循 ISO 8601 标准,并且必须按照 yyyyMMddTHHmmssZ 格式进行格式化。例如,如果日期和时间是“08/01/2016 15:32:41.982-700”,则必须先将其转换为 UTC(协调世界时),然后以“20160801T223241Z”形式提交。

X-Amz-Expires

提供生成的预签名 URL 的有效时间段(以秒为单位)。例如,86400(24 小时)。该值是一个整数。您可以设置的最小值为 1,最大值为 604800(七天)。预签名 URL 的有效期长达七天,因为您在签名计算中使用的签名密钥的有效期最长为七天。

X-Amz-SignedHeaders

列出用于计算签名的标头。签名计算中需要以下标头:

  • HTTP 主机标头。

  • 您计划添加到请求的任何 x-amz-* 标头。

  • 对于 SigV4a,需要使用 X-Amz-Region-Set 来指定可以发出请求的区域。

为了提高安全性,您应该签署计划在请求中包含的所有请求标头。

X-Amz-Signature

提供签名以验证您的请求。该签名必须与服务计算的签名相匹配;否则服务会拒绝该请求。例如,733255ef022bec3f2a8701cd61d4b371f3f28c9f193a1f02279211d48d5193d7

以下部分将介绍签名计算:

X-Amz-Security-Token

如果使用来自 STS 服务的凭证,则为可选凭证参数。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。