首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过角度前端安全地从私有S3桶中检索资产

如何通过角度前端安全地从私有S3桶中检索资产
EN

Stack Overflow用户
提问于 2020-07-16 15:47:54
回答 1查看 971关注 0票数 0

我有一个场景,其中有一个应用程序可以将用户配置文件图像上传到AWS S3桶中。

  • 为了防止所有用户的概要文件图像(或任何其他桶内容)-桶是私有的,因此资产URL是不可公开访问的。
  • 在应用程序的角度前端,我需要检索用户配置文件图像。如果一个S3桶是可公开访问的,这是很简单的--只需指向这个URL。
  • 由于水桶是私有的,我想知道在前端检索这些图像的最佳方法。对于我的特殊用例,我将最佳定义为安全和高效的组合。
  • 出于安全考虑,显然我不希望在前端客户端中硬编码AWS凭据。
  • 通过高效地使用,我知道我可以设置一个后端代理,前端将调用这个代理--这个代理反过来将使用S3进行身份验证,并将请求的资产作为对前端的响应返回--但这会带来明显的开销。

考虑到我所提供的细节,我想知道解决上述问题的最佳方案/方法是什么?

更新:前端分别托管在自己的EC2上,与S3位于同一个S3帐户下。

EN

回答 1

Stack Overflow用户

发布于 2020-07-16 17:26:09

我会尝试解释两种可能的方法来实现这一点。

First,

因为您说的是“用户配置文件图像”--我假设用户已经登录了。因此,您可以通过“s3 web标识联合”访问文件。你可以使用认知,也可以直接做你自己。

示例示例这个示例应用程序使用web身份联合和Facebook登录来验证用户 -

注意IAM角色的资源部分

代码语言:javascript
复制
"Resource": [
    "arn:aws:s3:::YOUR_BUCKET_NAME/facebook-${graph.facebook.com:id}/*"
]

每个用户都有自己的文件文件夹,因此您可以安全地保存她的文件。

第二,

现在,选择一不是很简单。

简单的选择是,当您需要用户的配置文件映像时,您可以将API发送到基于Ec2的服务器到创建一个预先签名的URL

这里的问题是,url在您指定的时间之后过期,所以每次您必须创建它并将其发送到浏览器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62938533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档