amazon-web-services - 允许临时访问 DynamoDB
问题描述
我有一个连接到 Elastic Beanstalk 服务器应用程序的客户端应用程序。我的一些用户需要注册。但是当注册表加载时,它需要从 DynamoDB 中获取一些数据,以便用户可以在几个选项之间进行选择。
问题是我设置我的服务器的方式是,对服务器的任何未经身份验证的请求(客户端应用程序以前从 Cognito 获得的没有身份验证令牌)都会被拒绝。当然,如果一个人要注册,他们没有经过身份验证,这意味着他们无法从 DynamoDB 访问他们需要注册的信息。这只是我需要的几条信息,所以非常令人沮丧。
我想过如何解决这个问题:
当仅对我需要的几条信息发出请求时,将一长串字符放入发送到服务器的客户端应用程序中。服务器还将相同的字符串存储在某处,然后将它们进行比较。如果它们匹配,则返回请求的信息。正如我所说,这只会针对我需要的两条信息进行,其他一切仍然是安全的。
在我的 API 中将两条路由公开,这些路由会导致我需要的信息(我知道,这是个坏主意)。
解决此问题的最佳方法是什么?
解决方案
假设您使用的是 cognito,还有一个匿名访客用户的概念,它可以分配自己的角色。
您可以将匿名访客用户视为普通的 cognito 用户(可以为其分配角色),但是您可以将其权限范围缩小到执行这些操作所需的最低限度。
或者使用选项 2,API 可以调用 Lambda,该 Lambda 将返回必要的信息,只需读取数据即可。您可能还想查看缓存结果,以避免 API 网关端点被滥用。
推荐阅读
- python - 从 sqlite 列表中提取信息
- c# - 从 ReadOnlySequence 解析 UTF8 字符串
- java - NullPointerException Inet6AddressImpl
- r - tsfeatures() 无意义错误(需要至少两个非 NA 值进行插值,但所有值都是非 NA)
- php - PHP $_FILES 为空,获取表单数据
- c# - 如何在 XmlElement.InnerXml 中获取 XmlElement?
- c - 可以在C中读取但不能写入proc文件
- javascript - Http 请求未到达 MVC 后端。没有错误说明原因
- python - 如何在 RxPY v3 中实现这个用例
- c++ - 使用 c++/openssl 使用密码解密文件