如何限制每个用户的aws javascript dynamodb条目?

时间:2013-11-02 12:58:36

标签: javascript amazon-web-services amazon-dynamodb

使用amazon刚刚发布的javascript web sdk,什么是阻止用户(甚至在联合身份验证之后)滥用对数据库的访问?

例如,如何限制他们可以为字段提交的字符串的长度?

另外,如何限制他们为具有多行的表提交的条目数?或者在s3上,限制他们可以提交的文件数量或文件大小?

我可以想象如何在node.js实现中控制它,但似乎有人可以在客户端编写自己的脚本来规避规则。

编辑:只是为了澄清我们正在讨论的SDK:AWS SDK for JavaScript in the Browser

2 个答案:

答案 0 :(得分:0)

我建议这个问题的唯一好答案非常简单,即使你可能不喜欢它:“不要让他们直接访问资源”,紧接着是“不信任任何人”。您的服务凭据仅属于完全信任的实体,无论理论上授权的凭据是什么,所以我不确定您要保护谁。

您可以通过验证他们对应用程序服务器的请求并将请求发送到数据库或其他基础系统来限制他们可以提交的字段的大小 - 取决于请求是否有效。在堆栈的这一点上正确实现,无论客户端发生什么,这些限制都是不可能违反的,相反,任何假定客户端行为正确,可预测,合理且按预期行为的实现都是确实非常天真的实施。

控制此类事情是您的应用程序服务器的工作,通过您的 API接收客户端请求 - 您为应用程序设计的与客户端交互的API - 验证它们并发送调用到底层系统来满足它认为合法的请求。

答案 1 :(得分:0)

您可以使用IAM并为每个用户提供仅访问其记录的特定权限。

例如,您可以使用DynamoDB细粒度访问控制(http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/FGAC_DDB.html),当与Web身份一起使用时,可以提供对以其用户ID开头的记录的访问权限。在此处阅读更多内容:http://aws.typepad.com/aws/2013/10/fine-grained-access-control-for-amazon-dynamodb.html