github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/cloudformation/aws/mq/broker.go (about)

     1  package mq
     2  
     3  import (
     4  	"github.com/khulnasoft-lab/defsec/pkg/providers/aws/mq"
     5  	"github.com/khulnasoft-lab/defsec/pkg/scanners/cloudformation/parser"
     6  	"github.com/khulnasoft-lab/defsec/pkg/types"
     7  )
     8  
     9  func getBrokers(ctx parser.FileContext) (brokers []mq.Broker) {
    10  	for _, r := range ctx.GetResourcesByType("AWS::AmazonMQ::Broker") {
    11  
    12  		broker := mq.Broker{
    13  			Metadata:     r.Metadata(),
    14  			PublicAccess: r.GetBoolProperty("PubliclyAccessible"),
    15  			Logging: mq.Logging{
    16  				Metadata: r.Metadata(),
    17  				General:  types.BoolDefault(false, r.Metadata()),
    18  				Audit:    types.BoolDefault(false, r.Metadata()),
    19  			},
    20  		}
    21  
    22  		if prop := r.GetProperty("Logs"); prop.IsNotNil() {
    23  			broker.Logging = mq.Logging{
    24  				Metadata: prop.Metadata(),
    25  				General:  prop.GetBoolProperty("General"),
    26  				Audit:    prop.GetBoolProperty("Audit"),
    27  			}
    28  		}
    29  
    30  		brokers = append(brokers, broker)
    31  	}
    32  	return brokers
    33  }