github.com/devseccon/trivy@v0.47.1-0.20231123133102-bd902a0bd996/pkg/fanal/analyzer/config/cloudformation/cloudformation.go (about)

     1  package cloudformation
     2  
     3  import (
     4  	"github.com/devseccon/trivy/pkg/fanal/analyzer"
     5  	"github.com/devseccon/trivy/pkg/fanal/analyzer/config"
     6  	"github.com/devseccon/trivy/pkg/misconf"
     7  )
     8  
     9  const (
    10  	analyzerType = analyzer.TypeCloudFormation
    11  	version      = 1
    12  )
    13  
    14  func init() {
    15  	analyzer.RegisterPostAnalyzer(analyzerType, newCloudFormationConfigAnalyzer)
    16  }
    17  
    18  // cloudFormationConfigAnalyzer is an analyzer for detecting misconfigurations in CloudFormation files.
    19  // It embeds config.Analyzer so it can implement analyzer.PostAnalyzer.
    20  type cloudFormationConfigAnalyzer struct {
    21  	*config.Analyzer
    22  }
    23  
    24  func newCloudFormationConfigAnalyzer(opts analyzer.AnalyzerOptions) (analyzer.PostAnalyzer, error) {
    25  	a, err := config.NewAnalyzer(analyzerType, version, misconf.NewCloudFormationScanner, opts)
    26  	if err != nil {
    27  		return nil, err
    28  	}
    29  	return &cloudFormationConfigAnalyzer{Analyzer: a}, nil
    30  }