DENY 策略不适用于具有特定角色的 Cognito 用户

时间:2021-05-03 06:46:37

标签: aws-api-gateway amazon-cognito amazon-iam

为了在我的 AWS API 网关中添加安全检查,我执行了以下操作:

  1. 我在我的 Amazon Cognito 用户池中创建了两个组:
  • 经理
  • basic_user
  1. 我并行创建了两个角色(manager 和 basic_user)。 manager 组映射到 manager 角色,basic_user 组映射到 basic_user 角色。

  2. 我创建了一个 IAM 策略来拒绝对 basic_user 用户的访问,用于特定端点 GET 机组经理,并将此策略附加到 basic_user 角色:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "execute-api:Invoke"
            ],
            "Resource": [
                "arn:aws:execute-api:us-east-2:<my_account_id>:<API_ID>/*/GET/crew-manager"
            ]
        }
    ]
}
  1. 从 Postman 那里,我向 GET /crew-manager 发出了使用 basic_user 的授权不记名令牌的请求。当我解码令牌时,我确认此令牌中的唯一角色是 basic_user。但是,响应仍然是 200,而不是类似未经授权的响应。

我做错了吗?

1 个答案:

答案 0 :(得分:1)

角色映射仅适用于 API 网关上的 AWS IAM 授权方。如果您使用的是 cognito 授权方,则必须在处理程序中进行授权检查或实施您自己的自定义授权方以返回适当的政策。

相关问题