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