2019-01-19 02:56:46 +00:00
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
2018-10-11 14:17:57 -07:00
// ABOUT THIS NODE.JS SAMPLE: This sample is part of the SDK for JavaScript Developer Guide topic at
// https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/ec2-example-security-groups.html
2019-01-19 02:56:46 +00:00
// snippet-start:[ec2.JavaScript.SecurityGroups.createSecurityGroup]
2018-10-11 14:17:57 -07:00
// Load the AWS SDK for Node.js
var AWS = require ( "aws-sdk" ) ;
// Load credentials and set region from JSON file
2019-09-30 13:35:01 -07:00
AWS . config . update ( { region : "REGION" } ) ;
2018-10-11 14:17:57 -07:00
// Create EC2 service object
var ec2 = new AWS . EC2 ( { apiVersion : "2016-11-15" } ) ;
// Variable to hold a ID of a VPC
var vpc = null ;
// Retrieve the ID of a VPC
ec2 . describeVpcs ( function ( err , data ) {
if ( err ) {
console . log ( "Cannot retrieve a VPC" , err ) ;
} else {
vpc = data . Vpcs [ 0 ] . VpcId ;
var paramsSecurityGroup = {
2019-01-19 02:56:46 +00:00
Description : "DESCRIPTION" ,
GroupName : "SECURITY_GROUP_NAME" ,
2018-10-11 14:17:57 -07:00
VpcId : vpc ,
} ;
// Create the instance
ec2 . createSecurityGroup ( paramsSecurityGroup , function ( err , data ) {
if ( err ) {
console . log ( "Error" , err ) ;
} else {
var SecurityGroupId = data . GroupId ;
console . log ( "Success" , SecurityGroupId ) ;
var paramsIngress = {
2019-08-06 15:07:02 -07:00
GroupId : "SECURITY_GROUP_ID" ,
2018-10-11 14:17:57 -07:00
IpPermissions : [
{
IpProtocol : "tcp" ,
FromPort : 80 ,
ToPort : 80 ,
IpRanges : [ { CidrIp : "0.0.0.0/0" } ] ,
} ,
{
IpProtocol : "tcp" ,
FromPort : 22 ,
ToPort : 22 ,
IpRanges : [ { CidrIp : "0.0.0.0/0" } ] ,
} ,
] ,
} ;
ec2 . authorizeSecurityGroupIngress ( paramsIngress , function ( err , data ) {
if ( err ) {
console . log ( "Error" , err ) ;
} else {
console . log ( "Ingress Successfully Set" , data ) ;
}
} ) ;
}
} ) ;
}
} ) ;
2019-01-19 02:56:46 +00:00
// snippet-end:[ec2.JavaScript.SecurityGroups.createSecurityGroup]