繁体   English   中英

Terraform 将现有安全组添加到新的 Auto Scaling ec2 组

[英]Terraform add existing security group to new auto scaling ec2 group

我想将 VPC 中定义的现有安全组添加到 EC2 Auto Scaling 组。 没有定义 LB。 此示例暂时创建了一个 EC2 实例。

Terraform 文档显示这对于使用 sg_attachment 的 EC2 实例是可能的

resource "aws_network_interface_sg_attachment" "bastion" {
  security_group_id    = var.sg_id
  network_interface_id = aws_autoscaling_group.bastion.primary_network_interface_id
}

但是我收到以下错误,可能是因为我使用的是自动缩放组:

错误:不支持的属性

在......\\modules\\ec2_auto_scaling_group\\bastion.tf 第 51 行,在资源“aws_network_interface_sg_attachment”“堡垒”中:51:
network_interface_id = aws_autoscaling_group.bastion.primary_network_interface_id

此对象没有参数、嵌套块或名为“primary_network_interface_id”的导出属性。

我看过自动缩放组附件 - https://www.terraform.io/docs/providers/aws/r/autoscaling_attachment.html

但这根本不是指安全组。

当然 - 我可以隐式指定一个具有所有相同规则的新安全组,或者只是声明一个 ec2 实例。 但是在控制台上创建自动缩放组时 - 您可以选择导入现有的安全组。 所以我想认为 terraform 有一个等价物。

看来我忽略了以前的设置:

resource "aws_launch_configuration" "bastion" {
  # Launch configuration can't be updated, (provisioning)
  # in order to update the resource will be destroyed and rebuilt

  name_prefix = var.bastion_name_prefix

  image_id = data.aws_ami.RHEL_77.id 
  instance_type = var.bastion_instance_type
  key_name = aws_key_pair.bastion.key_name
  associate_public_ip_address = true
  enable_monitoring = false
  security_groups = [var.vpc_main_sg_id,aws_security_group.bastion.id]

  lifecycle {
      create_before_destroy = true
  }
}

将安全组添加到 aws_launch_configuration,修复了该问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM