0

我正在尝试使用来自 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,secretAccessKeysessionToken. 但是,代码甚至没有达到这一点。

4

0 回答 0