首页 > 解决方案 > 可从经过身份验证的 URL 获得的 AWS 私有 S3 存储桶

问题描述

我目前在私有存储桶中使用预签名 URL/cookie,以便从前端应用程序向特定用户提供访问 URL。

从前面,用户单击一个按钮,该按钮对 API Gateway + lambda 进行 API 调用以生成文件(如果已经存在,则不生成文件),然后生成一个有效的预签名 URL,持续 60 秒。

我想做同样的事情:为私有存储桶中的文件提供安全的 URL 访问但没有过期延迟,因为接收者不再是用户而是 ERP。文件名永远不会改变,只有其中的数据,每个文件只能从一个 ERP 下载。

S3可以吗?

标签: amazon-web-servicessecurityamazon-s3

解决方案


仅使用 S3 无法做到这一点,签名 URL 必须具有固定的到期日期。这最多只能延长7 天

如果您想实现这一点,您将需要一个自定义应用程序执行此操作。

如果您通过DateLessThan条件使用 CloudFront,您可以设置更长的到期时间,从而允许您设置更远的将来。

或者,您可以创建自己的签名密钥,并将其存储在 DynamoDB 表中,并使用 API Gateway 应用程序触发 Lambda 来验证签名 URL,如果有效则返回 S3 的 cody 内容。


推荐阅读