CLI和SDK的工作方式不同,因为在使用SDK时必须明确承担角色。SDK不会像CLI一样自动从配置中承担角色。
担任角色后,必须使用新凭证更新AWS.config。
这对我有用:
var AWS = require('aws-sdk');AWS.config.region = 'us-east-1';var sts = new AWS.STS();sts.assumeRole({ RoleArn: 'arn:aws:iam::123456789:role/Developer', RoleSessionName: 'awssdk'}, function(err, data) { if (err) { // an error occurred console.log('Cannot assume role'); console.log(err, err.stack); } else { // successful response AWS.config.update({ accessKeyId: data.Credentials.AccessKeyId, secretAccessKey: data.Credentials.SecretAccessKey, sessionToken: data.Credentials.SessionToken }); }});


