cloud-report
Version:
Collects and analyzes cloud resources
44 lines (43 loc) • 2.29 kB
JavaScript
;
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;