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

Terraform plan执行失败:AWS Provider凭证验证错误求助

解决Terraform AWS Provider凭证验证失败(InvalidClientTokenId)问题

错误原因

InvalidClientTokenId 表示Terraform使用的AWS凭证无效,大概率是密钥输入错误、环境变量设置格式不对,或者终端会话未加载新变量导致。

分步解决

1. 确认AWS凭证的正确性

  • 确保你用的AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY是从AWS控制台IAM用户页面复制的,没有多带空格、引号或其他特殊字符
  • 验证该IAM用户拥有sts:GetCallerIdentity权限(Terraform会调用这个API校验凭证有效性)

2. 修正Windows环境变量设置

命令提示符(CMD)正确写法

不要用SET VARIABLE,直接按以下格式设置:

set AWS_ACCESS_KEY_ID=你的访问密钥ID
set AWS_SECRET_ACCESS_KEY=你的秘密访问密钥

注意:值不要加引号,设置完成后必须重启CMD窗口,让新变量生效。

PowerShell设置注意事项

你用的PowerShell语法是对的:

$env:AWS_ACCESS_KEY_ID="你的访问密钥ID"
$env:AWS_SECRET_ACCESS_KEY="你的秘密访问密钥"

但同样需要重启PowerShell窗口,否则Terraform读不到新设置的环境变量。

3. 验证凭证是否生效

  • 安装AWS CLI后,在终端执行:
    aws sts get-caller-identity
    
    如果返回用户ARN、ID等信息,说明凭证有效;如果报错,直接排查凭证本身。
  • 临时测试Terraform配置(仅用于排查,不推荐生产环境):
    修改main.tf的provider块,直接指定凭证:
    provider "aws" {
      region     = "us-east-1"
      access_key = "你的访问密钥ID"
      secret_key = "你的秘密访问密钥"
    }
    
    执行terraform plan,如果成功,说明之前的环境变量设置有问题。

4. 推荐的凭证管理方式

使用AWS凭证文件,避免每次手动设置环境变量:

  1. 在Windows用户目录下创建.aws文件夹(比如C:\Users\你的用户名\.aws)
  2. 在该文件夹内创建credentials文件,内容如下:
    [default]
    aws_access_key_id = 你的访问密钥ID
    aws_secret_access_key = 你的秘密访问密钥
    
  3. Terraform会自动读取该文件的凭证,无需额外配置环境变量或在代码中硬编码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:15:35