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