首页 > 解决方案 > Aws 错误无法从任何提供程序加载凭据

问题描述

我有一个节点服务,它使用 sts.assumeRole(params) 创建临时 AWS 凭证。如果我在环境中设置 accessKeyId,secretAccessKey,region。凭证生成成功。如果我将它们存储在 Mongo 中并阅读它们。我收到以下错误。

错误

Error Could not load credentials from any providers

Error region is missing

代码

const params = {
        RoleArn: `arn:aws:iam::${db.awsAccountId}:role/${db.awsRole}`,
        RoleSessionName: `Assumed-${db.awsRole}-Role-${timestamp}`,
        accessKeyId: db.accessId,
        secretAccessKey: db.accessToken,
        region: db.awsRegion,
      };

sts.assumeRole(params, (err, data) => {
    if(err) console.log(err);
    else console.log(data);
});

没看懂,按照同样的流程。有任何想法吗?

标签: node.jsmongodbamazon-web-servicesaws-sts

解决方案


您似乎错误地设置了 STS 服务的 AWS 凭证。您应该查看用户指南以获取完整说明。

设置凭据的方法有多种,因此请选择最适合您情况的方法。当您使用环境变量时,它们会自动获取,但如果您从其他地方读取它们,则必须创建一个Credentials对象并将其AWS.config手动添加到其中。

Credentials可以在此处AWS.config 此处找到有关该对象的更多信息。


推荐阅读