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

已配置AWS CLI却提示缺少AWS_SECRET_ACCESS_KEY错误的求助

解决AWS CLI报错"Partial credentials found in env, missing: AWS_SECRET_ACCESS_KEY"的排查步骤

我之前也碰到过完全一样的问题!明明本地配置文件里存了密钥,却还是报这个错,多半是环境变量冲突或者配置细节出了问题,咱们一步步来排查:

1. 优先排查环境变量冲突

报错里明确提到"Partial credentials found in env",这说明你的终端环境已经设置了AWS_ACCESS_KEY_ID环境变量,但没配上对应的AWS_SECRET_ACCESS_KEY。AWS CLI会优先读取环境变量,而不是本地的~/.aws/config或credentials文件,所以哪怕配置文件里有完整密钥,也会被环境变量的部分配置干扰。

  • 先在终端执行这两个命令,确认环境变量状态:
    echo $AWS_ACCESS_KEY_ID
    echo $AWS_SECRET_ACCESS_KEY
    
  • 如果第一个命令输出了你的访问密钥,第二个是空的,那就是问题根源:
    • 临时解决:执行unset AWS_ACCESS_KEY_ID和unset AWS_SECRET_ACCESS_KEY,清空这两个环境变量后再重新运行AWS命令。
    • 永久解决:找到设置这些环境变量的地方(比如~/.bashrc、~/.zshrc或者系统环境变量配置文件),删除对应的行,然后重启终端生效。

2. 确认~/.aws/config的格式正确性

哪怕你看到文件里有秘密密钥,也可能是格式不对导致CLI无法正确读取:

  • 检查配置文件结构,每个profile的密钥必须放在对应的区块内,比如默认profile的正确格式应该是:
    [default]
    aws_access_key_id = YOUR_ACCESS_KEY_HERE
    aws_secret_access_key = YOUR_SECRET_KEY_HERE
    region = us-east-1 # 可选,但建议配置
    
  • 注意键名必须完全准确:是aws_secret_access_key,别写成aws_secret_key或其他变体,大小写也不能出错。
  • 如果你用的是自定义profile(比如[profile my-project]),运行命令时必须加上--profile my-project参数,否则CLI会默认读取default区块的配置。

3. 检查配置文件的权限

AWS CLI对~/.aws目录和配置文件的权限要求很严格,如果权限过于开放,会拒绝读取密钥内容:

  • 执行以下命令修正权限:
    chmod 700 ~/.aws
    chmod 600 ~/.aws/config
    
    (如果你的密钥存在~/.aws/credentials文件里,也要给这个文件设置600权限)

4. 尝试更新AWS CLI版本

旧版本的AWS CLI可能存在配置文件解析的bug,更新到最新版本试试:

  • 如果是用pip安装的:
    pip install --upgrade awscli
    
  • 如果是Mac用Homebrew:
    brew upgrade awscli
    
  • 其他系统可以通过对应的包管理器完成更新。

测试验证

做完上面的步骤后,运行一个简单的AWS命令验证,比如:

aws s3 ls

如果是自定义profile,就用:

aws s3 ls --profile your-profile-name

如果能正常输出结果,说明问题已经解决了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:06:17