在开发环境中使用SQS和MFA以及临时STS凭证

时间:2017-03-09 03:17:04

标签: node.js aws-sdk aws-sts

我试图从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传递accessKeyIdsecretAccessKeysessionToken。但是,代码甚至没有达到这一点。

0 个答案:

没有答案