【问题标题】:What is a secure way to store and access private S3 objects from mobile applications?从移动应用程序存储和访问私有 S3 对象的安全方法是什么?
【发布时间】:2013-12-14 08:40:36
【问题描述】:

我想创建一个移动应用程序,用户可以在其中上传文件并与同一用户组中的其他用户共享/查看它们。上传的文件应该存储在亚马逊的 S3 中。 由于我是 AWS 新手,我想知道处理存储和安全性的最佳方法是什么。对不起,这个相当笼统的问题。

在移动应用程序和 S3 之间会在 EC2 上运行一个 web 服务,它应该处理用户组管理、登录等。

关于存储,您会建议为每个用户组创建一个存储桶(期望非常多的 ob 组)还是将所有用户组的所有对象放在一个存储桶中?

根据上述情况,您将如何处理授权,同一组中的每个用户都应该能够上传和检索其用户组的文件?我应该如何让每个用户的移动应用程序下载他或她有权查看的文件,这需要什么?

webservice 应该处理所有这些,处理授权,创建存储桶和用户组,但是安全/授权架构应该是什么样的呢?

感谢您的任何提示。 AWS 文档很大,我不知道从哪里开始,但如果您能指出我很高兴阅读材料。

【问题讨论】:

  • 这个问题以一种或另一种形式一次又一次地出现。 Sanket 有一个很好的答案:如果您需要任何特定于应用程序的行为,请将您的代码放在用户和 S3 之间(可能在 EC2 实例中),如果他或她应该有权访问,则将用户重定向到临时签名的 URL。

标签: security amazon-web-services amazon-s3 authorization


【解决方案1】:

我认为最好的方法是将 S3 视为一个简单的系统。

让您的所有身份验证/访问等保留在将在您的 EC2 上运行的业务逻辑中。

将与用户相关的 S3 对象的对象名称(也称为文件名)存储在数据库 (RDS) 中

现在,一旦您请求向用户显示文件,您可以执行以下操作之一:

  1. 从 S3 检索文件并将其发送给用户。

  1. 创建一个临时访问签名 URL 并将其推送给用户。

BR, 卫生巾

【讨论】:

  • 感谢您的意见。是的,实际上最好将这种处理保留在应用程序逻辑中,而不是让基础设施来处理。
  • 是的。此外,对于 S3 对象,您可以根据一些静态参数(例如,另一个 S3 存储桶、另一个 AWS 账户等)设置永久访问规则。加上添加规则是一项繁琐的任务。
猜你喜欢
  • 2018-02-23
  • 2020-09-26
  • 2017-12-25
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
  • 1970-01-01
  • 2020-01-14
  • 2015-07-24
相关资源
最近更新 更多