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