如何将Amazon S3文件中的访问权限限制为特定人员?

时间:2015-06-16 10:23:21

标签: ruby-on-rails-4 amazon-s3

我在一个SaaS应用程序上工作,Creators可以创建Groups并邀请其他人加入Group 共享文件,聊天等。只有特定组中的人员才能访问该组的文件。 来自其他组的人员不得访问其组的文件。

当然,所有文件权限都应设置为“私有”,即Internet上的匿名用户不应搜索/可见/可访问这些文件,因为这些文件中的信息仅供个人使用。

我是Amazon S3的新手,不知道如何实现它......我应该只创建一个主存储桶吗?或者为每个组创建一个新的Amazon Bucket?

1 个答案:

答案 0 :(得分:2)

建议不要使用AWS 身份和访问管理(IAM)来存储应用程序用户。应将应用程序用户维护在单独的数据库(或LDAP,Active目录等)中。

因此,每组创建一个桶#34;这是不可行的,因为无法将您的应用程序用户分配给Amazon S3中的权限。

更好的方法是管理应用程序中的权限。当用户请求访问文件时,应用程序可以确定是否应允许他们访问。如果允许,则应用程序可以生成预签名网址

预签名网址允许访问存储在Amazon S3上的私有对象。它是一种保持对象安全的方法,同时允许临时访问特定对象。

列出可用文件时,您的应用程序将生成包含预签名URL的链接。然后,当用户单击该链接时,他们可以访问该文件。然后,在一段时间过期后(例如10分钟),链接将不再起作用。因此,如果用户与其他人共享链接,则可能会超时。

请参阅:Creating a pre-signed URL in Ruby