UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

44 lines (43 loc) 2.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const base_1 = require("../../base"); class ResourceGroupsUsageAnalyzer extends base_1.BaseAnalyzer { analyze(params, fullReport) { const allResourceGroups = params.resource_groups; if (!allResourceGroups) { return undefined; } const resource_groups_used = { type: types_1.CheckAnalysisType.Security }; resource_groups_used.what = "Are Resource groups used to track the AWS resources?"; resource_groups_used.why = `Resource groups helps to track various AWS resources using Tags like Department, team, project etc`; resource_groups_used.recommendation = `Recommended use Resource groups to track and monitor the AWS resources for better management of AWS services`; resource_groups_used.benchmark = ['all', 'hipaa']; const allRegionsAnalysis = {}; for (const region in allResourceGroups) { const regionResourceGroups = allResourceGroups[region]; allRegionsAnalysis[region] = []; const resourceGroupAnalysis = {}; resourceGroupAnalysis.resource = regionResourceGroups; resourceGroupAnalysis.resourceSummary = { name: "Number of ResourceGroups", value: `${regionResourceGroups.length}`, }; if (regionResourceGroups && regionResourceGroups.length) { resourceGroupAnalysis.severity = types_1.SeverityStatus.Good; resourceGroupAnalysis.message = "Resource groups are used"; } else { resourceGroupAnalysis.severity = types_1.SeverityStatus.Warning; resourceGroupAnalysis.message = "Resource groups are not used"; resourceGroupAnalysis.action = "Use Resource groups to track and monitor the AWS resources"; } allRegionsAnalysis[region].push(resourceGroupAnalysis); } resource_groups_used.regions = allRegionsAnalysis; return { resource_groups_used }; } } exports.ResourceGroupsUsageAnalyzer = ResourceGroupsUsageAnalyzer;