@@ -22,9 +22,6 @@ func NewAwsSecurityGroupRuleInvalidCidrBlockRule() *AwsSecurityGroupRuleInvalidC
2222 return & AwsSecurityGroupRuleInvalidCidrBlockRule {
2323 resourceType : "aws_security_group_rule" ,
2424 remoteAccessPorts : []int {22 , 3389 },
25-
26- // todo extrair os resource types daqui?
27-
2825 }
2926}
3027
@@ -70,10 +67,6 @@ func (r *AwsSecurityGroupRuleInvalidCidrBlockRule) Check(runner tflint.Runner) e
7067
7168 for _ , resource := range resources .Blocks {
7269 typeAttribute , exists := resource .Body .Attributes ["type" ]
73- // well this cant not exist
74- if ! exists {
75- continue
76- }
7770
7871 var sgType string
7972 err := runner .EvaluateExpr (typeAttribute .Expr , & sgType , nil )
@@ -109,18 +102,16 @@ func (r *AwsSecurityGroupRuleInvalidCidrBlockRule) Check(runner tflint.Runner) e
109102 }
110103
111104 cidrBlocksAttribute , exists := resource .Body .Attributes ["cidr_blocks" ]
112- if ! exists {
113- continue
114- }
115-
116- var cidrBlocks []string
117- err = runner .EvaluateExpr (cidrBlocksAttribute .Expr , & cidrBlocks , nil )
118- if doesIpv4CidrBlocksAllowAll (cidrBlocks ) {
119- return runner .EmitIssue (
120- r ,
121- fmt .Sprintf ("cidr_blocks can not contain '0.0.0.0/0' when allowing 'ingress' access to ports %v" , r .remoteAccessPorts ),
122- cidrBlocksAttribute .Expr .Range (),
123- )
105+ if exists {
106+ var cidrBlocks []string
107+ err = runner .EvaluateExpr (cidrBlocksAttribute .Expr , & cidrBlocks , nil )
108+ if containsIpv4CidrBlocksAllowAll (cidrBlocks ) {
109+ return runner .EmitIssue (
110+ r ,
111+ fmt .Sprintf ("cidr_blocks can not contain '0.0.0.0/0' when allowing 'ingress' access to ports %v" , r .remoteAccessPorts ),
112+ cidrBlocksAttribute .Expr .Range (),
113+ )
114+ }
124115 }
125116
126117 ipv6CidrBlocksAttribute , exists := resource .Body .Attributes ["ipv6_cidr_blocks" ]
@@ -130,7 +121,7 @@ func (r *AwsSecurityGroupRuleInvalidCidrBlockRule) Check(runner tflint.Runner) e
130121
131122 var ipv6CidrBlocks []string
132123 err = runner .EvaluateExpr (ipv6CidrBlocksAttribute .Expr , & ipv6CidrBlocks , nil )
133- if doesIpv6CidrBlocksAllowAll (ipv6CidrBlocks ) {
124+ if containsIpv6CidrBlocksAllowAll (ipv6CidrBlocks ) {
134125 return runner .EmitIssue (
135126 r ,
136127 fmt .Sprintf ("ipv6_cidr_blocks can not contain '::/0' when allowing 'ingress' access to ports %v" , r .remoteAccessPorts ),
@@ -157,7 +148,7 @@ func doesPortRangeContainsPorts(fromPort int, toPort int, ports []int) bool {
157148 return false
158149}
159150
160- func doesIpv4CidrBlocksAllowAll (cidrBlocks []string ) bool {
151+ func containsIpv4CidrBlocksAllowAll (cidrBlocks []string ) bool {
161152 for _ , cidrBlock := range cidrBlocks {
162153 if cidrBlock == "0.0.0.0/0" {
163154 return true
@@ -166,7 +157,7 @@ func doesIpv4CidrBlocksAllowAll(cidrBlocks []string) bool {
166157 return false
167158}
168159
169- func doesIpv6CidrBlocksAllowAll (ipv6CidrBlocks []string ) bool {
160+ func containsIpv6CidrBlocksAllowAll (ipv6CidrBlocks []string ) bool {
170161 for _ , cidrBlock := range ipv6CidrBlocks {
171162 if cidrBlock == "::/0" {
172163 return true
0 commit comments