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

如何通过Terraform配置AssumeRole实现SSM Document与EC2关联并解决报错

问题根因

你当前的报错是SSM关联自动化文档时,未显式指定自动化流程使用的执行角色,且负责执行Terraform的IAM角色缺少传递SSM执行角色的权限,导致SSM服务无法获取合法角色运行自动化任务。

修正步骤

1. 补充SSM关联资源的必填配置

aws_ssm_association资源针对Automation类型的SSM文档,必须显式指定automation_assume_role(自动化执行角色ARN)和automation_target_parameter_name(文档中对应实例ID的参数名),你当前的配置完全缺失这两个参数。
修改ssm.tf中的关联资源配置如下:

resource "aws_ssm_association" "rhel" {
  name = aws_ssm_document.rhel_domain_join_document.name

  targets {
    key    = "InstanceIds"
    values = [aws_instance.rhel.id]
  }

  # 新增配置:指定SSM自动化使用的执行角色
  automation_assume_role = aws_iam_role.rhel_instance_role.arn
  # 新增配置:匹配你的SSM文档中定义的实例ID参数名,若文档中参数名不同请对应修改
  automation_target_parameter_name = "InstanceId"
}

2. 给Terraform执行角色补充PassRole权限

你main.tf中指定的Terraform执行角色arn:aws:iam::1234:role/my-role,需要额外添加IAM权限,允许它将SSM执行角色传递给SSM服务,否则创建关联时会因权限不足触发相同报错。
给my-role附加如下权限策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::1234:role/rhel_instance_role*"
        }
    ]
}

3. 可选优化项(非报错必要修正)

你当前为实例角色附加的AmazonEC2RoleforSSM是AWS已废弃的旧托管策略,建议替换为官方最新推荐的AmazonSSMManagedInstanceCore,避免后续权限兼容问题。

验证方法

修改配置后重新执行terraform plan确认变更无问题,再执行terraform apply即可完成SSM关联创建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:36:04