AWS-SDK for NodeJS:如何获取在程序中使用的凭证

3

我在代码中通过以下方式访问AWS SDK及其服务:

var aws = require('aws-sdk');
const s3 = new aws.S3();

我希望在初始化S3对象时能够查看凭据的获取情况。我尝试了以下方法,很明显我无法从文档中弄清楚如何正确使用这些方法和类。

var credo = aws.config.Credentials().get();
var credo = aws.config.Credentials;
var credo = aws.config.credentials;
var credo = aws.Credentials().get();
var credo = aws.Credentials();
var credo = aws.Credentials;

有人能告诉我获取这些数据的正确方法吗?我发现AWS文档对此部分不易理解。

编辑:我可以使用aws.config.update({accessKeyId: 'xxx', secretAccessKey: 'yyy', sessionToken:'zzz'在代码中更新凭证。

当我不像这样设置它们时,我想看看这些值是什么。进程环境变量未设置。我的凭证文件已正确设置。

3个回答

7
你可以从 aws.config.credentials 获取全局配置的凭证。
获取 accessKeyId:
var accessKeyId = aws.config.credentials.accessKeyId;

获取secretAccessKey:

var secretAccessKey = aws.config.credentials.secretAccessKey;

0

对于现代的NodeJS,推荐使用awaits:

var AWS = require('aws-sdk');

async function main() {
  AWS.config.credentials = new AWS.TemporaryCredentials();
  // retrieves credentials according to configuration precedence
  // https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html
  // updates credentials if expired
  await AWS.config.credentials.getPromise()
  // after we ensured that credentials are ready we use them
  const accessKeyId = AWS.config.credentials.accessKeyId;
  const secretAccessKey = AWS.config.credentials.secretAccessKey;
  const sessionToken = AWS.config.credentials.sessionToken;
}

0

你想查看Nodes的环境变量。

通过process.env可以访问所有的环境变量。

具体来说,你想要这个:

console.log(AWS_SECRET_ACCESS_KEY);
console.log(process.env.AWS_ACCESS_KEY_ID);

process.env变量未设置。我的凭据文件已正确设置。我想查看S3正在使用什么,因为我觉得它应该从列在“default”下的文件中获取凭据。 - Tuhina Singh
当我添加此处提到的代码时,我会收到错误提示,指出“AWS_SECRET_ACCESS_KEY未定义”和“未定义”。 - Tuhina Singh
啊,我通常通过环境变量来设置。 - Taylor Ackley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接