允许dynamodb只读用户的秘密密钥公开是错误的吗?
is it wrong to allow a secret key for dynamodb read only user to be made public?
所以我有一个dynamodb表,我已经使用iam控制台在一个对表具有只读访问权限的组中创建了一个用户。
在客户端javascript中拥有此用户私钥的问题是什么,因此我可以向表签署GET请求并使用ajax直接从表中拉?我的意思是,如果表中的所有信息都是公开的那么只读访问键是否已知就无关紧要了,不是吗?
我知道我可以设置一个令牌自动售货机,但我想知道对一个表的全部内容都是公开的只读访问,我可以绕过TVM而不关心暴露私钥吗?
这似乎是一个非常糟糕的主意。你应该在javascript和Dynamo之间实现一个webservice。这将提供一些好处:
- 您将对最终用户隐藏DB凭据
- 您可以控制服务器的CORS策略,以实际允许跨域请求
- 您可以控制验证请求是否来自有效用户,以便您应该将请求传递给Dynamo
- 你可以用一种最方便在javascript中使用的方式来格式化对客户端的响应
- 你可以在适当的时候引入响应缓存来进一步减少Dynamo上的读取
- 可以将数据库交互逻辑放在服务器上,这样更容易维护/改进和向客户端推出更改。
你可能成为DoS攻击的受害者,这将是一个痛苦的防御。
假设攻击者获得了您的密钥并开始发出大量的请求:您可能会消耗所有的读单元,这将给其他客户端带来问题。如果您取消该令牌,那么所有其他合法用户也会遇到问题。最后,如果您使用自动缩放功能,您可能会收到一大笔账单。
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- Angular ngRepeat:重复错误(尽管没有重复的密钥)
- 如何制作 hls.js在请求加密密钥时在请求标头中发送 cookie
- 如何使用tweetnacl-js使用密码加密密钥
- 在浏览器中存储私人加密密钥的最佳方式
- 密钥斗篷未知提供程序错误
- 更新失败,无法加载触发器.错误为“未捕获” 您必须使用 Parse.initialize 指定密钥
- 如何从插件/扩展中隐藏/保护客户端 javascript 中的会话/加密密钥
- xmlhttprequest获取加密密钥+html表单-我做错了什么
- 违反PRIMARY KEY约束无法插入重复的密钥错误
- 获取错误“;数据对于密钥大小来说太大”;使用Crypto Node.js
- ReplaceReducer导致意外的密钥错误
- 在Angular中使用解析客户端密钥会导致CORS错误
- 无法为Phonegap生成密钥获取keytool错误
- 用javascript测试错误的reCAPTCHA站点密钥
- 加密函数,即使使用错误的密钥,也总是解密为纯文本
- 允许dynamodb只读用户的秘密密钥公开是错误的吗?
- 为什么会出现错误:'不应使用重复的密钥推送路由'使用React Native中的NavigationSt
- Robotjs错误:指定的密钥代码无效
- Mongo放弃具有唯一字段的密钥错误:false