0

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

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

我知道我可以设置一个令牌自动售货机,但我想知道对于一个全部内容都公开可用的表的只读访问权限,我可以绕过 TVM 而不关心公开私钥吗?

4

2 回答 2

1

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

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

您可能成为 DoS 攻击的受害者,防御起来会很痛苦。

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

于 2013-04-02T17:34:10.400 回答