我开发了一个 SaaS 应用程序,创作者
可以在其中创建群组
并邀请其他人加入他们的群组
来共享文件、聊天等。只有特定组内的人员才能访问该组的文件。
其他组的人员不得访问非其组的文件。
当然,所有文件权限都应设置为“私有(private)”,即互联网的匿名用户不应搜索/可见/访问它们,因为这些文件中的信息仅供个人使用。
我是 Amazon S3 新手,不知道如何实现它...我应该只创建 1 个主存储桶吗?或者为每个组创建一个新的亚马逊存储桶?
最佳答案
不建议使用 AWS Identity and Access Management (IAM) 来存储应用程序用户。应用程序用户应保存在单独的数据库(或 LDAP、Active Directory 等)中。
因此,创建“每个组一个存储桶”是不可行的,因为无法为您的应用程序用户分配 Amazon S3 内的权限。
更好的方法是管理应用程序中的权限。当用户请求访问文件时,应用程序可以确定是否应该允许他们访问。如果允许,应用程序可以生成预签名 URL。
预签名 URL 允许访问存储在 Amazon S3 上的私有(private)对象。它是一种保证对象安全的方法,同时授予对特定对象的临时访问权限。
列出可用文件时,您的应用程序将生成包含预签名 URL 的链接。然后,当用户单击该链接时,他们可以访问该文件。然后,经过一定时间(例如 10 分钟)后,该链接将不再起作用。因此,如果用户与其他人共享链接,该链接可能会超时。
关于ruby-on-rails-4 - 如何限制特定人员对 Amazon S3 文件的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30864909/