2017-08-31 12 views
1

JavaScript用AWS SDKを使用する私は役割を担うデフォルトプロファイルを使用したいと思います。ネイティブのAWS Cliでは完璧に機能しますが、node.jsとaws-sdkを使用すると、その役割は引き継ぎませんが、アクセスキーが属するAWSアカウントへの認証情報のみを使用します。 このドキュメントは見つかりましたが、役割を引き受けることはありません。http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-shared.htmlaws-sdk(AWS JavaScript 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を使用しているときに明示的役割を引き受ける必要がで。 SDKは、CLIのようにconfigから自動的にその役割を引き継ぐわけではありません。

ロールを想定した後、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 
    }); 
    } 
}); 
関連する問題