为什么我的 Amazon S3 存储桶的预签名 URL 在我指定的过期时间前过期?

上次更新日期:2021 年 9 月 9 日

我使用临时令牌为 Amazon Simple Storage Service(Amazon S3)存储桶创建了预签名 URL。但是,此 URL 在我指定的过期时间之前过期。为什么会出现这种情况? 如何创建具有更长有效时间的预签名 URL?

解决方法

如果您使用临时令牌创建了预签名 URL,则该 URL 将在令牌过期时过期。即使 URL 的过期时间较晚,URL 也会过期。

可用于创建预签名 URL 的凭证包括:

  • AWS Identity and Access Management(IAM)实例配置文件:有效期长达 6 小时。
  • AWS Security Token Service(STS):在使用永久凭证(例如,AWS 账户根用户或 IAM 用户的凭证)签名时,有效期长达 36 小时。
  • IAM 用户:在使用 AWS 签名版本 4 时,有效期长达 7 天。

要创建有效期长达 7 天的预签名 URL,请先为所使用的开发工具包指定 IAM 用户凭证(访问密钥和秘密访问密钥)。然后,使用 AWS 签名版本 4 生成预签名 URL。有关示例,请参阅 AWS 签名版本 4 中的签名计算

要允许用户访问 Amazon S3 存储桶中超过 7 天的对象,请考虑使用以下选项之一: