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

Terraform对接AWS执行apply时报STS安全令牌无效错误如何解决

问题根因
  • AWS凭证链优先级规则导致优先读取无效凭证:AWS官方SDK(包含Terraform AWS Provider、AWS CLI)的凭证读取优先级为「环境变量 > 本地凭证文件/指定Profile配置 > 实例角色/其他凭证来源」,你当前环境配置的AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY为无效旧凭证,优先级高于你在Provider中指定的SSO Profile,因此所有请求都携带无效凭证触发403报错。
  • SSO凭证存储路径不匹配配置:通过aws configure sso生成的登录凭证默认缓存于~/.aws/sso/cache目录,SSO Profile的配置存储在~/.aws/config文件,你在Provider中强制指定shared_credentials_file = "~/.aws/credentials"会导致Provider无法读取到有效的SSO缓存凭证。
  • STS请求区域不匹配是次要触发因素:你执行STS测试命令时指定的区域为us-west-2,与SSO登录的默认区域eu-west-2不一致,若你账号开启了STS区域端点限制也会额外触发报错,但核心原因还是无效凭证问题。
排查修复步骤
  • 清除当前会话中的无效环境变量
    不同操作系统执行对应命令:
    • Linux/macOS:unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
    • Windows CMD:依次执行set AWS_ACCESS_KEY_ID=、set AWS_SECRET_ACCESS_KEY=、set AWS_SESSION_TOKEN=
    • Windows PowerShell:依次执行Remove-Item Env:AWS_ACCESS_KEY_ID、Remove-Item Env:AWS_SECRET_ACCESS_KEY、Remove-Item Env:AWS_SESSION_TOKEN
  • 修正Terraform AWS Provider配置,删除shared_credentials_file参数,修改后配置如下:
    provider "aws" {
      region  = "eu-west-2"
      profile = "450694575897_ProdPS-SuperUsers"
    }
    
  • 验证SSO凭证有效性,执行命令:aws sts get-caller-identity --profile 450694575897_ProdPS-SuperUsers --region eu-west-2,如果返回正常的账号ID、用户ARN等信息则说明凭证有效。如果提示凭证过期,执行aws sso login --profile 450694575897_ProdPS-SuperUsers刷新登录状态即可。
  • 重新执行terraform apply验证问题是否解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:45:04