是否允许将dynamodb只读用户的密钥公开?

时间:2013-04-02 17:11:16

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

所以我有一个dynamodb表,我已经使用iam控制台在一个只读访问该表的组中创建一个用户。

在客户端javascript中拥有此用户私钥有什么问题,所以我可以签署对表的GET请求并使用ajax直接从表中提取?我的意思是如果表格中的所有信息都是公开的,那么只知道只读访问密钥是否无关紧要?

我知道我可以设置一个令牌自动售货机,但我想知道只读访问一个表格,其全部内容是公开的,我是否可以绕过TVM而不关心公开私钥?

2 个答案:

答案 0 :(得分:1)

这实际上似乎是一个非常糟糕的主意。您应该在javascript和Dynamo之间实现web服务。这将带来一些好处:

  • 您将隐藏最终用户的数据库凭据
  • 您可以控制服务器的CORS策略以实际允许跨域请求
  • 您可以控制验证请求是否来自有效用户,以便您将请求传递给Dynamo
  • 您可以使用最方便在javascript中使用的方式格式化对客户端的响应
  • 如果适当,您可以引入响应缓存以进一步减少Dynamo上的读取
  • 您可以在服务器上放置数据库交互逻辑,以便更容易维护/改进,并将更改推广到客户端。

答案 1 :(得分:0)

你可能是DoS攻击的受害者,这将是一种难以防守的痛苦。

假设攻击者获取了您的密钥并开始发出大量请求:您可能会消耗所有读取单元,这会导致其他客户端出现问题。如果您取消该令牌,那么所有其他合法用户也会遇到问题。最后,如果你有自动缩放,你最终可能会收到巨额账单。