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