我正在开发一个React Native应用程序,用户可以将文件上传到Amazon S3并稍后检索它们。我现在最关心的是如何以只有文件的OWNER可以访问它的方式实现这种机制。
我的第一个想法是实现一个中间服务器来控制对Amazon S3服务器的所有访问,但这需要大量的时间/工作才能使服务器安全。
我的第二个想法是为每个新用户创建一个IAM令牌,并创建具有正确权限的文件夹,只有该文件夹的所有者才能访问它。但是,研究亚马逊IAM服务的局限性,我发现每个AWS账户的最大IAM账户数是5000。
对于这种情况,有没有比第一种方法更好的方法?如果没有,必须做些什么来使服务器安全并保持Amazon S3上的文件安全?
答案 0 :(得分:1)
你可以在这篇文章中发表https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html
有效地你可以用文件名(s3键)作为用户id和写s3策略的前缀,让用户只能访问(读或写)具有用户ID的文件(某处有s3策略,我无法找到它现在,只需搜索它)
亚马逊IAM服务的限制
您可以使用AWS Cognito对IAM限制以外的用户进行身份验证,并为用户存储设置公共策略
答案 1 :(得分:0)
来自IAM FAQs:
问:我可以创建多少个IAM角色?您仅限1,000个IAM角色 在您的AWS账户下。
如果您需要更多角色,请在您的用例中提交IAM limit increase request表单,我们会考虑您的 请求。
也不确定您的用例是什么,但S3也支持临时signed URLs。