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;
}