1

你会认为亚马逊的两款产品会很好地结合在一起。你也会认为亚马逊会有适当的文件记录他们的服务。两者都是可怕的错误。Alexa帐号与Cognito链接

我正在使用帐户与Alexa链接并使用AWS Cognito作为我的oauth提供程序。我能够成功链接我的帐户,并且随后的每个alexa调用都会将访问令牌返回给我。怎么办?

我需要能够从我的alexa lambda函数访问其他AWS服务,例如dynamo,lambda和iot。以为会因为这样的事情一样容易:

var accessToken = event.session.user.accessToken; 
var params = { 
    IdentityPoolId: "{identity_pool_id}", 
    Logins : { 
     'cognito-idp.us-east-1.amazonaws.com/{user_pool_id}' : accessToken 
    } 
}; 

AWS.config.region = 'us-east-1'; 
AWS.config.credentials = new AWS.CognitoIdentityCredentials(params); 
    AWS.config.credentials.get(function(err) { 
    if (err) { 
     console.log(err); 
    } else { 
     console.log('success'); 
     console.log("Cognito Identity Id: " + AWS.config.credentials.identityId); 
    } 
}); 

但是,当然,它不是那么简单。谁能帮我吗?

+0

遇到这种相同的问题。你有没有找到解决方案? – Panda

回答

0

您需要为IAM下创建的“角色”分配适当的“策略”。所有AWS服务都基于策略的访问权限,并且必须使用IAM角色明确附加这些角色,以便该角色能够代表该用户角色访问/运行底层服务。

总之,你需要从分配政策IAM与“物联网”,“DynamoDB”,“拉姆达”等