首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保护公共存储桶中的一些文件/对象?

如何保护公共存储桶中的一些文件/对象?
EN

Stack Overflow用户
提问于 2019-05-24 17:20:16
回答 1查看 202关注 0票数 0

我想创建一个公共读取aws s3存储桶与一些文件读取受IAM角色限制。

首先:

  • 我使用amplify cli部署我的静态网站。
  • 网站是一个react应用程序
  • 此应用程序有公共页面/ react组件和管理区域
  • 我想用aws IAM角色

限制管理区域/管理页面/管理react组件<代码>F211

更多细节:

react应用程序非常大,所以我使用像const Dashboard = asyncComponent(() => import('./pages/Dashboard'))这样的asyncComponent功能拆分组件,所以当我构建应用程序时,只有一个大文件,我有几个小文件。所有这些文件都在同一个存储桶中。

现在我想建立管理页面。总是使用asyncComponent,我们得到了一个«Admin»文件的集合,这些文件托管在同一个存储桶上。但是出于安全原因,我想限制对具有特定IAM角色的经过身份验证的用户的访问(例如AdminRole)。

我阅读了很多来自amplify config或来自cloudFormation的AWS::S3::Bucket的文档,我看到了不同的东西,它们告诉我这是可能的,但我对这个文档非常迷惑。

所以最后我问:

如何使用IAM角色保护s3存储桶中的某些文件/对象的读访问权限?

如何在react应用程序中«标记管理组件?还是通过amplify?也许可以对匹配文件使用正则表达式?还是指定的文件夹?以便应用此读取限制。

提前感谢您的回复。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-28 07:20:40

默认情况下,亚马逊S3中的内容是私有

因此,可以通过存储桶策略(整个存储桶或部分存储桶)或通过对象本身上的访问控制列表(ACL)公开访问您希望世界上所有人查看的任何内容。

要提供仅限特定用户使用的内容,请利用预签名URL。这些是有时间限制的URL,提供对亚马逊S3中私有对象的临时访问。它们很容易生成(不需要API调用)。

它的工作方式是:

当用户想要访问受限制的内容时,应用程序会authenticate你的application

  • When,应用程序会决定他们是否被允许访问,应用程序会生成一个预先签名的。还可以在images.

  • Users和<a>标记中使用这些URL来引用页面,并且images.

  • Users将像正常的web components

  • Once一样接收/查看内容expiry 已过,预签名的URL将不再有效

请参阅:Share an Object with Others - Amazon Simple Storage Service

(我不是Amplify的人,所以我不能说Amplify如何具体生成/使用预签名的URL。)

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

https://stackoverflow.com/questions/56289536

复制
相关文章

相似问题

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