UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

44 lines (43 loc) 2.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const cloudfront_1 = require("../../../utils/aws/cloudfront"); const base_1 = require("../../base"); class DistributionLogsAnalyzer extends base_1.BaseAnalyzer { analyze(params, fullReport) { const allDistributionConfigs = params.distribution_configs; if (!allDistributionConfigs) { return undefined; } const distributions_logs_enabled = { type: types_1.CheckAnalysisType.OperationalExcellence }; distributions_logs_enabled.what = "Are access logs enabled for CloudFront distributions?"; distributions_logs_enabled.why = `It is important to enabled access logs for the distributions to understand access patterns and come with better caching strategies.`; distributions_logs_enabled.recommendation = "Recommended to enable access logs for all distributions."; distributions_logs_enabled.benchmark = ['all']; const allDistributionsAnalysis = []; for (const distributionId in allDistributionConfigs) { const distribution = allDistributionConfigs[distributionId]; const distributionsAnalysis = {}; distributionsAnalysis.resource = { distributionId, logging: distribution.Logging }; const distributionAlias = cloudfront_1.CloudFrontUtil.getAliasName(distribution); distributionsAnalysis.resourceSummary = { name: "Distribution", value: distributionAlias ? `${distributionAlias} | ${distributionId}` : distributionId, }; if (distribution.Logging.Enabled) { distributionsAnalysis.severity = types_1.SeverityStatus.Good; distributionsAnalysis.message = "Access Logs are enabled."; } else { distributionsAnalysis.severity = types_1.SeverityStatus.Warning; distributionsAnalysis.message = "Access Logs are not enabled."; distributionsAnalysis.action = "Enable Access Logs."; } allDistributionsAnalysis.push(distributionsAnalysis); } distributions_logs_enabled.regions = { global: allDistributionsAnalysis }; return { distributions_logs_enabled }; } } exports.DistributionLogsAnalyzer = DistributionLogsAnalyzer;