限制S3对象URL仅对网站上登录的用户开放



我的网站有一些文件托管在AWS S3桶上,但我需要限制S3对象URL的访问权限,只有网站的登录用户。类似于谷歌硬盘的工作原理。这意味着任何试图访问S3存储桶上任何文件的url的人都需要在他或她能够访问之前登录到网站。

这可能吗?

感谢

如果您想限制对S3对象的访问,请不要将这些对象设为公共,也不要使用AWS S3控制台中显示的公共url。

S3提供了生成预签名url以下载S3对象的选项。因此,一旦用户登录到您的网站,当他们请求下载S3对象时,请向S3发出请求以生成此预签名URL。点击预签名的URL将下载对象。

使用预签名url,您可以配置额外的选项,如过期时间,使这些url更安全。

你可以在这里找到更多关于预签名url及其实现的信息。

如果您碰巧使用AWS Cognito进行登录/退出功能,您可以为登录用户分配IAM角色。

这样,当试图访问s3桶时,您可以使用IAM角色限制访问。

AWS Amplify将非常适合这个用例。

最新更新