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

为何AWS Boto3未读取~/.aws/credentials配置文件?

AWS Boto3 UnrecognizedClientException 解决思路
  • 确认Boto3加载的凭证与CLI一致

    • 优先检查环境变量:如果系统中设置了AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY,Boto3会优先使用这些值,而非~/.aws/credentials文件中的内容。可以在代码中打印当前凭证信息验证:
      import boto3
      session = boto3.Session()
      creds = session.get_credentials()
      print(f"当前使用的凭证: {creds.access_key if creds else '未加载到凭证'}")
      
    • 检查profile匹配:如果CLI使用了指定profile(如aws --profile my-team secretsmanager get-secret-value),代码中必须显式指定对应profile,否则Boto3默认使用default profile:
      session = boto3.Session(profile_name='my-team')
      client = session.client('secretsmanager')
      
  • 验证凭证有效性与完整性

    • 如果使用临时STS凭证,确保~/.aws/credentials文件中包含aws_session_token字段,Boto3需要该字段才能正确使用临时凭证,缺失会直接触发无效令牌错误。
    • 手动核对credentials文件中的aws_access_key_id和aws_secret_access_key,避免复制粘贴时引入多余空格或字符错误。
  • 同步区域配置

    • 确认代码中指定的AWS区域与CLI操作的区域一致,例如CLI用了us-west-2,代码中必须显式声明:
      client = boto3.client('secretsmanager', region_name='us-west-2')
      
    • 区域不匹配可能导致请求路由到错误的端点,间接触发凭证验证失败。
  • 升级依赖版本

    • 旧版本的boto3或botocore可能存在凭证加载逻辑的bug,执行以下命令升级到最新稳定版:
      pip install --upgrade boto3 botocore
      
  • 清理凭证缓存

    • Boto3会缓存凭证到~/.aws/cache目录,若缓存的凭证已过期,删除该目录下的所有文件后重新运行代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:15:41