使用标识池(AWS Cognito)从标记中选择角色并使用lambda内的IdToken进行Dynamo Access

时间:2017-04-19 04:26:06

标签: lambda aws-cognito

所以我正在对Cognito用户池进行身份验证。后端Lambda需要具有临时secretKey和accessKey,以便它可以将请求者授权给Dynamo。 请求者或用户位于具有FullDynamoDBAccess的Cognito用户池中的组中。

我已选择在身份池中的Authenticated Role Section中选择Token Token。

但是当我试图获取临时访问详细信息时,它会抛出“配置中缺少凭据”错误[“InvalidIdentityPoolConfigurationException”]。 如果我将“选择角色从令牌”更改为“默认”,则错误消失。

        AWS.config.region = "****";
        AWS.config.credentials = new AWS.CognitoIdentityCredentials({
            IdentityPoolId: "*****",
            IdentityId: "****",
            Logins: {
                "***": event.id_token
            }
        });

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,并通过更改分配给Cognito用户池组的角色的信任策略来解决此问题。信任策略必须命名标识池。请参阅http://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html

答案 1 :(得分:0)

问题是登录:{' ***':令牌}

***必须无效......您需要使用以下内容: ' cognito-idp..amazonaws.com /'