AWS cognito的文档建议了有关IAM的所有角色。如何发挥我的应用程序(资源服务器)可以理解的有意义的作用?
答案 0 :(得分:3)
我在应用程序中广泛使用了AWS Cognito,我可以在这里尝试为您提供帮助。
使用Cognito,您所说的一切都是可能的。我相信您正在尝试找到一种模式,将您的应用程序角色映射到Cognito / AWS IAM角色。
可以将池中的所有Cognito用户隔离在不同的Cognito组下。文档在这里-> https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-user-groups.html
每个Cognito用户组都必须映射有相应的IAM角色(您可以自定义权限)。
现在,这些组需要与应用程序中的用户角色/组具有一对一的映射。
可以以两种不同的方式利用这些组。我们正在考虑具有UI层的设计模式(例如:AngularJS)-> AWS APi Gateway-> RestAPI(Lambda /作为Beanstalk / container / Ec2 / etc中的应用程序托管)
需要根据用户组显示UI控件。例如,超级管理员将以完全特权查看所有链接和菜单。但是对于普通的最终用户来说,有限的链接和菜单将是可见的。为了实现这一点,您可以使用AngularJS的某些插件(在您的情况下可能有所不同)来基于组信息控制UI的呈现。
通过将API网关的Authorizer配置设置为IAM / Cognito,可以引入一个授权层来保护API层。因此,在请求访问后端托管的API之前,API网关将检查所请求的用户组是否有权访问该API。
我希望这会有所帮助。
答案 1 :(得分:1)
不确定您的意思太多,但角色是用于访问AWS资源的。 Cognito可以与身份池一起使用,以向AWS资源授予临时凭证。这意味着您可以将服务器/ ec2实例放在配置了IAM身份验证的API网关后面,并在身份池中创建经过身份验证的角色,该角色允许对API GW进行HTTP调用。