github.com/aquasecurity/trivy-iac@v0.8.1-0.20240127024015-3d8e412cf0ab/internal/adapters/terraform/aws/iam/groups.go (about) 1 package iam 2 3 import ( 4 "github.com/aquasecurity/defsec/pkg/providers/aws/iam" 5 "github.com/aquasecurity/defsec/pkg/terraform" 6 ) 7 8 func adaptGroups(modules terraform.Modules) []iam.Group { 9 var groups []iam.Group 10 11 for _, groupBlock := range modules.GetResourcesByType("aws_iam_group") { 12 group := iam.Group{ 13 Metadata: groupBlock.GetMetadata(), 14 Name: groupBlock.GetAttribute("name").AsStringValueOrDefault("", groupBlock), 15 } 16 17 if policy, ok := applyForDependentResource( 18 modules, groupBlock.ID(), "name", "aws_iam_group_policy", "group", findPolicy(modules), 19 ); ok && policy != nil { 20 group.Policies = append(group.Policies, *policy) 21 } 22 23 if policy, ok := applyForDependentResource( 24 modules, groupBlock.ID(), "name", "aws_iam_group_policy_attachment", "group", findAttachmentPolicy(modules), 25 ); ok && policy != nil { 26 group.Policies = append(group.Policies, *policy) 27 } 28 29 groups = append(groups, group) 30 } 31 return groups 32 }