当 Terraform 采用 VPC 中默认安全组的所有权时,它将删除所有当前规则并添加default_security_group
资源中指定的任何规则。但是,当您“销毁”资源时,它不会删除它添加到默认安全组的规则。我知道它不会删除默认安全组,但我希望它会删除它添加的规则。有没有直接删除这些规则的方法?
我目前的解决方法是拥有一个包含空default_security_group
资源的单独模块。我在运行销毁之前构建了它,并且该构建删除了规则。有没有更好的办法?
当 Terraform 采用 VPC 中默认安全组的所有权时,它将删除所有当前规则并添加default_security_group
资源中指定的任何规则。但是,当您“销毁”资源时,它不会删除它添加到默认安全组的规则。我知道它不会删除默认安全组,但我希望它会删除它添加的规则。有没有直接删除这些规则的方法?
我目前的解决方法是拥有一个包含空default_security_group
资源的单独模块。我在运行销毁之前构建了它,并且该构建删除了规则。有没有更好的办法?
“采用所有权”是什么意思?您是否将默认安全组导入您的状态文件?
如果是,也许您应该使用数据源而不是资源来处理默认安全组:
data "aws_security_group" "default" {
name = "default"
}
您可以使用 获取默认安全组的 ID "${data.aws_security_group.default.vpc_id}"
。现在只需添加规则,可以在不触及安全组本身的情况下将其销毁。
文档目前没有说明这一点,但您可以使用以下方法导入默认安全组:
terraform import aws_default_security_group.california sg-<id>
我在将资源从一个解决方案移动到另一个解决方案时发现了这一点,并且忘记使用terraform state rm
从初始代码库中删除资源:)
然后,您应该能够像往常一样编辑资源。