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

Terraform部署EC2实例时IAM实例配置文件参数报错求助

问题:Terraform部署EC2实例时IAM实例配置文件报错

错误信息

Value (arn:aws:iam::000000000:instance-profile/poc-profile) for parameter iamInstanceProfile.name is invalid. Invalid IAM Instance Profile name

问题场景

使用内部EC2基础模块部署实例,传递IAM实例配置文件ARN作为参数:

module "ec2_poc" {
  iam_instance_profile   = aws_iam_instance_profile.base_profile.arn
}

Terraform执行计划中该参数值显示为:
+ iam_instance_profile = "arn:aws:iam::000000000:instance-profile/poc-profile"
该ARN与AWS控制台查询到的实例配置文件ARN完全一致。

原因分析

AWS EC2 API的iamInstanceProfile.name参数仅接受IAM实例配置文件的纯名称,不支持ARN格式。尽管Terraform官方文档说明aws_instance的iam_instance_profile字段理论上支持名称或ARN,但实际调用底层API时,若直接传入ARN,会被当作名称参数传递,而ARN包含的arn:aws:iam::等前缀不符合实例配置文件名称的规范,因此触发报错。

解决方案

修改模块调用代码,传递IAM实例配置文件的名称而非ARN:

module "ec2_poc" {
  iam_instance_profile   = aws_iam_instance_profile.base_profile.name
}

验证

修改后,Terraform执行计划中该参数值会变为实例配置文件的纯名称(如poc-profile),完全符合AWS API的参数要求,即可正常完成EC2实例部署。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 15:14:59