亚马逊网络服务:RDS + Web服务与针对移动应用程序的DynamoDB API。什么是最简单/最安全的?

时间:2013-09-13 02:33:18

标签: web-services security authentication mobile amazon-web-services

我正在构建一个移动应用,需要一个我选择使用Amazon Web Services托管的后端 他们的移动SDK提供API以直接使用DynamoDB(使我的应用程序成为一个胖客户端),包括用户身份验证/授权与他们的IAM服务(我将用于跟踪用户)。这使得很容易说“用户X想要他们的信息。这是他们的临时访问密钥。哦,这是你要求的信息。”

但是,如果我使用RDS作为后端数据库,我必须创建我的应用可以与之交谈的Web服务(在PHP或Java /等中)。然后我还必须在我的Web服务中自己实现身份验证/授权(我觉得可能会非常混乱)。我还必须在EC2实例上托管Web服务,以及拥有RDS实例。所以我的成本会增加。

后者似乎需要做很多工作,我可以通过使用DynamoDB(及其API)作为我的后端来避免这种情况。

我的推理是否正确?或者有一种简单的方法来使用AWS RDS数据库验证/授权PHP Web服务吗? 我问,因为我之前只使用过关系数据库,所以会有一个学习曲线来运行NoSQL数据库。虽然假设我的计划是在未来的某个时候最终切换到NoSQL数据库,但由于我的应用程序需求不断增加。

旁注:我已经在MySQL中设计了数据库。

1 个答案:

答案 0 :(得分:0)

由于无法对RDS表进行细粒度访问控制,因此没有直接在RDS中使用IAM的解决方案。此外,IAM策略不能动态强制执行(即使用标识池)。 RDS是一种非托管服务,因此不作为SaaS端点提供。 DynamoDB是一种REST服务,呈现为分布式键值存储,并将端点公开给客户端(AWS SDK只是它们的包装器)。

DynamoDB作为分布式服务诞生,可以保证对数据访问的细粒度控制,从而允许并发访问。