我试图从node.js应用程序中使用受MFA保护的SQS队列。
代码如下所示:
var sts = new AWS.STS(),
awsSerialNumber = process.env.AWS_MFA_SERIAL_NUMBER,
awsTokenCode = process.env.AWS_MFA_TOKEN;
sts.getSessionToken({
DurationSeconds: 13600,
SerialNumber: awsSerialNumber,
TokenCode: awsTokenCode
}, function (err, data) {
if (err) {
console.log('STS error:', err, err.stack);
return;
}
AWS.config.credentials = sts.credentialsFrom(data);
sqs = new AWS.SQS();
});
所以我将该流程称为
$ AWS_MFA_TOKEN=123456 npm start
但是,我收到以下错误:
{ message: 'The security token included in the request is expired',
code: 'ExpiredToken',
time: ...,
requestId: '...',
statusCode: 403,
retryable: true }
虽然令牌很新鲜。
我也试过AWS.config.update
传递accessKeyId
,secretAccessKey
和sessionToken
。但是,代码甚至没有达到这一点。