Monday 10 April 2017

Node JS Security Group Creation AWS

I have a JSON file that I'm calling into a file:

[
    {
    "IpProtocol": "TCP",
    "FromPort": 0,
    "ToPort": 65535,
    "UserIdGroupPairs": [
      {
        "UserId": "10393084",
        "GroupName": "Testgroup",
        "GroupId": "sg-12345",
        "VpcId": "vpc-c062aba5",
        "Description": "This is a test group for our ip rules"
      }
    ],
    "IpRanges": [
      {
        "CidrIp": "0.0.0.0/0"
      }
    ],
    "Ipv6Ranges": [
      {
        "CidrIpv6": "::0"
      }
    ],
    "PrefixListIds": [
      {
        "PrefixListId": "string"
      }
    ]
    }
]

My JSON file looks like this:

  message: 'There were 3 validation errors:\n* MissingRequiredParameter: Missing required key \'GroupName\' in params\n* MissingRequiredParameter: Missing required key \'Description\' in params\n* UnexpectedParameter: Unexpected key \'0\' found in params',
  code: 'MultipleValidationErrors',
  errors:

The error group name and description is clearly there. Not sure why I'm getting these errors. This is what my code looks like:

'use strict';

process.env.AWS_PROFILE

var PropertiesReader = require('properties-reader');
var AWS = require('aws-sdk')
var properties = PropertiesReader('/Users/testuser/.aws/credentials');

AWS.config.update({
        accessKeyId : properties.get('aws_access_key_id'),
        secretAccessKey : properties.get('aws_secret_access_key'),
        region : 'us-east-1'
})

var ec2 = new AWS.EC2({apiVersion: '2016-11-15'});

// Load credentials and set region from JSON file
// Load in security group parameters
let securityParams = require('./securityParams.json');
let securityParamsJSON = JSON.stringify(securityParams);

module.exports = {
    //Exports creation of Security Groups
    createSecurityGroup: (req, res) => {
        ec2.createSecurityGroup(securityParams, function(err, data) {
            if (err) {
                return (console.log("Error", err));
            }
            // Pass the Json as a parameter in this function
            ec2.authorizeSecurityGroupIngress(securityParams, function(err, data) {
                if (err) {
                    res.serverError(err, err.stack);
                } else {
                    res.ok(data);
                    console.log('Ingress Security Rules Created');
                }
            })
            // Pass the Json as a parameter in this function
            ec2.authorizeSecurityGroupEgress(securityParams, function(err, data) {
                if (err) {
                    res.serverError(err, err.stack);
                } else {
                    res.ok(data);
                    console.log('Egress Security Rules Created');
                }
            })
        })
    }
  }
module.exports.createSecurityGroup();

I'm just trying to create security groups in AWS through this script.



via user2019182

No comments:

Post a Comment