cloud-report
Version:
Collects and analyzes cloud resources
49 lines (48 loc) • 2.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = require("../../../types");
const base_1 = require("../../base");
class CloudTrailsEnabledAnalyzer extends base_1.BaseAnalyzer {
analyze(params, fullReport) {
const allTrails = params.cloud_trails;
if (!allTrails) {
return undefined;
}
const cloud_trails_enabled = { type: types_1.CheckAnalysisType.Security };
cloud_trails_enabled.what = "Is cloud trails enabled for account?";
cloud_trails_enabled.why = `Cloud trails helps understand who did what
and this is utmost important when a security breach happens`;
cloud_trails_enabled.recommendation = "Recommended to enable cloud trails for all regions";
cloud_trails_enabled.benchmark = ['all', 'hipaa'];
const allRegionsAnalysis = {};
for (const region in allTrails) {
const regionTrails = allTrails[region];
const trail_analysis = {};
trail_analysis.resource = regionTrails;
trail_analysis.resourceSummary = {
name: "CloudTrails", value: this.getTrailNames(regionTrails),
};
if (regionTrails.length) {
trail_analysis.severity = types_1.SeverityStatus.Good;
trail_analysis.message = "Cloud trails are enabled";
}
else {
trail_analysis.severity = types_1.SeverityStatus.Failure;
trail_analysis.message = "Cloud trails are not enabled";
trail_analysis.action = "Enable cloud trails for debugging various actions against your account";
}
allRegionsAnalysis[region] = [trail_analysis];
}
cloud_trails_enabled.regions = allRegionsAnalysis;
return { cloud_trails_enabled };
}
getTrailNames(trails) {
if (!trails || !trails.length) {
return "None";
}
return trails.map((trail) => {
return trail.Name;
}).join(", ");
}
}
exports.CloudTrailsEnabledAnalyzer = CloudTrailsEnabledAnalyzer;