使用在aws-sdk中担任角色的配置文件
问题描述:
使用适用于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
答
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
});
}
});
你有没有找到一个答案? –
不,我看到使用Python和Boto3 SDK的相同问题。 –
据我所知,node.js客户端不会自动承担角色。如果你想承担这些角色,你必须手动完成。 –