You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装AWS CLI v2后出现无法从EC2实例元数据服务获取IAM安全凭证问题

问题原因分析

该报错的本质是AWS .NET SDK的默认凭证提供链走完所有前置凭证获取逻辑都未拿到有效凭证,最终尝试从EC2实例元数据服务(Amazon Workspace本身属于托管EC2实例)获取凭证失败导致。安装AWS CLI后触发问题,通常是以下几个原因导致:

  1. AWS Explorer(AWS Toolkit for Visual Studio)的凭证默认存储在Windows凭据管理器中,和.NET SDK默认读取的%USERPROFILE%\.aws\credentials文件相互独立,因此AWS Explorer可正常访问服务不代表本地凭证文件配置符合SDK读取要求
  2. 凭证文件的路径、文件名或内容格式不符合SDK要求
  3. 安装AWS CLI时修改了AWS_SHARED_CREDENTIALS_FILE等全局环境变量,导致SDK读取凭证的路径被篡改
  4. 你的凭证配置未放在[default]节点下,代码未指定自定义profile名称的情况下SDK无法识别对应凭证
排查方案
  • 首先确认凭证文件的基础配置:文件必须存放在当前Windows用户的根目录下,即%USERPROFILE%\.aws\路径,文件名必须为credentials(无后缀,拼写带s,不是你提到的credential),Windows下AWS SDK默认不会读取根目录下的/.aws/路径下的文件
  • 运行aws configure list命令,查看输出中Credentials File一行指向的路径是否和你存放凭证的路径一致,如果不一致,检查系统环境变量中是否存在AWS_SHARED_CREDENTIALS_FILE或AWS_CONFIG_FILE配置,要么删除该环境变量恢复默认路径,要么将你的凭证文件移动到环境变量指向的路径
  • 打开credentials文件,确认你使用的凭证配置是在[default]节点下;如果是自定义命名的profile,需要在项目调试配置中添加AWS_PROFILE环境变量,值为你自定义的profile名称
  • 可添加临时测试代码打印凭证来源,进一步定位问题:
var credentials = Amazon.Runtime.FallbackCredentialsFactory.GetCredentials();
Console.WriteLine(credentials.GetType().FullName);
  • 可以新增系统环境变量AWS_EC2_METADATA_DISABLED,值设为true,强制SDK跳过EC2元数据服务的查询,此时的报错信息会直接提示SDK找不到凭证的具体原因,方便定位
  • 检查%USERPROFILE%\.aws文件夹和内部credentials文件的权限,确认你运行Visual Studio的用户账号对该文件有读取权限
  • 检查Lambda测试工具的调试配置,确认是否有额外指定的凭证相关参数覆盖了全局配置

内容的提问来源于stack exchange,提问作者Jay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:36:04