1

Vous penseriez que deux des produits d'Amazone s'intégreraient bien ensemble. Vous penserez également que Amazon aurait une documentation appropriée sur leurs services. Les deux sont horriblement faux. J'utilise Account Linking avec Alexa et j'utilise AWS Cognito comme fournisseur oauth. Je suis capable de lier correctement mon compte, et à chaque invocation alexa suivante, je reçois un jeton d'accès qui me revient. Maintenant quoi?Lien de compte d'Alexa avec Cognito

Je dois pouvoir accéder à d'autres services AWS tels que dynamo, lambda et iot depuis ma fonction alexa lambda. Pensé qu'il serait aussi facile que quelque chose comme ceci:

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); 
    } 
}); 

Mais bien sûr, ce n'est pas si simple. Quelqu'un peut m'aider?

+0

ce même problème rencontré. Avez-vous déjà trouvé une solution? – Panda

Répondre

0

Vous devez affecter des "stratégies" appropriées au "rôle" créé sous IAM. Tous les services AWS fonctionnent sur des autorisations d'accès basées sur une stratégie et ceux-ci doivent être explicitement attachés au rôle IAM pour que ce rôle puisse accéder/exécuter le service sous-jacent au nom de ce rôle d'utilisateur.

En résumé, vous devez affecter les politiques de IAM liées à "IOT", "DynamoDB", "Lambda", etc.