AWS Identity Center环境下Terraform认证失败问题求助
解决AWS Identity Center临时凭证在Terraform中的认证失败问题
问题原因
AWS Identity Center生成的是临时会话凭证,必须同时包含access_key、secret_key、aws_session_token三个参数才能完成认证。你之前个人账号使用的是长期IAM凭证,仅需前两个参数即可正常工作,但工作账号的Identity Center临时凭证缺少aws_session_token参数时,就会触发InvalidClientTokenId的403错误。
解决方案
方案1:直接在Terraform Provider配置中补充会话令牌
修改你的providers.tf配置,添加aws_session_token参数:
terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } } } provider "aws" { region = "eu-west-2" access_key = "你的临时Access Key" secret_key = "你的临时Secret Key" aws_session_token = "你的临时Session Token" }
方案2:通过环境变量传递凭证(更安全,避免硬编码)
在终端中设置三个环境变量:
export AWS_ACCESS_KEY_ID="你的临时Access Key" export AWS_SECRET_ACCESS_KEY="你的临时Secret Key" export AWS_SESSION_TOKEN="你的临时Session Token"
之后简化Terraform配置,Provider会自动读取环境变量:
terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } } } provider "aws" { region = "eu-west-2" }
验证步骤
- 执行
terraform init完成初始化 - 运行
terraform plan测试认证是否正常 - 若仍报错,检查以下两点:
- 三个凭证参数是否完整复制(注意不要包含多余空格)
- 临时凭证是否过期(Identity Center会话凭证默认有效期12小时)
内容的提问来源于stack exchange,提问作者DevNoob
相关产品推荐
相关产品推荐

