UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

41 lines (40 loc) 1.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const kms_1 = require("../kms"); const _1 = require("."); const utils_1 = require("../../../utils"); const aws_1 = require("../../../utils/aws"); const base_1 = require("../../base"); class TrailKeyAliasCollector extends base_1.BaseCollector { async collect() { const serviceName = "CloudTrail"; const cloudTrailRegions = this.getRegions(serviceName); const self = this; const trail_with_key_manager = {}; const kmsCollector = new kms_1.KeyDescriptionCollector(); kmsCollector.setSession(self.getSession()); const trailCollector = new _1.CloudTrailsCollector(); trailCollector.setSession(self.getSession()); try { const keyData = await utils_1.CollectorUtil.cachedCollect(kmsCollector); const trailData = await utils_1.CollectorUtil.cachedCollect(trailCollector); for (const region of cloudTrailRegions) { trail_with_key_manager[region] = []; const regionTrails = trailData.cloud_trails[region] ? trailData.cloud_trails[region] : []; const regionKeys = keyData.keys_with_description[region] ? keyData.keys_with_description[region] : []; for (let trail of regionTrails) { if (trail.KmsKeyId) { const KmsKeyWithDescription = regionKeys.find(key => trail.KmsKeyId === key.KeyArn); trail.KmsKeyWithDescription = KmsKeyWithDescription; } trail_with_key_manager[region].push(trail); } } } catch (error) { aws_1.AWSErrorHandler.handle(error); } return { trail_with_key_manager }; } } exports.TrailKeyAliasCollector = TrailKeyAliasCollector;