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

Terraform初始化S3后端遇CredentialRequiresARNError问题:0.11.15正常,0.15.5及1.0.7报错

解决Terraform 0.15+/1.x版本初始化S3后端的CredentialRequiresARNError问题

这个问题我之前帮人排查过,本质是Terraform版本升级后,AWS认证的校验逻辑变严格了,结合你的报错信息,咱们一步步来解决:

问题根源

Terraform 0.13及以后版本(包括你用的0.15.5和1.0.7)依赖的AWS SDK和AWS Provider版本都做了升级,对AWS配置文件(~/.aws/config或C:\Users\<用户名>\.aws\config)的格式校验更严格。

你遇到的错误CredentialRequiresARNError: credential type source_profile requires role_arn, profile default明确指向:你的**默认AWS Profile(default)**配置中使用了source_profile字段,但没有配套指定role_arn参数。旧版本Terraform(0.11.15)用的AWS Provider 2.70.0对这种不规范配置容错性更高,所以没报错,但新版本会直接阻断认证流程。

解决方案

1. 修复AWS配置文件中的默认Profile

首先找到你的AWS配置文件,按以下两种情况调整:

  • 如果default是直接使用访问密钥的Profile:
    确保配置里没有source_profile,直接写访问密钥和区域:
    [profile default]
    aws_access_key_id = YOUR_ACCESS_KEY_ID
    aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
    region = eu-west-1
    
  • 如果default是需要切换角色的Profile:
    必须同时指定role_arn和source_profile(source_profile是有权限调用该角色的另一个Profile):
    [profile default]
    role_arn = arn:aws:iam::123456789012:role/YourTargetRoleName
    source_profile = your-source-profile-name
    region = eu-west-1
    

2. 显式指定后端使用的合法Profile(可选)

如果你不想修改默认Profile,可以在后端配置中指定一个已经正确配置的Profile:

  • 在test-env.tfvars中添加一行:
    profile = "your-valid-profile-name"
    
  • 或者执行terraform init时通过环境变量临时指定:
    AWS_PROFILE=your-valid-profile-name terraform init -backend-config=test-env.tfvars
    

3. 适配新版本Terraform的Provider配置(推荐)

Terraform 0.15+要求显式声明Provider的来源和版本,建议更新你的terraform.tf配置,避免版本兼容问题:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 3.0" # 适合Terraform 0.15/1.x的稳定版本
    }
  }
  backend "s3" { }
}

provider "aws" {
  region = "eu-west-1"
}

resource "aws_s3_bucket" "this" {
  bucket = "test-bucket"
  acl    = "private"
}

验证修复

修改完成后,重新执行:

terraform init -backend-config=test-env.tfvars

如果配置正确,应该能成功初始化后端,之后正常执行terraform apply。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 12:29:07