Amazon web services 如何使用Cognito拒绝访问API网关上的端点

Amazon web services 如何使用Cognito拒绝访问API网关上的端点,amazon-web-services,jwt,authorization,aws-api-gateway,amazon-cognito,Amazon Web Services,Jwt,Authorization,Aws Api Gateway,Amazon Cognito,通过使用“拒绝”策略并将其附加到具有标识池的角色,是否可以使用Cognito创建特定于用户的权限 我有一个API,我想限制我的用户池中特定用户对某些端点的访问。我创建了以下策略: { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "execute-api:Invoke"

通过使用“拒绝”策略并将其附加到具有标识池的角色,是否可以使用Cognito创建特定于用户的权限

我有一个API,我想限制我的用户池中特定用户对某些端点的访问。我创建了以下策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "execute-api:Invoke"
            ],
            "Resource": [
                "arn:aws:execute-api:REGION:*:API_ID/*/*/*"
            ]
        }
    ]
}
然后,我将此策略附加到Web标识角色,并将此角色分配给我的用户池中的一个组。我将Cognito提供的身份令牌传递给Cognito授权者,不幸的是,即使这个组中的用户也可以访问端点


有没有一种方法可以仅使用Cognito提供的ID或访问令牌为API授予特定于用户的权限?如果没有,那么我该怎么办?

Cognito Authorizer with API Gateway(使用ID令牌),不会检查分配给用户的声明或IAM策略。如果在向API发出请求时传递ID令牌,则API网关仅检查ID令牌是否有效。 对于您的用例,您可以选择或使用。在Lambda authorizer中,您可以传递Cognito令牌,并基于组信息为特定请求生成允许或拒绝策略