2017-08-31 56 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 
    }); 
    } 
}); 
相關問題