github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/arm/database/adapt.go (about) 1 package database 2 3 import ( 4 "github.com/khulnasoft-lab/defsec/pkg/providers/azure/database" 5 "github.com/khulnasoft-lab/defsec/pkg/scanners/azure" 6 ) 7 8 func Adapt(deployment azure.Deployment) database.Database { 9 return database.Database{ 10 MSSQLServers: adaptMSSQLServers(deployment), 11 MariaDBServers: adaptMariaDBServers(deployment), 12 MySQLServers: adaptMySQLServers(deployment), 13 PostgreSQLServers: adaptPostgreSQLServers(deployment), 14 } 15 } 16 17 func adaptMySQLServers(deployment azure.Deployment) (mysqlDbServers []database.MySQLServer) { 18 for _, resource := range deployment.GetResourcesByType("Microsoft.DBforMySQL/servers") { 19 mysqlDbServers = append(mysqlDbServers, adaptMySQLServer(resource, deployment)) 20 } 21 return mysqlDbServers 22 } 23 24 func adaptMySQLServer(resource azure.Resource, deployment azure.Deployment) database.MySQLServer { 25 return database.MySQLServer{ 26 Metadata: resource.Metadata, 27 Server: database.Server{ 28 Metadata: resource.Metadata, 29 EnableSSLEnforcement: resource.Properties.GetMapValue("sslEnforcement").AsBoolValue(false, resource.Metadata), 30 MinimumTLSVersion: resource.Properties.GetMapValue("minimalTlsVersion").AsStringValue("TLSEnforcementDisabled", resource.Metadata), 31 EnablePublicNetworkAccess: resource.Properties.GetMapValue("publicNetworkAccess").AsBoolValue(false, resource.Metadata), 32 FirewallRules: addFirewallRule(resource), 33 }, 34 } 35 }