Terraform部署EMR Studio报错:服务角色无集群访问权限
策略资源范围不匹配
检查IAM权限策略中指定的EMR集群资源ARN是否精准对应dev-emr集群。如果策略使用了范围过窄的ARN(比如写错集群名称、区域或账号ID),或者通配符覆盖范围不符合实际集群所在环境,都会导致服务角色无法获取对应权限。确保资源ARN格式为arn:aws:emr:<你的区域>:<你的账号ID>:cluster/dev-emr。服务角色信任关系配置错误
确认EMR Studio的服务角色信任策略是否允许elasticmapreduce.amazonaws.com作为可信主体。若信任关系未正确配置,即使权限策略齐全,EMR服务也无法承担该角色调用集群资源。正确的信任策略示例:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }集群状态或网络限制影响
确保dev-emr集群处于运行中状态,且与EMR Studio位于同一AWS区域。若集群已终止、处于异常状态,或Studio与集群不在同一VPC且无网络连通配置,可能会触发看似权限不足的错误(实际是服务无法访问到集群资源)。Terraform资源依赖顺序问题
检查Terraform配置中,EMR集群资源的创建是否早于EMR Studio及工作区关联资源。可以通过depends_on显式声明依赖关系,确保集群完全创建完成后再执行关联操作。如果集群未就绪就尝试关联,服务角色会因无法识别集群而被判定为权限不足。权限策略未正确附加
确认Terraform中是否将权限策略通过aws_iam_role_policy_attachment正确附加到EMR Studio服务角色上。如果仅创建了策略但未完成附加操作,服务角色实际不具备访问集群的权限。
内容的提问来源于stack exchange,提问作者Staggerlee011

