UNPKG

aws-resource-remediation

Version:

A module to remediate AWS resources.

217 lines (209 loc) 9.53 kB
/** * Created by kpadmawa on 1/23/2017. */ const constants = require('../src/constants'); var logger = require('node-generic-logger'); logger.init({ file: { name: 'aws-resource-remediation-test.log', level: 'info' }, console: { level: 'debug' } }); function IAMPasswordPolicyRemediatorTests (remediator) { this.resourceRemediator = remediator; } IAMPasswordPolicyRemediatorTests.prototype.test = function () { var self = this; describe('IAMPasswordPolicyRemediator:test', function () { it('IAMPasswordPolicyRemediator:remediateRuleOne', function (done) { var params = { "policyId": "AWS CIS Password Policy", "ruleId": "1", "ruleName": "1.5 Ensure IAM password policy requires at least one uppercase letter", "resourceId": "vl-pun-1989", "connectorId": "AKIAIIDS4HIAUHM6SEYA", "actionContent": "AWS Password Policy Remediation_1.0.0", "actionDefinition": "Update the password policy", "action": "Update password policy to set uppercase letter rule", "result": { "origin": "93534757", "resourceType": "PASSWORD_POLICY" }, "aws.credentials.accessKeyId":"abc", "aws.credentials.secretAccessKey":"xyz", "region": "us-east-1", "moduleName": "passwordPolicy", "method": "updateAccountPasswordPolicy", "payload": { "RequireUppercaseCharacters": "true" } }; self.callRemediate(params, done); }); it('IAMPasswordPolicyRemediator:remediateRuleTwo', function (done) { var params = { "policyId": "AWS CIS Password Policy", "ruleId": "2", "ruleName": "1.6 Ensure IAM password policy require at least one lowercase letter", "resourceId": "vl-pun-1989", "connectorId": "AKIAIIDS4HIAUHM6SEYA", "actionContent": "AWS Password Policy Remediation_1.0.0", "actionDefinition": "Update the password policy", "action": "Update password policy to set lowercase letter rule", "result": { "origin": "93534757", "resourceType": "PASSWORD_POLICY" }, "aws.credentials.accessKeyId":"abc", "aws.credentials.secretAccessKey":"xyz", "region": "us-east-1", "moduleName": "passwordPolicy", "method": "updateAccountPasswordPolicy", "payload": { "RequireLowercaseCharacters": "true" } }; self.callRemediate(params, done); }); it('IAMPasswordPolicyRemediator:remediateRuleThree', function (done) { var params = { "policyId": "AWS CIS Password Policy", "ruleId": "3", "ruleName": "1.7 Ensure IAM password policy require at least one symbol", "resourceId": "vl-pun-1989", "connectorId": "AKIAIIDS4HIAUHM6SEYA", "actionContent": "AWS Password Policy Remediation_1.0.0", "actionDefinition": "Update the password policy", "action": "Update password policy to set one symbol rule", "result": { "origin": "93534757", "resourceType": "PASSWORD_POLICY" }, "aws.credentials.accessKeyId":"abc", "aws.credentials.secretAccessKey":"xyz", "region": "us-east-1", "moduleName": "passwordPolicy", "method": "updateAccountPasswordPolicy", "payload": { "RequireSymbols": "true" } }; self.callRemediate(params, done); }); it('IAMPasswordPolicyRemediator:remediateRuleFour', function (done) { var params = { "policyId": "AWS CIS Password Policy", "ruleId": "4", "ruleName": "1.8 Ensure IAM password policy require at least one number", "resourceId": "vl-pun-1989", "connectorId": "AKIAIIDS4HIAUHM6SEYA", "actionContent": "AWS Password Policy Remediation_1.0.0", "actionDefinition": "Update the password policy", "action": "Update password policy to set one number rule", "result": { "origin": "93534757", "resourceType": "PASSWORD_POLICY" }, "aws.credentials.accessKeyId":"abc", "aws.credentials.secretAccessKey":"xyz", "region": "us-east-1", "moduleName": "passwordPolicy", "method": "updateAccountPasswordPolicy", "payload": { "RequireNumbers": "true" } }; self.callRemediate(params, done); }); it('IAMPasswordPolicyRemediator:remediateRuleFive', function (done) { var params = { "policyId": "AWS CIS Password Policy", "ruleId": "5", "ruleName": "1.9 Ensure IAM password policy requires minimum length of 14 or greater", "resourceId": "vl-pun-1989", "connectorId": "AKIAIIDS4HIAUHM6SEYA", "actionContent": "AWS Password Policy Remediation_1.0.0", "actionDefinition": "Update the password policy", "action": "Update password policy to set minimum length password rule", "result": { "origin": "93534757", "resourceType": "PASSWORD_POLICY" }, "aws.credentials.accessKeyId":"abc", "aws.credentials.secretAccessKey":"xyz", "region": "us-east-1", "moduleName": "passwordPolicy", "method": "updateAccountPasswordPolicy", "payload": { "MinimumPasswordLength": "true" } }; self.callRemediate(params, done); }); it('IAMPasswordPolicyRemediator:remediateRuleSix', function (done) { var params = { "policyId": "AWS CIS Password Policy", "ruleId": "6", "ruleName": "1.10 Ensure IAM password policy prevents password reuse", "resourceId": "vl-pun-1989", "connectorId": "AKIAIIDS4HIAUHM6SEYA", "actionContent": "AWS Password Policy Remediation_1.0.0", "actionDefinition": "Update the password policy", "action": "Update password policy to set password reuse prevention rule", "result": { "origin": "93534757", "resourceType": "PASSWORD_POLICY" }, "aws.credentials.accessKeyId":"abc", "aws.credentials.secretAccessKey":"xyz", "region": "us-east-1", "moduleName": "passwordPolicy", "method": "updateAccountPasswordPolicy", "payload": { "PasswordReusePrevention": "true" } }; self.callRemediate(params, done); }); it('IAMPasswordPolicyRemediator:remediateRuleSeven', function (done) { var params = { "policyId": "AWS CIS Password Policy", "ruleId": "7", "ruleName": "1.11 Ensure IAM password policy expires passwords within 90 days or less", "resourceId": "vl-pun-1989", "connectorId": "AKIAIIDS4HIAUHM6SEYA", "actionContent": "AWS Password Policy Remediation_1.0.0", "actionDefinition": "Update the password policy", "action": "Update password policy to set password maximum age rule", "result": { "origin": "93534757", "resourceType": "PASSWORD_POLICY" }, "aws.credentials.accessKeyId":"abc", "aws.credentials.secretAccessKey":"xyz", "region": "us-east-1", "moduleName": "passwordPolicy", "method": "updateAccountPasswordPolicy", "payload": { "MaxPasswordAge": "true" } }; self.callRemediate(params, done); }); }) }; IAMPasswordPolicyRemediatorTests.prototype.callRemediate = function (params, done) { this.resourceRemediator.remediate(params, function (err, data) { if (err) { logger.error('Got error in remediating IAM password policy for rule :' + params.ruleId, err); logger.error(err.stack); } else { logger.info('Successfully remediated IAM password policy for rule :'+params.ruleId); } }); done(); }; module.exports = IAMPasswordPolicyRemediatorTests;