处理签名版本 4 中的日期 - AWS 一般参考
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

处理签名版本 4 中的日期

您在凭证范围中使用的日期必须与您的请求的日期匹配。您可以用多种方法将日期包括在请求中。您可以使用 date 标头或 x-amz-date 标头,或者将 x-amz-date 作为查询参数包含在内。有关示例请求,请参阅完整签名版本 4 签名过程的示例 (Python)

时间戳必须采用 UTC 表示,并具有以下 ISO 8601 格式:你是不是 '嗯' 嗯 'Z'。例如,20150830T123600Z 是有效时间戳。请勿在时间戳中包含毫秒。

AWS 首先检查x-amz-date标头或参数。如果 AWS 无法找到x-amz-date,它会查找date标头。AWS 随后检查八位数字字符串形式的凭证范围,表示请求的年 (YYY)、月 (MM) 和日 (DD)。例如,如果x-amz-date标头值为20111015T080000Z,并且凭据范围的日期组成部分为20111015,AWS 允许身份验证过程继续进行。

如果日期不匹配,AWS 将拒绝请求,即使时间戳距离凭证范围中的日期仅有数秒之差也是如此。例如,AWS 将拒绝一个具有x-amz-date标头值20151014T235959Z和具有日期的凭据范围20151015