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

配置Terraform AWS Provider遇403错误,请求令牌无效

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

检查Terraform使用的凭证来源

Terraform不会自动读取VSCode扩展的凭证配置,需确认它加载的凭证是否正确:

  • 查看本地AWS凭证文件:检查~/.aws/credentials(Linux/macOS)或C:\Users\<你的用户名>\.aws\credentials(Windows),确保其中的aws_access_key_id和aws_secret_access_key与VSCode使用的完全一致,避免多余空格、换行或特殊字符。
  • 检查环境变量:Terraform会优先读取系统环境变量中的凭证,执行以下命令确认:
    # Linux/macOS
    echo $AWS_ACCESS_KEY_ID
    echo $AWS_SECRET_ACCESS_KEY
    
    # Windows(PowerShell)
    echo $env:AWS_ACCESS_KEY_ID
    echo $env:AWS_SECRET_ACCESS_KEY
    
    若输出凭证与预期不符,可删除该环境变量或修改为正确值。

手动验证凭证有效性

即便VSCode可正常使用,仍需确认凭证能否调用STS接口:
执行AWS CLI命令(无CLI可使用curl):

# AWS CLI方式,替换为你的凭证配置文件名称
aws sts get-caller-identity --profile <你的配置文件名>

若返回InvalidClientTokenId,说明凭证本身存在问题,需前往IAM控制台重新生成Access Key/Secret Key,确保下载后准确保存,避免复制错误字符。

检查Terraform Provider配置

确认AWS Provider配置无硬编码错误或指定错误profile:
正确配置示例:

provider "aws" {
  region = "us-east-1"
  # 若使用自定义profile,需填写正确名称,默认profile可省略此行
  # profile = "my-terraform-profile"
}

若配置中硬编码了凭证,需核对是否与使用的凭证一致:

provider "aws" {
  region     = "us-east-1"
  access_key = "<正确的Access Key>"
  secret_key = "<正确的Secret Key>"
}

清理Terraform缓存

旧缓存可能导致凭证读取异常,执行以下命令清理后重新初始化:

terraform init -reconfigure
rm -rf .terraform/ .terraform.lock.hcl

完成后再次执行terraform plan。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 20:22:13