我想创建一个公共读取aws s3存储桶与一些文件读取受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?也许可以对匹配文件使用正则表达式?还是指定的文件夹?以便应用此读取限制。
提前感谢您的回复。
发布于 2019-05-28 07:20:40
默认情况下,亚马逊S3中的内容是私有。
因此,可以通过存储桶策略(整个存储桶或部分存储桶)或通过对象本身上的访问控制列表(ACL)公开访问您希望世界上所有人查看的任何内容。
要提供仅限特定用户使用的内容,请利用预签名URL。这些是有时间限制的URL,提供对亚马逊S3中私有对象的临时访问。它们很容易生成(不需要API调用)。
它的工作方式是:
当用户想要访问受限制的内容时,应用程序会authenticate你的application
<a>标记中使用这些URL来引用页面,并且images.
请参阅:Share an Object with Others - Amazon Simple Storage Service
(我不是Amplify的人,所以我不能说Amplify如何具体生成/使用预签名的URL。)
https://stackoverflow.com/questions/56289536
复制相似问题