2017-08-31 53 views
1

使用适用于JavaScript的AWS开发工具包我想使用假定角色的默认配置文件。它适用于本机AWS Cli,但使用带aws-sdk的node.js不承担该角色,但仅对访问密钥所属的AWS账户使用凭据。 我发现这个文档,但它不涉及假设角色:http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-shared.html使用在aws-sdk中担任角色的配置文件

任何提示?

这是我的配置文件:

[default] 
role_arn = arn:aws:iam::123456789:role/Developer 
source_profile = default 
output = json 
region = us-east-1 
+0

你有没有找到一个答案? –

+0

不,我看到使用Python和Boto3 SDK的相同问题。 –

+1

据我所知,node.js客户端不会自动承担角色。如果你想承担这些角色,你必须手动完成。 –

回答

1

CLI和SDK的工作方式不同,在使用SDK时,你必须明确地承担该角色。 CLI不会像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 
    }); 
    } 
}); 
相关问题