如何让AWS CLI读取~/.aws默认配置文件而非环境变量凭证?
解决AWS CLI优先读取环境变量凭证的问题
临时生效方案(当前终端会话)
直接取消当前会话中的AWS凭证环境变量:
unset AWS_ACCESS_KEY_ID unset AWS_SECRET_ACCESS_KEY
执行后运行aws configure list,就能看到凭证从shared-credentials-file(即~/.aws/credentials的default配置)读取,region也会沿用~/.aws/config里的设置。
永久生效方案(所有终端会话)
如果希望每次打开终端都自动使用配置文件的凭证,需要移除shell配置里的环境变量设置:
- 找到你的shell配置文件:
- Bash:
~/.bashrc或~/.bash_profile - Zsh:
~/.zshrc
- Bash:
- 打开文件,找到包含
export AWS_ACCESS_KEY_ID=和export AWS_SECRET_ACCESS_KEY=的行 - 删除这两行,或者在行首加
#注释掉 - 执行
source 你的配置文件路径(比如source ~/.bashrc)让修改立即生效
补充说明
AWS CLI的凭证读取优先级是:环境变量 > 共享凭证文件 > 配置文件。所以只要AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY这两个环境变量存在,CLI就会优先使用它们,哪怕你设置了AWS_DEFAULT_PROFILE也没用——后者只是指定要读取的配置文件profile,但不会覆盖环境变量的优先级。
内容的提问来源于stack exchange,提问作者tbone
相关产品推荐
相关产品推荐

