Javascript 允许dynamodb只读用户的密钥公开是错误的吗?

Javascript 允许dynamodb只读用户的密钥公开是错误的吗?,javascript,amazon-web-services,amazon-dynamodb,Javascript,Amazon Web Services,Amazon Dynamodb,因此,我有一个dynamodb表,我使用iam控制台在一个组中创建了一个对该表具有只读访问权限的用户 在客户端javascript中使用此用户私钥,这样我就可以对表中的GET请求进行签名,并使用ajax直接从表中提取,这有什么问题?我的意思是,如果表中的所有信息都是公开的,那么只读访问键是否已知并不重要,是吗 我知道我可以设置一台代币自动售货机,但我想知道是否可以对一个表进行只读访问,该表的全部内容都是公开的。我是否可以绕过TVM,而不关心公开私钥?您可能是DoS攻击的受害者,这将是一个很难防范

因此,我有一个dynamodb表,我使用iam控制台在一个组中创建了一个对该表具有只读访问权限的用户

在客户端javascript中使用此用户私钥,这样我就可以对表中的GET请求进行签名,并使用ajax直接从表中提取,这有什么问题?我的意思是,如果表中的所有信息都是公开的,那么只读访问键是否已知并不重要,是吗


我知道我可以设置一台代币自动售货机,但我想知道是否可以对一个表进行只读访问,该表的全部内容都是公开的。我是否可以绕过TVM,而不关心公开私钥?

您可能是DoS攻击的受害者,这将是一个很难防范的问题


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

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

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

感谢您的洞察力。使用具有12小时默认寿命的临时(即tvm生成的)密钥是否也可能出现这种情况?