我想使用Amazon SimpleDB为我的iPhone应用程序存储数据。不同的用户将拥有同一域中的项目。我希望用户能够删除自己的项目,但不能删除彼此的项目,并在服务器端强制执行此限制。
我希望使用匿名TVM。
最好的方法是什么?
使用IAM用户管理,您可以为每个用户或组创建一个自定义策略,以允许或拒绝访问SimpleDB中的删除项目。如果每个用户都有自己的域,则可以使用arn格式arn:aws:sdb:<region>:<account_ID>:domain/<domain_name>
来限制对该域的访问
我认为您不能使用IAM——您似乎说您有一个存储所有用户数据的域。
实现您想要的东西的一种方法是使用基于用户的物品名称前缀,例如,用户jimsmith会将所有物品存储在带有"jimsmitch"或某些随机字符串的物品名称下,该字符串是jimsmitth独有的(可以存储在某个地方)。
然后你负责安全,所以你不能让手机直接查询AWS——他们需要与负责安全的中介服务器通话。你必须假设人们可以在越狱的手机上运行该应用程序,并进行反编译等。
不过,您可以使用IAM将单个用户限制为S3存储桶的一小部分。然后,您可以使用自己设计的服务器应用程序对bucket进行索引。然后,DB可以用于您自己的代码的搜索目的,因此iPhone只处理S3。
根据我的研究,simpleDB用户权限策略并不是以你提议的方式使用的(意味着应用程序的用户数量未公开),处理这一问题的方法可能是在中间使用一些服务器应用程序,如这里所建议的:移动应用程序和simpleDB直接';访问策略';