Amazon web services 授权访问特定资源

Amazon web services 授权访问特定资源,amazon-web-services,aws-lambda,aws-api-gateway,amazon-cognito,Amazon Web Services,Aws Lambda,Aws Api Gateway,Amazon Cognito,我正在尝试使用AWSAPI网关构建一个RESTAPI,该网关调用一组Lambda函数 我现在已经设置了API网关,使用Cognito用户池作为授权者,但真正做的只是验证用户,因为我已经将用户池连接到所有端点。我无法弄清楚如何在某些端点上特别允许某些方法 例如,如果我的用户是123并且属于组ABC,我只希望他们能够GET/users?group=ABC或PATCH/users/123 是否有可能实现这种级别的控制,或者我是否需要在API网关调用的Lambda函数中实现这些检查?当然,是的,您可以做

我正在尝试使用AWSAPI网关构建一个RESTAPI,该网关调用一组Lambda函数

我现在已经设置了API网关,使用Cognito用户池作为授权者,但真正做的只是验证用户,因为我已经将用户池连接到所有端点。我无法弄清楚如何在某些端点上特别允许某些方法

例如,如果我的用户是
123
并且属于组
ABC
,我只希望他们能够
GET/users?group=ABC
PATCH/users/123


是否有可能实现这种级别的控制,或者我是否需要在API网关调用的Lambda函数中实现这些检查?

当然,是的,您可以做到。这对你有帮助。。如果你被卡住了。。报复我


我正在开发一个类似的设置,我面临着完全相同的问题。我的团队无法找到解决方案,因此我们联系了AWS解决方案架构师。下面是他们解决这个问题的方法的摘要

不幸的是,对于这个特定的问题没有默认的内置解决方案。但是,您可以使用一些替代解决方案

  • 在Cognito用户池工作流期间,可以触发Lambda函数。您可以使用额外的Lambda函数通过检查用户组关系来授权用户。

  • 您可以使用API网关Lambda授权程序。在这种情况下,您必须放弃Cognito集成,并在authorizer Lambda中应用您的自定义授权逻辑。

  • 通过检查用户组关系,可以通过额外的查询在lambda函数中实现授权逻辑。您可以通过Lambda事件中的
    requestContext.authorizer.claims.*
    检查请求(Cognito)用户的身份


  • 希望这能有所帮助。

    我想这是我在这方面的新手,但我仍然不清楚两件事:如何确定哪些用户被授权使用哪些范围?在绑定到作用域的端点/方法中,根据路径/查询参数进行授权之间是否有区别?另外,我使用的是自定义身份验证,我想这无关紧要。@wizplum的评论有更新吗?我遇到了完全相同的问题,无法找到一种基于路径/查询参数限制cognito用户访问的方法。我也还没有找到这个方法