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