github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/cloudformation/aws/neptune/cluster.go (about) 1 package neptune 2 3 import ( 4 "github.com/khulnasoft-lab/defsec/pkg/providers/aws/neptune" 5 "github.com/khulnasoft-lab/defsec/pkg/scanners/cloudformation/parser" 6 "github.com/khulnasoft-lab/defsec/pkg/types" 7 ) 8 9 func getClusters(ctx parser.FileContext) (clusters []neptune.Cluster) { 10 for _, r := range ctx.GetResourcesByType("AWS::Neptune::DBCluster") { 11 12 cluster := neptune.Cluster{ 13 Metadata: r.Metadata(), 14 Logging: neptune.Logging{ 15 Metadata: r.Metadata(), 16 Audit: getAuditLog(r), 17 }, 18 StorageEncrypted: r.GetBoolProperty("StorageEncrypted"), 19 KMSKeyID: r.GetStringProperty("KmsKeyId"), 20 } 21 clusters = append(clusters, cluster) 22 } 23 return clusters 24 } 25 26 func getAuditLog(r *parser.Resource) types.BoolValue { 27 if logsProp := r.GetProperty("EnableCloudwatchLogsExports"); logsProp.IsList() { 28 if logsProp.Contains("audit") { 29 return types.Bool(true, logsProp.Metadata()) 30 } 31 } 32 33 return types.BoolDefault(false, r.Metadata()) 34 }