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

如何借助AWS .NET SDK自动凭证解析机制获取AWSCredentials?

利用AWS SDK for .NET内置凭证解析机制自动获取凭证

你可以直接使用DefaultAWSCredentials类,它完全复用AWS SDK内置的凭证解析链,自动处理所有你提到的凭证类型,并且会自动读取环境变量中的profile配置(比如Aws__Profile),无需手动传入profile参数,也不用自己实现解析逻辑。

代码示例

public void GetCredentialsDiscoveredBySdk()
{
    // 初始化默认凭证链,自动按优先级解析凭证
    AWSCredentials credentials = new DefaultAWSCredentials();
    
    // 如果需要获取具体的凭证值(比如传给第三方库),同步场景可按以下方式获取(异步场景建议直接用GetCredentialsAsync)
    var resolvedCredentials = credentials.GetCredentialsAsync().GetAwaiter().GetResult();
    
    // resolvedCredentials包含AccessKeyId、SecretAccessKey、SessionToken(临时凭证会有该字段)
    // 可直接将这些值传入第三方库使用
}

为什么这个方案符合你的需求

  • 自动识别profile:DefaultAWSCredentials会自动读取环境变量AWS_PROFILE或者.NET配置中的Aws:Profile(对应环境变量Aws__Profile),无需手动指定profile名称
  • 支持全凭证类型:不管是BasicAWSCredentials、带SSO的profile、还是联合用户账户凭证,SDK都会按照内置优先级自动解析,无需额外处理
  • 复用官方成熟逻辑:完全基于AWS SDK的官方凭证解析流程,避免自己实现繁琐的链逻辑,同时保证和SDK其他组件的行为一致

默认凭证链的解析优先级

DefaultAWSCredentials会按以下顺序查找有效凭证,找到第一个可用的就返回:

  1. 环境变量中的凭证(AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN)
  2. 共享凭证文件(~/.aws/credentials)和配置文件(~/.aws/config)中指定的profile(来自环境变量或默认profile)
  3. AWS托管环境中的IAM角色凭证(比如EC2实例角色、EKS服务账户角色、Lambda执行角色等)
  4. SSO配置的profile凭证(自动处理SSO令牌的获取与刷新)
  5. 联合身份凭证(比如通过STS AssumeRole配置的profile)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 04:50:19