2

我正在运行 Visual Studio 2019,AWS Explorer 安装了 Amazon Workspace 上的配置文件。直到今天,我已经能够使用 AWS .NET Core 3.1 Mock Lambda 测试工具在本地调试 Lambda 项目。今天,我需要做一些 CLI 工作,发现 CLI 没有安装,所以我安装了最新版本。安装后,我的代码在尝试访问任何 AWS 服务时失败,并出现以下错误:

无法从 EC2 实例元数据服务获取 IAM 安全凭证。

我已验证我的凭证文件在 /.aws/credential 是正确的,并且 AWS Explorer 正在获取它,我可以在 AWS Explorer 中浏览服务和对象。

我已删除凭据文件并使用aws configure. 没变。

我已删除凭证文件并使用 AWS Explorer 重新创建。没变。

我已卸载并重新安装 AWS CLI 和 AWS Explorer 并重新创建了配置文件。没变。

我已经为 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 设置了 windows 环境变量。这行得通。

显然,当我创建它时,我可以将我的访问密钥和秘密硬编码到我的客户端中,这很有效。

问题是,为什么我的代码不会从我的 /.aws/credentials 文件中获取凭据?还有什么我可以尝试的吗?

4

1 回答 1

0

您需要确认 AWS 开发工具包正在使用的凭证文件的“默认”位置。这是 AWS 开发工具包认为的默认基本目录:

    var baseDirectory = Environment.GetEnvironmentVariable("HOME");

    if (string.IsNullOrEmpty(baseDirectory))
            baseDirectory = Environment.GetEnvironmentVariable("USERPROFILE");

只需转储运行时值并将 .aws 文件夹的副本放在那里或使用应用程序设置

"AWS": {
    "AWSProfilesLocation": "C:\\Users\\YOUR_USER_NAME\\.aws\\credentials",
    ....

将 SDK 指向凭证文件。

于 2022-02-17T07:15:48.257 回答