如何修复:验证\u错误:还必须指定ServiceAccessSecurityGroup Terraform

如何修复:验证\u错误:还必须指定ServiceAccessSecurityGroup Terraform,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我是新来的地球人。当我在私有子网中启动一个简单的EMR集群时,我面临一个问题 它失败,并显示以下错误消息: aws_emr_cluster.emr-test-cluster:[警告]等待emr群集状态为“正在等待”或“正在运行”时出错:终止了\u,出现了\u错误:验证\u错误:如果在专用子网中创建群集时使用自定义安全组,则还必须指定ServiceAccessSecurityGroup 我确实检查了github,看起来它解决了打开的问题。但我使用的是terraform的最新版本(0.11.7)

我是新来的地球人。当我在私有子网中启动一个简单的EMR集群时,我面临一个问题

它失败,并显示以下错误消息:

  • aws_emr_cluster.emr-test-cluster:[警告]等待emr群集状态为“正在等待”或“正在运行”时出错:终止了\u,出现了\u错误:验证\u错误:如果在专用子网中创建群集时使用自定义安全组,则还必须指定ServiceAccessSecurityGroup
我确实检查了github,看起来它解决了打开的问题。但我使用的是terraform的最新版本(0.11.7)

下面是github中报告的问题的github链接

任何关于如何解决这个问题的建议都会非常有用


谢谢

这个问题在Git中得到了修复,因为它是为了显示一个错误,在使用
emr\u管理的\u主\u安全\u组
emr\u管理的\u从\u安全\u组时,应该请求
服务访问\u安全\u组

因此,您需要在EMR资源中提及
服务访问安全组
参数


谢谢。

正如我们所知,要将emr组件放入专用子网,您必须执行以下操作

这些安全组织

然后,在terraform中,您必须从此解决安全组之间的循环依赖关系,并放置以下配置,如下所示

 ec2_attributes {
subnet_id                         = element(var.subnet_ids, count.index)
key_name                          = "${var.ssh_key_id}"
emr_managed_master_security_group = aws_security_group.EmrManagedMasterSecurityGroup.id
emr_managed_slave_security_group  = aws_security_group.EmrManagedSlaveSecurityGroup.id
service_access_security_group = aws_security_group.ServiceAccessSecurityGroup.id

#additional_master_security_groups = aws_security_group.allow_ssh.id
instance_profile = aws_iam_instance_profile.example_ec2_profile.arn
}

资料来源:-

非常感谢。我已经添加了参数,现在可以正常工作了。但是这个参数的值应该是多少?SG需要什么规则?同样的问题,安全组的参数应该是什么?好的,我在这里找到了答案: