如何使用 Terraform 更改 AWS 安全组的描述?

如何使用 Terraform 更改 AWS 安全组的描述?

我对以下 Terraform 场景有点困惑:

  • 创建 SG 并启动使用该 SG 的实例
  • 修改SG描述

我希望 Terraform 取消 SG 与实例的链接,销毁该 SG,创建一个新的 SG,然后链接该新的 SG。

但是,我看到的是尝试销毁 SG 时超时(显然,因为它正在使用中并且 AWS 不允许这样做)。

我不确定这是一个错误还是我做错了什么。

为了了解我的问题,请按照下面的操作运行应用,然后更改 SG 的描述,然后再次运行应用。

provider "aws" {
  region = "eu-west-1"
}

resource "aws_default_vpc" "default" {
  tags {
    Name = "Default VPC"
  }
}

data "aws_subnet_ids" "example" {
  vpc_id = "${aws_default_vpc.default.id}"
}

resource "aws_security_group" "webserver" {
    name = "staging-webserver"
  description = "meow"

    egress {
        from_port = 0
    to_port = 0
        protocol = "-1"
        cidr_blocks = ["0.0.0.0/0"]
    }

  tags {
    Name = "EBS webserver SG - staging"
  }
}

resource "aws_instance" "dummy" {
  ami               = "ami-f7e8558e"
  instance_type     = "t2.micro"
  availability_zone = "eu-west-1a"
  vpc_security_group_ids = [
    "${aws_security_group.webserver.id}"
  ]
}

答案1

在破坏安全组之前,Terraform 不会取消其与任何事物的链接。

您能做的最好的事情就是创建另一个安全组并使用该安全组,然后删除旧安全组或忽略描述的更改。

相关内容