UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

43 lines (42 loc) 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const base_1 = require("../../base"); class KMSKeyRotationAnalyzer extends base_1.BaseAnalyzer { analyze(params, fullReport) { const allKeys = params.key_rotation; if (!allKeys) { return undefined; } const kms_key_rotation_cmk = { type: types_1.CheckAnalysisType.Security }; kms_key_rotation_cmk.what = "Is key rotation enabled for CMK keys?"; kms_key_rotation_cmk.why = "Key rotation should be enabled for CMK keys"; kms_key_rotation_cmk.recommendation = "Recommended to enable key rotation for CMK keys"; kms_key_rotation_cmk.benchmark = ['all', 'hipaa']; const allRegionsAnalysis = {}; for (const region in allKeys) { const regionKeys = allKeys[region]; allRegionsAnalysis[region] = []; for (const key of regionKeys) { const key_rotation_analysis = {}; key_rotation_analysis.resource = key; key_rotation_analysis.resourceSummary = { name: "Key", value: key.KeyArn }; if (key.KeyRotationEnabled) { key_rotation_analysis.severity = types_1.SeverityStatus.Good; key_rotation_analysis.message = "Key Rotation enabled"; } else { key_rotation_analysis.severity = types_1.SeverityStatus.Warning; key_rotation_analysis.message = "Key Rotation not enabled"; key_rotation_analysis.action = "Enable Key Rotation for customer managed keys"; } allRegionsAnalysis[region].push(key_rotation_analysis); } } kms_key_rotation_cmk.regions = allRegionsAnalysis; return { kms_key_rotation_cmk }; } } exports.KMSKeyRotationAnalyzer = KMSKeyRotationAnalyzer;