【问题标题】:How do I add a new security rule to existing EC2 instance using terraform如何使用 terraform 向现有 EC2 实例添加新的安全规则
【发布时间】:2023-03-29 20:31:01
【问题描述】:

我有一个已经在 AWS 上运行的 EC2 实例,并定义了安全组和规则。

如果假设,我需要在该实例上打开一个端口,如何使用 terraform 将新的安全规则添加到附加到该实例的现有安全组?

每次我尝试更改端口时,都会创建一个具有相同名称的新安全组,导致重名错误

我正在为已经存在的安全组编写规则:

       resource "aws_security_group_rule" "rule1" {
           count           = "${var.count}"
           type            = "ingress"
           from_port       = "${var.portNumber}"
           to_port         = "${var.toPort}"
           protocol        = "${var.protocol}"
           cidr_blocks = "${var.cidr_blocks}"
           security_group_id  = "sg-061e#####8"
   }

     resource "aws_security_group_rule" "rule2" {
           type            = "ingress"
           from_port       = "${var.portNumber2}"
           to_port         = "${var.toPort2}"
           protocol        = "${var.protocol2}"
          # Opening to 0.0.0.0/0 can lead to security vulnerabilities.
           cidr_blocks = "${var.cidr_blocks2}"
           security_group_id  =  "sg-061e#####8"
     }



    resource "aws_instance" "example" {
         ami = "ami-0375ca3842950ade6"
         instance_type = "t2.micro"
         key_name   = "${aws_key_pair.deployer.id}"
         associate_public_ip_address = true
         #security_groups   = ["sg-061e11f267df00668"]
         vpc_security_group_ids = [ "sg-061e#####8"] 

}

如何向现有安全组添加安全规则?

【问题讨论】:

  • 您能否编辑您的问题以包含您的 Terraform 代码,解释您所做的导致此问题的更改以及您进行所述更改时的计划输出?
  • 只是为了确认一下 - 如果您不更改您的 terraform 代码,它是否在不进行任何更改的情况下成功计划/应用?您能否详细说明您正在进行的更改 - 您是在添加新规则,还是在更新 var.portNumbervar.toPort
  • 安全组 (sg-0$23232*^*eb7) 开放了 5985 端口,在安全规则中我尝试配置安全规则,使其打开端口 6556
  • 这里的问题是如何编辑或添加新规则到现有安全组
  • 您是否手动创建和/或编辑安全组?我过去在手动修改安全组并运行 terraform apply 后遇到过这个问题。

标签: amazon-web-services terraform aws-security-group


【解决方案1】:

您可以添加另一个名称与“allow_all”不同的安全组规则,这就是您遇到重名问题的原因。例如,可能类似于“allow-all-https”。您还应该在 terraform 中创建规则,然后在规则资源创建块中引用它。

【讨论】:

  • 谢谢 Michael,我已经编辑了 terraform 代码。在那里你可以看到我正在创建两个规则并将其附加到安全组“sg-061e#####8”。让我们假设,我创建了一个具有相同配置的虚拟机。它将反过来在安全规则中定义两个打开的端口(例如:3306,5985)。如果我现在必须打开其他端口怎么办?
猜你喜欢
  • 2018-01-01
  • 2017-10-25
  • 1970-01-01
  • 1970-01-01
  • 2018-08-25
  • 2019-12-17
  • 2018-05-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多