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

Windows 10下AWS CLI报InvalidAccessKeyId错误排查求助

排查AWS CLI InvalidAccessKeyId 错误的常见遗漏点

我帮你梳理几个容易被忽略的细节,这些都是我碰到过很多用户踩过的坑:

  • 环境变量优先级覆盖了配置文件
    Windows系统中,AWS CLI会优先读取环境变量里的AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY,而不是~/.aws目录下的配置文件。你提到配置了session key作为环境变量,有可能不小心把主access key也设成了环境变量,而且值和你验证的有效密钥不一致。
    先打开命令提示符,运行echo %AWS_ACCESS_KEY_ID%和echo %AWS_SECRET_ACCESS_KEY%检查环境变量里的密钥值。如果不对,要么修正环境变量,要么暂时删除这两个环境变量,再测试aws s3 ls(这是ListBuckets的快捷命令)。

  • 混淆了config和credentials文件的用途
    AWS CLI有两个核心配置文件:~/.aws/credentials专门用来存access key、secret key和session token,而~/.aws/config负责region、profile这类配置。很多人会把密钥写到config里,但格式不对的话CLI根本读不到。
    正确的credentials文件格式应该是这样的:

    [default]
    aws_access_key_id = 你的有效Access Key
    aws_secret_access_key = 你的有效Secret Key
    aws_session_token = 你的Session Token(如果用临时凭证的话)
    

    而config文件只需要保留region等配置:

    [default]
    region = 你的目标Region
    output = json
    

    检查下你的密钥是不是放错了文件,格式有没有问题。

  • 临时凭证的三个值必须配套
    如果你用的是session key这类临时凭证,必须同时提供aws_access_key_id、aws_secret_access_key和aws_session_token,而且这三个值是一一对应的有效组合。不能只配置session token的环境变量,却用配置文件里的主密钥,这样肯定会出错。要么把三个值都放到credentials文件里,要么都设为环境变量(AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN)。

  • Windows文件的隐藏字符或编码问题
    有时候在Windows下用记事本编辑.aws里的文件,会不小心引入UTF-8 BOM或者密钥前后的空格,导致CLI读取密钥时出错。你可以用VS Code打开文件,开启“显示控制字符”的选项,检查密钥有没有多余的空格或不可见字符;或者用记事本另存为,选择编码为“ANSI”,再试试。

  • 多profile场景下用错了默认配置
    如果你配置了多个AWS profile,但测试时没指定--profile参数,CLI会默认用default profile。可以运行aws configure list --profile 你的Profile名检查指定profile的配置是否正确,然后测试时加上--profile参数,比如aws s3 ls --profile 你的Profile名。

最后可以做个快速验证:直接在命令行里指定正确的所有凭证(临时测试用,别在生产环境这么干):

aws s3 ls --region 你的Region --aws-access-key-id 有效Access Key --aws-secret-access-key 有效Secret Key --aws-session-token 有效Session Token

如果这个命令能成功,说明你的凭证是有效的,问题肯定出在CLI的配置读取环节,回到上面的点排查就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:49:34