UnrecognizedClientException:调用 AWS.SecretsManager 时,请求中包含的安全令牌无效

Imr*_*qvi 6 loopback node.js aws-sdk aws-secrets-manager

我正在实施 AWS ClientManager 来获取 AWS 中保存的秘密变量。我的初步实现如下:

// Load the AWS SDK
var AWS = require('aws-sdk'),
    region = "us-west-2",
    secretName = "secretName",
    accessKeyId = myAccessKey,
    secretAccessKey = mySecretAccessKey,
    secret,
    decodedBinarySecret;

var client = new AWS.SecretsManager({
    region: region,
});

client.getSecretValue({SecretId: secretName}, function(err, data) {
    if (err) {
      console.log("Error Happened");
      console.log(err);
    }
    else {
        if ('SecretString' in data) {
            secret = data.SecretString;
        } else {
            let buff = new Buffer(data.SecretBinary, 'base64');
            decodedBinarySecret = buff.toString('ascii');
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

当我启动服务器时,它抛出以下异常

{ UnrecognizedClientException:请求中包含的安全令牌无效。message: '请求中包含的安全令牌无效。', code: 'UnrecognizedClientException', time: 2019-07-01T12:16:00.021Z, requestId: 'c7ed53c1-fb70-4012-aa9f-5a9a3195a043', statusCode: 400,可重试:假,重试延迟:40.923844792180674 }

Joe*_*oeB 14

“请求中包含的安全令牌无效”错误几乎总是意味着您的凭据有问题。accessKeyId 或 SecretAccessKey(或两者)均错误。

在代码中使用凭证之前,您可以尝试使用 AWS cli 使用STS 获取调用者身份调用来验证您的凭证。