UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

43 lines (42 loc) 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const base_1 = require("../../base"); class UserAccountsMfaEnabledAnalyzer extends base_1.BaseAnalyzer { analyze(params, fullReport) { const credentials = params.credentials; if (!credentials) { return; } const userCredentials = credentials.filter((credential) => { return credential.user !== "<root_account>"; }); const user_accounts_mfa_enabled = { type: types_1.CheckAnalysisType.Security }; user_accounts_mfa_enabled.what = "Are there any user access keys unused?"; user_accounts_mfa_enabled.why = `It is important to delete unused or unneeded access keys as it reduces risk of misusing them`; user_accounts_mfa_enabled.recommendation = "Recommended to delete unused user access keys regularly"; user_accounts_mfa_enabled.benchmark = ['all', 'cis']; const analysis = userCredentials.map((credential) => { const user_account_mfa_enabled = {}; user_account_mfa_enabled.resource = credential; user_account_mfa_enabled.resourceSummary = { name: "User", value: user_account_mfa_enabled.resource.user, }; if (credential.mfa_active === "true") { user_account_mfa_enabled.severity = types_1.SeverityStatus.Good; user_account_mfa_enabled.message = "User account is MFA enabled"; } else { user_account_mfa_enabled.severity = types_1.SeverityStatus.Failure; user_account_mfa_enabled.message = "User account is not MFA enabled"; user_account_mfa_enabled.action = "Enable MFA for the user"; } return user_account_mfa_enabled; }); user_accounts_mfa_enabled.regions = { global: analysis }; return { user_accounts_mfa_enabled }; } } exports.UserAccountsMfaEnabledAnalyzer = UserAccountsMfaEnabledAnalyzer;