AWS-SDK для NodeJS: как получить учетные данные, используемые в программе

Я получаю доступ к 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 ответа

Решение

Вы можете получить глобально настроенные учетные данные от aws.config.credentials

Получите accessKeyId:

var accessKeyId = aws.config.credentials.accessKeyId;

Получите секретный ключ доступа:

var secretAccessKey = aws.config.credentials.secretAccessKey;

Вы хотите посмотреть на переменные среды Nodes.

Вы можете получить доступ ко всем переменным среды через process.env

В частности, вы хотите это:

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

Для современного 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;
}
Другие вопросы по тегам