【问题标题】:Forbid access to other users' files on Amazon S3禁止访问其他用户在 Amazon S3 上的文件
【发布时间】:2018-04-21 04:27:12
【问题描述】:

我正在开发一个 React Native 应用程序,用户可以在其中将文件上传到 Amazon S3,然后再检索它们。我现在最关心的是如何实现这个机制,只有文件的所有者才能访问它。

我的第一个想法是实现一个中间服务器来控制对 Amazon S3 服务器的所有访问,但这需要大量时间/工作来确保服务器安全。

我的第二个想法是为每个新用户创建一个 IAM 令牌,并创建具有正确权限的文件夹,只有文件夹的所有者才能访问它。但是研究了Amazon IAM服务的限制,我发现每个AWS账户的IAM账户的最大数量是5000。

对于这种情况,有没有比第一种更好的方法?如果不是,必须采取什么措施来确保服务器安全并确保 Amazon S3 上的文件安全?

【问题讨论】:

标签: amazon-web-services amazon-s3


【解决方案1】:

你可以在这个帖子https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html

实际上,您可以在文件名(s3 密钥)前加上用户 ID,并编写 s3 策略,让用户只访问(读取或写入)带有用户 ID 的文件(某处有这样的 s3 策略,我找不到它现在,只需搜索它)

Amazon IAM 服务的限制

您可以使用 AWS Cognito 在 IAM 限制之外对用户进行身份验证,并为用户存储制定通用策略

【讨论】:

  • 决定使用 AWS Cognito。可以很好地满足我的需求。
【解决方案2】:

来自IAM FAQs

问:我可以创建多少个 IAM 角色?您被限制为 1,000 个 IAM 角色 在您的 AWS 账户下。

如果您需要更多角色,请将 IAM limit increase request 表单与您的用例一起提交,我们会考虑您的 请求。

也不确定您的用例是什么,但 S3 也支持临时 signed URLs

【讨论】:

  • 感谢您的回答。签名 URL 不符合我的需求,因为我需要 1000 多个 IAM 角色。 Cognito 是要走的路。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-27
  • 1970-01-01
  • 2012-02-28
  • 2012-10-28
  • 2012-10-11
  • 2020-05-21
相关资源
最近更新 更多