terraform计划希望在导入terraform导入后破坏安全组

在版本0.9.4和0.10.4中发生

我使用Terraform的导入命令导入了AWS安全组列表,如下所示:

terraform import aws_security_group.production_servers sg-xxxxxxx 

当我做:

 terraform plan aws_security_group.production_servers 

一切都很好,但是当我做一个总体的计划时:

 terraform plan - aws_security_group_rule.load_balancer_1 - aws_security_group_rule.load_balancer_1-1 - aws_security_group_rule.load_balancer_1-2 - aws_security_group_rule.load_balancer_1-3 - aws_security_group_rule.production_servers - aws_security_group_rule.production_servers-1 - aws_security_group_rule.production_servers-2 - aws_security_group_rule.production_servers-3 - aws_security_group_rule.production_services_access - aws_security_group_rule.production_services_access-1 - aws_security_group_rule.production_services_access-2 

一些aws_security_group_rule (保存在我的.tfstate文件中)将被删除。

我声明安全组使用aws_security_groupingressegress每个规则。 不确定是否声明这些aws_security_group_rule

不知道我错过了什么,任何指导将不胜感激。

谢谢。

因此,networkingACL和安全组的导入就是这样的

 resource "aws_security_group" "production_servers" {} resource "aws_security_group_rule" "production_servers-1" {} resource "aws_security_group_rule" "production_servers" {} 

你提到你拥有aws_security_group中的所有规则,这是完全正确的。 我更喜欢外面的,因为如果你改变一个规则并且在一个组里有10-15条规则,它就更具可读性。

所以,terraform写了一个没有规则的空白aws_security_group ,并且在状态文件中有一堆外部的aws_security_group_rule ,这与你的TFconfiguration不同。

所以在一个计划中,我会说我需要销毁它们,然后在资源本身中创build它们。

你可能会得到一些没有安全组规则的小细节,但最终它会清理一个应用程序。 只要看看你的aws_security_group的计划,我敢打赌,你所有的规则都列在那里