小编Eli*_*Tov的帖子

如何限制 AWS Cognito 用户执行某些操作?

我们面临的以下问题需要帮助

任何提示将不胜感激!

细节和环境:

  1. 一个多租户应用程序,旨在为每个客户(组织)提供一个专用租户,以实现完全分离。
  2. AWS Cognito 用户池作为我用户的数据存储和身份验证提供商。
  3. 每个客户(组织)的“AWS Cognito用户池”
  4. 角色管理——基于内置的用户池组。按角色分组,服务器端验证用户的访问令牌是否在其嵌入的组列表中包含组名。

到目前为止一切顺利,一切都按预期工作,使用 AWS Amplify 的 SDK,用于客户端的实施。Amplify 表现良好,让我可以随心所欲。服务器验证组归属等。

问题:

我想限制非管理员用户(不属于“管理员”组)通过 Amplify 执行某些 Cognito 操作。2 例子:

  1. 我想通过 Amplify 禁用非管理员用户修改特定属性值的能力。
  2. 我想禁用非管理员用户通过 Amplify 为自己修改 MFA 设置的能力。

当我希望管理员能够为其他用户设置 MFA(启用/禁用)时,实际问题就开始了,但在 Cognito(据我所知)中,只有用户可以设置他自己的 MFA 设置。

我看到并已经尝试过的:

  1. 设置用户属性的读/写权限。因此,我想要保护的特定属性只能通过具有开发人员凭据的 API 调用进行修改。这样,管理员可以调用我的服务器要求修改属性。服务器根据访问令牌通过所属组验证角色并调用 Cognito API。该解决方案的问题在于它仅涵盖属性修改场景。
  2. 为每个用户池创建一个 AWS Cognito 身份池。对于每个用户池中的每个组,创建一个 AWS IAM 角色,其策略将限制或允许所需的行为。实际上可以工作。该解决方案的问题在于,它感觉像是一个超级骗子的矫枉过正,而且它需要我为每个用户池创建一个额外的身份池和一个 IAM 角色。这意味着加入该服务的每个新客户都需要 (1) 用户池、(2) Cognito 客户端应用程序、(3) 身份池和 (4) IAM 角色(而不仅仅是用户池和 Cognito 客户端应用程序)。本质上,实施此解决方案。

真正的问题:

我是否可以限制某个组中的用户对自己执行操作,例如禁用 MFA(即使用户池的 MFA 设置为“可选”)?

非常感谢大家!任何帮助,将不胜感激!

multi-tenant amazon-web-services amazon-iam amazon-cognito

10
推荐指数
1
解决办法
2625
查看次数

如何通过 API 检索 AWS RDS 数据库实例中的所有数据库的列表?

有没有办法通过 API 或 SDK(语言无关紧要)检索 AWS RDS 数据库实例中的所有数据库(或至少是数据库名称)的列表?

\n

“describe-db-instances”操作不能满足我的需求,因为它仅包含“创建时提供的该实例的初始数据库的名称”...\n找不到
任何内容在文档/网络
\xe2\x80\x8d\xe2\x99\x82\xef\xb8\x8f

\n

我想避免触发 SQL 查询并最大限度地利用 API。
\n我已经看到了这个SO 问题,但是它是特定于 Boto3 使用的,而我不限于任何特定的 AWS SDK。

\n

谢谢你们!

\n

amazon-web-services amazon-rds aws-sdk

5
推荐指数
1
解决办法
9594
查看次数