我们正在从Nirvanix迁移 到 Amazon S3。
我需要的是模拟 Nirvanix 样式的子帐户用于 S3 存储。
(简而言之,它们提供了具有预定义限制的隔离存储,并为每个子用户提供了单独的身份验证,仍然由同一个主帐户管理)。
我们将拥有超过 100 个用户,因此每个用户的存储桶将不起作用(仍然限制在 100 个对吗?)。
存储直接从桌面应用程序使用(而不是,例如,通过我们的服务器,尽管有一个中央服务器,如果有帮助的话)。
我们想要一个单一的 S3 计费帐户来支付所有费用,但我们希望我们的客户对象彼此安全地分开。
Nirvanix 提供了开箱即用的功能(http://developer.nirvanix.com/sitefiles/1000/API.html#_TocCreatingChildAccounts)——这基本上是我试图用 S3 复制的内容。
我了解如何为每个子用户分割对象,例如使用对象的“前缀”表示法(例如“USER1/object1”、“USER2/something_else”)。
我无法解决的问题:
1)如何设置权限,让每个客户只能访问他的文件?
如果我让“应用程序”访问 S3 存储,那显然意味着应用程序的每个用户都可以访问任何人的文件。
似乎您可以设置丰富的 ACL,但我无法理解的是您可以设置权限的“谁”。只有 AWS 用户吗?这是否意味着这样做的唯一方法是让我的每个客户都有一个 AWS 账户?
如果是这样,我可以代表他们创建帐户吗?例如通过 API 调用?
我们当然不能允许每个用户都通过 AWS 网站创建一个帐户(糟糕!)。
2)关于为每个客户管理配额的最佳方式有什么想法吗?
这让我很担心,因为据我所知,我们必须从桌面应用程序中限制这一点。这显然是滥用的时机,因为 S3 将继续允许更多数据。
我想我们可能可以忍受每天运行一个脚本来检查“滥用”的存储限制,但只是想知道是否有更好的方法。
谢谢大家!
约翰