github.com/aquasecurity/trivy-iac@v0.8.1-0.20240127024015-3d8e412cf0ab/internal/adapters/terraform/google/iam/convert.go (about) 1 package iam 2 3 import ( 4 "github.com/aquasecurity/defsec/pkg/providers/google/iam" 5 "github.com/aquasecurity/defsec/pkg/terraform" 6 defsecTypes "github.com/aquasecurity/defsec/pkg/types" 7 ) 8 9 func ParsePolicyBlock(block *terraform.Block) []iam.Binding { 10 var bindings []iam.Binding 11 for _, bindingBlock := range block.GetBlocks("binding") { 12 binding := iam.Binding{ 13 Metadata: bindingBlock.GetMetadata(), 14 Members: nil, 15 Role: bindingBlock.GetAttribute("role").AsStringValueOrDefault("", bindingBlock), 16 IncludesDefaultServiceAccount: defsecTypes.BoolDefault(false, bindingBlock.GetMetadata()), 17 } 18 membersAttr := bindingBlock.GetAttribute("members") 19 members := membersAttr.AsStringValues().AsStrings() 20 for _, member := range members { 21 binding.Members = append(binding.Members, defsecTypes.String(member, membersAttr.GetMetadata())) 22 } 23 bindings = append(bindings, binding) 24 } 25 return bindings 26 }