UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

56 lines (55 loc) 2.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const base_1 = require("../../base"); class ExpiredCertificatesUsedAnalyzer extends base_1.BaseAnalyzer { analyze(params, fullReport) { const allCertificates = params.certificate_details; if (!allCertificates) { return undefined; } const expired_certificates_used = { type: types_1.CheckAnalysisType.Reliability }; expired_certificates_used.what = "Are there any expired certificates in use?"; expired_certificates_used.why = `Expired certificates can make services inaccessible for your customers so they shouldn't used`; expired_certificates_used.recommendation = `Recommended to remove the expired certificates from usage`; expired_certificates_used.benchmark = ['all']; const allRegionsAnalysis = {}; for (const region in allCertificates) { allRegionsAnalysis[region] = []; const regionCertificates = allCertificates[region]; for (const certificate of regionCertificates) { const certificate_analysis = {}; certificate_analysis.resource = { AssociatedResources: certificate.InUseBy, CertificateArn: certificate.CertificateArn, DomainName: certificate.DomainName, }; certificate_analysis.resourceSummary = { name: "Certificate", value: `${certificate.DomainName} | ${this.getCertificateId(certificate.CertificateArn)}`, }; if (certificate.Status !== "EXPIRED") { continue; } if (certificate.InUseBy && certificate.InUseBy.length > 0) { certificate_analysis.severity = types_1.SeverityStatus.Failure; certificate_analysis.message = "Expired Certificate is use: " + certificate.InUseBy.join(" "); certificate_analysis.action = "Update the resource certificate"; } else { certificate_analysis.severity = types_1.SeverityStatus.Info; certificate_analysis.message = "Expired Certificates can cause confusion"; certificate_analysis.action = "Delete the expired certificate"; } allRegionsAnalysis[region].push(certificate_analysis); } } expired_certificates_used.regions = allRegionsAnalysis; return { expired_certificates_used }; } getCertificateId(certificateArn) { return certificateArn.split("/").pop(); } } exports.ExpiredCertificatesUsedAnalyzer = ExpiredCertificatesUsedAnalyzer;