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