UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

49 lines (48 loc) 2.18 kB
"use strict"; 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;