bibscy
bibscy

Reputation: 2708

Cannot read credentials from /.aws/credentials on local machine

I have created a credentials.txt at ~/.aws/credentials.txt I have added the credentials at ~/.aws/credentials.txt as

[bogdan-ses-user]
aws_access_key_id = ***
aws_secret_access_key = ***

Local Node JS server

const express = require('express');
const mysql = require('mysql');
const app = express();

// import entire SDK
var AWS = require('aws-sdk');



    var credentials = new AWS.SharedIniFileCredentials({profile: 'bogdan-ses-user'});
    AWS.config.credentials = credentials;
    console.log(credentials);



    AWS.config.getCredentials(function(err) {
        if (err) {
            console.log("err comes hereeee");
            console.log(err.stack);
        }else{

            console.log('Access key: ', AWS.config.getCredentials.accessKeyId);
        }
    });

app.listen(3000, function(){
    console.log('server has started');

});

Console Print out ERROR*

(base) bogdanmac:ProjectDemo iliebogdanbarbulescu$ node app.js SharedIniFileCredentials { expired: false, expireTime: null,
refreshCallbacks: [], accessKeyId: undefined, sessionToken: undefined, filename: undefined, profile: 'bogdan-ses-user',
disableAssumeRole: false, preferStaticCredentials: false,
tokenCodeFn: null, httpOptions: null } err comes hereeee CredentialsError: Could not load credentials from SharedIniFileCredentials at Object.openSync (fs.js:462:3) at Object.readFileSync (fs.js:364:35) at Object.readFileSync (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/util.js:95:26) at IniLoader.parseFile (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/shared-ini/ini-loader.js:6:47) at IniLoader.loadFrom (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/shared-ini/ini-loader.js:56:30) at Object.getProfilesFromSharedConfig (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/util.js:965:39) at SharedIniFileCredentials.load (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/credentials/shared_ini_file_credentials.js:96:31) at SharedIniFileCredentials.coalesceRefresh (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/credentials.js:205:12) at SharedIniFileCredentials.refresh (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/credentials/shared_ini_file_credentials.js:168:10) at SharedIniFileCredentials.get (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/credentials.js:122:12) server has started successful connection done

Upvotes: 0

Views: 1354

Answers (1)

Mickael B.
Mickael B.

Reputation: 5215

As the documentation says:

filename (String) — default: '~/.aws/credentials' or defined by AWS_SHARED_CREDENTIALS_FILE process env var — the filename to use when loading credentials.

So you can either:

  • Rename your file ~/.aws/credentials.txt to ~/.aws/credentials
  • Set the environment variable AWS_SHARED_CREDENTIALS_FILE=~/.aws/credentials
  • Use the filename option:
var credentials = new AWS.SharedIniFileCredentials({filename: '~/.aws/credentials.txt', profile: 'bogdan-ses-user'});

Upvotes: 1

Related Questions