You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Cognito特定群组分配管理员级别的访问权限?

实现Cognito特定群组的管理员级访问权限

你之前通过aws:userid指定单个用户的方式既不符合群组权限需求,也无法正常生效,以下是两种可行的实现方案:

方案一:通过IAM策略基于Cognito群组上下文限制权限

当用户通过Cognito身份池获取临时凭证时,Cognito会将用户所属群组信息注入凭证的上下文变量中,你可以在IAM策略中使用cognito:groups上下文键设置权限条件:

{
    "Sid": "AllowAdminGroupFullAccess",
    "Effect": "Allow",
    "Action": "cognito-idp:*",
    "Resource": "arn:aws:cognito-idp:us-east-1:767397735342:userpool/us-east-1_zIho5p9ue",
    "Condition": {
        "StringEquals": {
            "cognito:groups": "你的管理员群组名称"
        }
    }
}

注意:该策略需要附加到用户通过Cognito身份池获取的角色上,cognito:groups上下文键仅存在于Cognito身份池生成的临时凭证中,直接附加到IAM用户角色无效。

方案二:为管理员群组单独映射IAM角色

这是更清晰的权限隔离方式,步骤如下:

  • 进入Cognito身份池控制台,找到「身份验证提供商」下的Cognito配置
  • 启用「使用角色映射」,添加规则:当用户属于指定管理员群组时,映射到拥有Cognito全权限的IAM角色
  • 给该映射角色附加允许cognito-idp:*操作的策略,无需额外条件判断,仅该群组用户会获取到对应权限的凭证

原策略失效原因

你之前的策略无法生效的核心问题:

  1. aws:userid对应的是IAM用户ID,而非Cognito用户池中的用户ID,两者格式完全不匹配
  2. 若直接给IAM角色附加该策略,Cognito用户的临时凭证aws:userid格式为CognitoIdentityPoolId:CognitoUserId,和你填写的纯Cognito用户ID无法匹配

内容的提问来源于stack exchange,提问作者Muhammad Umar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 06:27:35