【发布时间】:2020-05-04 02:16:40
【问题描述】:
我正在编写一个系统监控工具,它将使用 Lambda 定期收集用户指定端点上的指标,将结果存储在 Dynamo 中,然后允许用户通过一个反应应用程序获取指标,该应用程序将调用另一个 Lambda 实例来检索数据发电机。查询最终将针对分配给每个用户指定的监视器的 UID 进行,该 UID 将对日期时间和监视器 ID 的 GSI 进行查询。
我一直在寻找 Cognito 作为我的用户存储。我的目标是在监视器 UID 级别上定义权限,以允许用户只能访问他们的监视器。我正在考虑为每个监视器创建一个组,然后将其分配给创建用户。然后,该组将位于 Cognito 在登录时提供的 JWT 令牌中,该令牌将用于授权 Lambda 调用。
我的问题是:
- 如果创建了数千个监视器,这是一个可持续的模型吗 导致用户池中的数千个组?
- 如果用户可以访问数百个监视器,对于此用例,令牌大小是否存在过大的风险?
- 理论上我会遇到一个硬性或软性服务限制吗,比如说有数百个用户,每个用户都有几十个显示器?
- 最后,这是以预期的方式使用 Cognito 还是有更有效的方法来进行细粒度用户控制?
注意:我提出这个模型的主要原因是它是无状态的、细粒度的,不需要为每个查询进行权限查找,并且不需要单个记录具有授权意识.
【问题讨论】:
标签: node.js amazon-web-services aws-lambda amazon-dynamodb amazon-cognito