如何修复AWS Cognito的InvalidIdentityPoolConfigurationException错误
修复AWS Cognito身份池配置错误(InvalidIdentityPoolConfigurationException)
这个错误源于身份池关联的IAM角色配置不符合要求,或是角色与身份池的信任关系配置出错,按以下步骤排查修复:
检查身份池的角色分配
进入AWS控制台的Cognito服务,找到目标身份池,切换到“身份池设置”标签,确认“认证角色”和“未认证角色”已正确指定对应的IAM角色。如果不需要未认证访问,可直接禁用,但启用状态下必须分配角色。验证IAM角色的信任策略
进入IAM控制台,找到身份池关联的认证/未认证角色,查看“信任关系”配置:- 必须允许Cognito身份池服务扮演该角色,正确的信任策略示例如下(替换占位符为实际值):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "你的身份池ID" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" // 未认证角色替换为"unauthenticated" } } } ] }- 注意认证角色的
amr值是authenticated,未认证角色要改成unauthenticated,同时替换你的身份池ID为实际的身份池ID。
核对Facebook身份提供者配置
回到Cognito身份池的“身份提供者”标签,确认Facebook配置无误:- 已填写正确的Facebook应用ID
- Facebook开发者后台已配置正确的OAuth重定向URI(需指向Cognito域名或你的应用回调地址)
- Facebook应用已启用Facebook登录产品,权限设置符合需求
检查角色权限策略(可选)
若角色的权限策略存在语法错误或无效配置,也可能间接触发问题,可确认权限策略的JSON格式正确,无语法错误。确认区域匹配
你调用的是us-east-1区域的API,需确保身份池确实创建在us-east-1区域,避免跨区域调用导致的配置不匹配。
内容的提问来源于stack exchange,提问作者shan2batman
相关产品推荐
相关产品推荐

