cloud-report
Version:
Collects and analyzes cloud resources
40 lines (39 loc) • 2.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = require("../../../types");
const base_1 = require("../../base");
class BucketAnalyticsAnalyzer extends base_1.BaseAnalyzer {
analyze(params) {
const allBucketAnalyticsConfig = params.bucket_analytics;
if (!allBucketAnalyticsConfig) {
return undefined;
}
const bucket_analytics_enabled = { type: types_1.CheckAnalysisType.CostOptimization };
bucket_analytics_enabled.what = "Is S3 Bucket Analytics enabled?";
bucket_analytics_enabled.why = `Bucket Analytics gives insights into how
object are being accessed and using this information we can get life cycle rule to reduce cost.`;
bucket_analytics_enabled.recommendation = "Recommended to enable Analytics for all buckets";
bucket_analytics_enabled.benchmark = ['all'];
const allBucketsAnalysis = [];
for (const bucketName in allBucketAnalyticsConfig) {
const bucket_analysis = {};
bucket_analysis.resource = { bucketName, bucketAnalyticsConfig: allBucketAnalyticsConfig[bucketName] };
bucket_analysis.resourceSummary = {
name: "Bucket", value: bucketName,
};
if (allBucketAnalyticsConfig[bucketName].length > 0) {
bucket_analysis.severity = types_1.SeverityStatus.Good;
bucket_analysis.message = "Bucket Analytics is already enabled";
}
else {
bucket_analysis.severity = types_1.SeverityStatus.Warning;
bucket_analysis.message = "Bucket Analytics is not enabled";
bucket_analysis.action = "Enable Bucket Analytics";
}
allBucketsAnalysis.push(bucket_analysis);
}
bucket_analytics_enabled.regions = { global: allBucketsAnalysis };
return { bucket_analytics_enabled };
}
}
exports.BucketAnalyticsAnalyzer = BucketAnalyticsAnalyzer;