AWS Cognito 身份池的 Web 界面不保存经过身份验证的提供商角色选择的更改

Web Interface for AWS Cognito Identity Pool Not Saving Changes For Authenticated Provider Role Selection

在 AWS Cognito 的身份池中,我试图让用户根据他们在用户池中所属的组承担 IAM 角色。每当我 select Edit Identity Pool > Authentication Providers > "Choose Role From Token" 然后单击保存更改时,我会在屏幕顶部看到一条横幅,提示更改已成功保存,但如果我返回并查看他们已将设置返回到“使用默认角色”而不是“从令牌中选择角色”。这是一个错误,我是否在无效选项或其他潜在问题中配置了错误? Here is an image of what settings I select and want to take effect Here is the state that it currently is and what it returns to after I press save changes

我确信这一定是 AWS Web 控制台的错误,而不是我自己的错。在尽可能多地解决问题后,我设置了 AWS CLI 并从那里 运行 必要的命令,并且它在第一次尝试时就成功了。重新访问 AWS Web 控制台中的页面后,更改已正确反映,我的身份验证现在可以正常工作。

我遇到了与 UI 相同的问题,感谢 post,我尝试了 CLI。

identity_roles.json

    {
"IdentityPoolId": "us-east-1:pool_id",
"Roles": {
    "unauthenticated": "arn:aws:iam::account_id:role/UnAuthDefaultRole",
    "authenticated": "arn:aws:iam::account_id:role/AuthDefaultRole"
},
"RoleMappings": {
    "cognito-idp.us-east-1.amazonaws.com/user-pool-id:app-id": {
        "Type": "Token",
        "AmbiguousRoleResolution": "AuthenticatedRole"
    }
}

}

aws cognito-identity get-identity-pool-roles --identity-pool-id us-east-1:identity_pool_id

aws cognito-identity set-identity-pool-roles --cli-input-json file://pwd/identity_roles.json

用于使用“从令牌中选择角色”选项设置身份池角色的 AWS CLI 命令

aws cognito-identity set-identity-pool-roles --identity-pool-id "IDENTITY POOL ID" --roles authenticated="Auth IAM Role ARN",unauthenticated="UnAuth IAM Role ARN" --role-mappings cognito-idp.<<AWS REGION>>.amazonaws.com/<<USER POOL ID>>:<< APP CLIENT ID>>="{Type="Token", AmbiguousRoleResolution="Deny"}"