检查 CognitoUser 是否有特定权限

Check whether CognitoUser has specific permission

我正在尝试在我的网络应用程序上设置受保护的路由。为此,我在我的用户池中创建了一个组 Admins。我已将此组分配给 WebappAdmins 角色,其中包含自定义策略:

{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Action": "webapp:*",
        "Resource": "*"
    }]
}

如何从 webapp 中辨别登录的 CognitoUser 是否具有 webapp:ViewUploadDocumentsPage 权限?由于属于 Admins 组的所有 CognitoUsers 都具有 webapp:* 权限,因此如果我没记错的话,他们应该具有 webapp:ViewUploadDocumentsPage 权限。我知道验证他们对 webapp 的权限是不安全的,而且这无关紧要,因为我计划向 WebappAdmins 角色添加特定的 lambda 权限,以防止其他用户造成任何实际伤害。

我期待某种端点,我可以代表 CognitoUser 向其发出经过身份验证的 post 请求,并将 webapp:ViewUploadDocumentsPage 传入正文。我在广泛的研究中没有发现任何暗示这一点的东西,所以我认为我错了。

我能否创建一个 API 网关,其授权方仅接受来自具有 webapp:ViewUploadDocumentsPage 权限的 CognitoUser 的请求?我真的不确定该怎么做。

与其验证用户拥有哪些 IAM 权限,不如仅检查用户所在的组不是更简单吗?如果用户在 Admins 组中,那么您就知道他们拥有您感兴趣的权限。您可以通过多种方式获得用户的组成员资格,具体取决于您使用的语言和要进行检查的位置。