【问题标题】:Cannot read credentials from /.aws/credentials on local machine无法从本地计算机上的 /.aws/credentials 读取凭据
【发布时间】:2020-12-29 00:55:24
【问题描述】:

我在~/.aws/credentials.txt 创建了一个credentials.txt 我已将~/.aws/credentials.txt 的凭据添加为

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

本地节点 JS 服务器

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');

});

控制台打印错误*

(base) bogdanmac:ProjectDemo iliebogdanbarbulescu$ node app.js SharedIniFileCredentials { 过期:假,过期时间:空,
refreshCallbacks:[],accessKeyId:未定义,sessionToken: 未定义,文件名:未定义,配置文件:'bogdan-ses-user',
disableAssumeRole:假,preferStaticCredentials:假,
tokenCodeFn: null, httpOptions: null } err 来了eeee CredentialsError:无法从 SharedIniFileCredentials 在 Object.openSync (fs.js:462:3) 在 Object.readFileSync (fs.js:364:35) 在 Object.readFileSync (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/util.js:95:26) 在 IniLoader.parseFile (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/shared-ini/ini-loader.js:6:47) 在 IniLoader.loadFrom (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/shared-ini/ini-loader.js:56:30) 在 Object.getProfilesFromSharedConfig (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/util.js:965:39) 在 SharedIniFileCredentials.load (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/credentials/shared_ini_file_credentials.js:96:31) 在 SharedIniFileCredentials.coalesceRefresh (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/credentials.js:205:12) 在 SharedIniFileCredentials.refresh (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/credentials/shared_ini_file_credentials.js:168:10) 在 SharedIniFileCredentials.get (/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/credentials.js:122:12) 服务器已开始成功连接完成

【问题讨论】:

  • 你刚刚在互联网上分享了你的访问密钥和秘密访问密钥,你应该尽快撤销它们
  • 它们是虚拟键

标签: node.js amazon-web-services express


【解决方案1】:

正如documentation 所说:

文件名(字符串)— 默认值:'~/.aws/credentials' 或由 AWS_SHARED_CREDENTIALS_FILE 进程定义 env var — 加载凭证时使用的文件名。

所以你可以:

  • 将文件~/.aws/credentials.txt 重命名为~/.aws/credentials
  • 设置环境变量AWS_SHARED_CREDENTIALS_FILE=~/.aws/credentials
  • 使用filename 选项:
var credentials = new AWS.SharedIniFileCredentials({filename: '~/.aws/credentials.txt', profile: 'bogdan-ses-user'});

【讨论】:

  • 我仍然收到同样的错误CredentialsError: Could not load credentials from SharedIniFileCredentials。我做了什么?:将文件重命名为 ~/.aws/credentials ,在终端运行 export AWS_SHARED_CREDENTIALS_FILE=~/.aws/credentials, imgur.com/aPo6ked 。另见imgur.com/M9du1Ij
  • 环境变量好像也设置了imgur.com/D3sqfalAWS_SHARED_CREDENTIALS_FILE=/Users/iliebogdanbarbulescu/.aws/credentials _CE_M=
  • 这不行,我过去 4 个小时都在搞它..
  • 您不能重命名您的文件credentials,也不能使用filename: credentials.txt,您必须选择一个或另一个。 filename 必须是您的文件的实际名称。
猜你喜欢
  • 2019-02-23
  • 2017-02-10
  • 2018-09-23
  • 2018-07-08
  • 2012-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多