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

     1  package dynamodb
     2  
     3  import (
     4  	"github.com/khulnasoft-lab/defsec/pkg/providers/aws/dynamodb"
     5  	"github.com/khulnasoft-lab/defsec/pkg/scanners/cloudformation/parser"
     6  	defsecTypes "github.com/khulnasoft-lab/defsec/pkg/types"
     7  )
     8  
     9  func getClusters(file parser.FileContext) (clusters []dynamodb.DAXCluster) {
    10  
    11  	clusterResources := file.GetResourcesByType("AWS::DAX::Cluster")
    12  
    13  	for _, r := range clusterResources {
    14  		cluster := dynamodb.DAXCluster{
    15  			Metadata: r.Metadata(),
    16  			ServerSideEncryption: dynamodb.ServerSideEncryption{
    17  				Metadata: r.Metadata(),
    18  				Enabled:  defsecTypes.BoolDefault(false, r.Metadata()),
    19  				KMSKeyID: defsecTypes.StringDefault("", r.Metadata()),
    20  			},
    21  			PointInTimeRecovery: defsecTypes.BoolUnresolvable(r.Metadata()),
    22  		}
    23  
    24  		if sseProp := r.GetProperty("SSESpecification"); sseProp.IsNotNil() {
    25  			cluster.ServerSideEncryption = dynamodb.ServerSideEncryption{
    26  				Metadata: sseProp.Metadata(),
    27  				Enabled:  r.GetBoolProperty("SSESpecification.SSEEnabled"),
    28  				KMSKeyID: defsecTypes.StringUnresolvable(sseProp.Metadata()),
    29  			}
    30  		}
    31  
    32  		clusters = append(clusters, cluster)
    33  	}
    34  
    35  	return clusters
    36  }