我开发了一个React Native应用程序,并使用AWS Amplify支持后端(DynamoDB,S3)。该应用程序的所有用户都必须使用Auth.signIn()进行登录,并且属于用户池。
一旦进入,他们就可以开始通过该应用将视频上传到S3或在应用中查看 PUBLIC 的S3存储桶中的视频。
我将S3视频(https://myS3bucket...。)的路径用作视频的源URL。但是,只有在存储桶公开时,这些视频才在我的应用中可见。其他任何设置(受保护/私有),都看不到视频。我该如何使其更加安全?
答案 0 :(得分:0)
S3存储桶具有3种管理安全性的方法:
通常建议不要使用S3 ACL,因为它们的功能通过S3存储桶策略得到了改进。仅在需要特定对象具有不同权限集的情况下使用它们。
答案 1 :(得分:0)
如果您希望经过身份验证的用户上传和/或下载文件,则我不建议公开文件或存储桶。为此,使用S3 signed URLs授予用户访问文件的权限。换句话说,后端将相应地对用户进行身份验证,生成用户签名的URL,然后react native应用将相应地解释该URL,即视频文件。
您将需要更改一些内容,但是this guide应该涵盖
答案 2 :(得分:0)
我最近发表了一篇文章,详细描述了安全最佳实践,有助于解决以下几点:
要了解更多信息have a look at the article。
最好的, 斯蒂芬