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

如何解决Terraform配置本地AWS凭证时的报错问题?

Terraform AWS Provider凭证配置报错解决方法

问题场景

使用以下Terraform配置AWS Provider:

provider "aws"  {
    region  = var.region_name
    profile = "default"
}

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 3.76"
    }
  }

  required_version = ">= 0.14.9"
}

执行terraform plan时触发如下错误:

Error: error configuring Terraform AWS Provider: no valid credential sources for Terraform AWS Provider found.
│ 
│ Please see https://registry.terraform.io/providers/hashicorp/aws
│ for more information about providing credentials.
│
│ Error: NoCredentialProviders: no valid providers in chain
│ caused by: EnvAccessKeyNotFound: failed to find credentials in the environment.
│ SharedCredsLoad: failed to load profile, default.
│ EC2RoleRequestError: no EC2 instance role found
│ caused by: RequestError: send request failed
│ caused by: Get "http://169.254.169.254/latest/meta-data/iam/security-credentials/": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

解决步骤

1. 检查本地AWS凭证文件

Terraform指定profile = "default"后,会读取本地AWS凭证文件:

  • Linux/macOS路径:~/.aws/credentials
  • Windows路径:C:\Users\<你的用户名>\.aws\credentials

确保文件存在且格式正确:

[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY

若无此文件,运行aws configure命令,按提示输入Access Key、Secret Key、区域和输出格式,自动生成凭证文件。

2. 修复凭证文件权限

  • Linux/macOS下,设置文件权限为600,防止其他用户读取:
    chmod 600 ~/.aws/credentials
    
  • Windows下,修改文件权限,仅允许当前用户访问。

3. 直接设置环境变量(可选)

不想依赖凭证文件时,可通过环境变量传递凭证:

  • Linux/macOS终端:
    export AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY"
    export AWS_SECRET_ACCESS_KEY="YOUR_SECRET_KEY"
    export AWS_REGION="your-region"
    
  • Windows命令提示符:
    set AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY
    set AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY
    set AWS_REGION=your-region
    
  • PowerShell:
    $env:AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY"
    $env:AWS_SECRET_ACCESS_KEY="YOUR_SECRET_KEY"
    $env:AWS_REGION="your-region"
    

4. EC2实例环境检查(如果适用)

若在EC2实例中执行Terraform,需确认:

  • 实例已关联具备对应权限的IAM角色
  • VPC未禁用实例元数据访问(IMDS)

5. 验证凭证有效性

执行aws sts get-caller-identity命令,若能返回用户/角色信息,说明凭证有效;若报错,先解决AWS CLI的凭证问题,再重新运行terraform plan。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 16:40:18