github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/google/iam/convert.go (about)

     1  package iam
     2  
     3  import (
     4  	"github.com/khulnasoft-lab/defsec/pkg/providers/google/iam"
     5  	"github.com/khulnasoft-lab/defsec/pkg/terraform"
     6  	defsecTypes "github.com/khulnasoft-lab/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  }