亚马逊s3生成链接的最长到期时间是多少?

时间:2016-02-18 14:09:40

标签: java amazon-s3

我试图将截止日期设置为2100年,但它表示它无效。 或者有可能以某种方式使其成为永久性的吗?

1 个答案:

答案 0 :(得分:7)

对于使用S3签名版本2签名的URL,时间限制似乎是2038年Unix时代的结束,但对于签名版本4,限制为7天,因为V4中的签名密钥本身具有最长有效期为7天。

如果您不熟悉V2和V4之间的差异,区分它们的一种简单方法是V2网址包含&Expires=,而V4网址使用&X-Amz-Expires=

重要的是,如果您停用用于签署URL的IAM用户凭据(访问密钥/机密),则使用任一算法的签名都会立即失效...您应该在某些时候计划这样做,因为轮换凭证被认为是最佳做法(或者,如果不是这样,那么因为您的凭证有一天可能会被泄露,或者被怀疑已被泄露)。

因此,不应将S3对象的签名URL视为永久性。

如果不希望公开对象,则下一个最佳方法是为您的应用程序(或您控制的任何类型的HTTP端点)验证用户下载对象的权限(可能基于您的应用程序的cookie),然后生成一个短期签名的URL并返回重定向。浏览器应该立即关注它并获取对象,但不会缓存重定向,因为您已经指出原始网址应该用于后续请求,并使用302响应代码。

来自应用程序的HTTP响应中的值得注意的标题如下所示:

HTTP/1.1 302 Found
Location: https://...generated-signed-url-here...