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

     1  package rds
     2  
     3  import (
     4  	"github.com/khulnasoft-lab/defsec/pkg/providers/aws/rds"
     5  	"github.com/khulnasoft-lab/defsec/pkg/scanners/cloudformation/parser"
     6  	"github.com/khulnasoft-lab/defsec/pkg/types"
     7  )
     8  
     9  func getParameterGroups(ctx parser.FileContext) (parametergroups []rds.ParameterGroups) {
    10  
    11  	for _, r := range ctx.GetResourcesByType("AWS::RDS::DBParameterGroup") {
    12  
    13  		paramgroup := rds.ParameterGroups{
    14  			Metadata:               r.Metadata(),
    15  			DBParameterGroupName:   r.GetStringProperty("DBParameterGroupName"),
    16  			DBParameterGroupFamily: r.GetStringProperty("DBParameterGroupFamily"),
    17  			Parameters:             getParameters(r),
    18  		}
    19  
    20  		parametergroups = append(parametergroups, paramgroup)
    21  	}
    22  
    23  	return parametergroups
    24  }
    25  
    26  func getParameters(r *parser.Resource) (parameters []rds.Parameters) {
    27  
    28  	dBParam := r.GetProperty("Parameters")
    29  
    30  	if dBParam.IsNil() || dBParam.IsNotList() {
    31  		return parameters
    32  	}
    33  
    34  	for _, dbp := range dBParam.AsList() {
    35  		parameters = append(parameters, rds.Parameters{
    36  			Metadata:       dbp.Metadata(),
    37  			ParameterName:  types.StringDefault("", dbp.Metadata()),
    38  			ParameterValue: types.StringDefault("", dbp.Metadata()),
    39  		})
    40  	}
    41  	return parameters
    42  }