UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

45 lines (44 loc) 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const base_1 = require("../../base"); class DescribeMetricsForAlarmsAnalyzer extends base_1.BaseAnalyzer { analyze(params, fullReport) { const metrics = params.metrics; if (!metrics) { return undefined; } const allMetrics = fullReport["aws.cloudwatch"].metrics; const describe_metrics_for_alarms = { type: types_1.CheckAnalysisType.Security }; describe_metrics_for_alarms.what = "Is a log metric filter and alarm exist for defined changes in your AWS Infra?"; describe_metrics_for_alarms.why = "Ensure there is an Amazon CloudWatch alarm created and configured in your AWS account to track the predefined changes."; describe_metrics_for_alarms.recommendation = "Recommended to create log metric filter for the defined metric."; describe_metrics_for_alarms.benchmark = ['all', 'hipaa']; const allRegionsAnalysis = {}; for (const region in allMetrics) { const regionAlarms = allMetrics[region] || []; allRegionsAnalysis[region] = []; for (const metric of regionAlarms) { const metricAnalysis = {}; metricAnalysis.resource = { metric }; metricAnalysis.resourceSummary = { name: "metricName", value: metric.MetricName }; if (metric.data.length) { metricAnalysis.severity = types_1.SeverityStatus.Good; metricAnalysis.message = "Log metrics are enabled"; } else { metricAnalysis.severity = types_1.SeverityStatus.Failure; metricAnalysis.message = "Log metrics are enabled"; metricAnalysis.action = "Create Log metrics for the identified metric"; } allRegionsAnalysis[region].push(metricAnalysis); } } describe_metrics_for_alarms.regions = allRegionsAnalysis; return { describe_metrics_for_alarms }; } } exports.DescribeMetricsForAlarmsAnalyzer = DescribeMetricsForAlarmsAnalyzer;