UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

44 lines (43 loc) 2.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const base_1 = require("../../base"); class RedshiftEncryptionAnalyzer extends base_1.BaseAnalyzer { analyze(params, fullReport) { const allClusters = params.clusters; if (!allClusters) { return undefined; } const encryption_redshift_clusters = { type: types_1.CheckAnalysisType.Security }; encryption_redshift_clusters.what = "Is encryption enabled for RedShift clusters?"; encryption_redshift_clusters.why = "Data at rest should always be encrypted"; encryption_redshift_clusters.recommendation = "Recommended to enable encryption for Redshift Clusters"; encryption_redshift_clusters.benchmark = ['all', 'hipaa']; const allRegionsAnalysis = {}; for (const region in allClusters) { const regionClusters = allClusters[region]; allRegionsAnalysis[region] = []; for (const clusterIdentifier of regionClusters) { const cluster_encryption_analysis = {}; const cluster = clusterIdentifier; cluster_encryption_analysis.resource = cluster; cluster_encryption_analysis.resourceSummary = { name: "Cluster", value: cluster.ClusterIdentifier }; if (cluster.Encrypted) { cluster_encryption_analysis.severity = types_1.SeverityStatus.Good; cluster_encryption_analysis.message = "Encryption enabled"; } else { cluster_encryption_analysis.severity = types_1.SeverityStatus.Failure; cluster_encryption_analysis.message = "Encryption not enabled for Redshift cluster"; cluster_encryption_analysis.action = "Enable encryption at rest for Redshift cluster"; } allRegionsAnalysis[region].push(cluster_encryption_analysis); } } encryption_redshift_clusters.regions = allRegionsAnalysis; return { encryption_redshift_clusters }; } } exports.RedshiftEncryptionAnalyzer = RedshiftEncryptionAnalyzer;