UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

45 lines (44 loc) 2.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const base_1 = require("../../base"); class RootUserAccessKeysActiveAnalyzer extends base_1.BaseAnalyzer { analyze(params, fullReport) { const credentials = params.credentials; if (!credentials) { return; } const rootUserIndex = credentials.findIndex((credential) => { return credential.user === "<root_account>"; }); if (rootUserIndex === -1) { return; } const root_user_access_keys_active = { type: types_1.CheckAnalysisType.Security }; root_user_access_keys_active.what = "Are there any root user access keys active?"; root_user_access_keys_active.why = `Root user access keys are unrestrictable hence shouldn't be used as damage will be determental if they gets leaked`; root_user_access_keys_active.recommendation = "Recommended to delete and never user root user access keys"; root_user_access_keys_active.benchmark = ['all', 'cis']; const analysis = {}; analysis.resource = credentials[rootUserIndex]; analysis.resourceSummary = { name: "User", value: analysis.resource.user, }; if (credentials[rootUserIndex].access_key_1_active === "false" && credentials[rootUserIndex].access_key_2_active === "false") { analysis.severity = types_1.SeverityStatus.Good; analysis.message = "Root user access keys are not active"; } else { analysis.severity = types_1.SeverityStatus.Failure; analysis.message = "Root user access keys are active"; analysis.action = `Delete the root user access keys instead use IAM user access keys for programmatic access`; } root_user_access_keys_active.regions = { global: [analysis] }; return { root_user_access_keys_active }; } } exports.RootUserAccessKeysActiveAnalyzer = RootUserAccessKeysActiveAnalyzer;