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

AWS凭证重配后仍提示InvalidAccessKeyId问题求助

AWS凭证配置更改未生效的排查方案

核心原因梳理

AWS CLI的凭证读取有严格优先级,你修改环境变量后仍报错,大概率是以下几个细节没处理到位:

  • 当前Shell会话没加载新的环境变量
    修改.bash_aws后,旧的环境变量还在当前终端会话里生效,新配置没被读取。执行下面的命令让更改立即生效:

    source ~/.bash_aws
    

    嫌麻烦的话直接关掉当前终端,重新开一个新窗口就行,新会话会自动加载更新后的配置。

  • 其他Shell配置文件残留旧凭证
    除了.bash_aws,Shell还会从.bashrc、.bash_profile、.profile(如果用Zsh就是.zshrc)这些文件加载环境变量。去这些文件里搜一下AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY,要是有旧配置就删掉,然后重新加载对应文件(比如source ~/.bashrc)。

  • 配置文件名称拼写不一致
    你说aws configure list-profiles显示的是mapichanach,但credentials里配置的是markovich——这俩拼写不一样,AWS CLI根本找不到对应的凭证,只能 fallback 用之前的旧值。要么手动改~/.aws/credentials和~/.aws/config里的配置段名称,要么用命令修正:

    aws configure rename-profile mapichanach markovich
    
  • 存在更高优先级的凭证来源
    AWS CLI的凭证优先级是:命令行参数 > 环境变量 > ~/.aws/credentials > 临时角色凭证。检查你执行aws s3 ls时有没有带旧的密钥参数,或者之前用过aws sts assume-role这类命令生成的临时凭证还在缓存里。可以清掉缓存试试:

    rm -rf ~/.aws/cli/cache
    
  • 测试时没指定正确的配置文件
    如果新凭证存在markovich配置里,执行命令时没加--profile markovich,CLI会默认用default配置。要么检查default的凭证是否正确,要么执行命令时明确指定配置文件:

    aws s3 ls --region us-east-1 --profile markovich
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:20:32