【问题标题】:Getting “ Unable to get IAM security credentials from EC2 Instance Metadata Service.” after installing AWS CLI v2获取“无法从 EC2 实例元数据服务获取 IAM 安全凭证。”安装 AWS CLI v2 后
【发布时间】:2022-02-17 15:15:48
【问题描述】:

我正在运行 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 文件中获取凭据?还有什么我可以尝试的吗?

【问题讨论】:

  • 不,我通过 AWS 工具包以及命令行多次创建了凭证。我已经从磁盘中删除了凭据并重新启动并做了我能想到的任何其他事情来刷新它。无论出于何种原因,VS 都不会读取凭据。

标签: c# visual-studio-2019 aws-credentials


【解决方案1】:

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

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

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

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

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

将 SDK 指向凭证文件。

【讨论】:

    猜你喜欢
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2017-04-22
    • 2018-11-22
    • 1970-01-01
    • 2020-09-30
    相关资源
    最近更新 更多