Trabajar con grupos de seguridad en Amazon EC2 - AWS SDK for JavaScript

LaAWS SDK for JavaScript versión 3 (v3) es una reescritura de la versión 2 con algunas funciones nuevas y excelentes, incluida la arquitectura modular. Para obtener más información, consulte la Guía para desarrolladores de la versiónAWS SDK for JavaScript 3.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Trabajar con grupos de seguridad en Amazon EC2

JavaScript code example that applies to Node.js execution

Este ejemplo de código de Node.js muestra:

  • Cómo recuperar información acerca de sus grupos de seguridad.

  • Cómo crear un grupo de seguridad para obtener acceso a una instancia de Amazon EC2.

  • Cómo eliminar un grupo de seguridad ya existente.

El escenario

Un grupo de seguridad de Amazon EC2 funciona como un firewall virtual que controla el tráfico de una o varias instancias. Se añaden reglas a cada grupo de seguridad para permitir el tráfico con sus instancias asociadas. Puede modificar las reglas de un grupo de seguridad en cualquier momento: las nuevas reglas se aplican automáticamente a todas las instancias que están asociadas al grupo de seguridad.

En este ejemplo va a utilizar una serie de módulos de Node.js para realizar varias operaciones de Amazon EC2 de en las que haya grupos de seguridad. Los módulos de Node.js usan el SDK para JavaScript para administrar instancias mediante los métodos de clase de cliente de Amazon EC2 de siguientes:

Para obtener más información acerca de los grupos de seguridad de Amazon EC2, consulteGrupos de seguridad de Amazon EC2 para instancias de Linuxen laGuía del usuario de Amazon EC2 para instancias de LinuxoGrupos de seguridad de Amazon EC2 para instancias de Windowsen laGuía del usuario de Amazon EC2 para instancias de Windows.

Tareas previas necesarias

Para configurar y ejecutar este ejemplo, primero debe completar las tareas siguientes:

Descripción de los grupos de seguridad

Cree un módulo de Node.js con el nombre de archivo ec2_describesecuritygroups.js. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a Amazon EC2, cree unAWS.EC2objeto de servicio. Cree un objeto JSON para transferirlo como parámetros como, por ejemplo, los ID de los grupos de seguridad que desea describir. A continuación, llama adescribeSecurityGroupsdel objeto de servicio Amazon EC2.

// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Set the region AWS.config.update({region: 'REGION'}); // Create EC2 service object var ec2 = new AWS.EC2({apiVersion: '2016-11-15'}); var params = { GroupIds: ['SECURITY_GROUP_ID'] }; // Retrieve security group descriptions ec2.describeSecurityGroups(params, function(err, data) { if (err) { console.log("Error", err); } else { console.log("Success", JSON.stringify(data.SecurityGroups)); } });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node ec2_describesecuritygroups.js

Este código de muestra se puede encontrar aquí en GitHub.

Creación de un grupo de seguridad y reglas

Cree un módulo de Node.js con el nombre de archivo ec2_createsecuritygroup.js. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a Amazon EC2, cree unAWS.EC2objeto de servicio. Cree un objeto JSON para los parámetros que especifiquen el nombre del grupo de seguridad, una descripción y el ID de la VPC. Transfiera los parámetros al método createSecurityGroup.

Después de crear correctamente el grupo de seguridad, puede definir sus reglas para permitir el tráfico de entrada. Cree un objeto JSON para parámetros que especifiquen el protocolo IP y los puertos de entrada donde la instancia de Amazon EC2 va a recibir el tráfico. Transfiera los parámetros al método authorizeSecurityGroupIngress.

// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Load credentials and set region from JSON file AWS.config.update({region: 'REGION'}); // 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 = { Description: 'DESCRIPTION', GroupName: 'SECURITY_GROUP_NAME', 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 = { GroupId: 'SECURITY_GROUP_ID', 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); } }); } }); } });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node ec2_createsecuritygroup.js

Este código de muestra se puede encontrar aquí en GitHub.

Eliminación de un grupo de seguridad

Cree un módulo de Node.js con el nombre de archivo ec2_deletesecuritygroup.js. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a Amazon EC2, cree unAWS.EC2objeto de servicio. Cree los parámetros JSON para especificar el nombre del grupo de seguridad que desea eliminar. A continuación, llame al método deleteSecurityGroup.

// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Set the region AWS.config.update({region: 'REGION'}); // Create EC2 service object var ec2 = new AWS.EC2({apiVersion: '2016-11-15'}); var params = { GroupId: 'SECURITY_GROUP_ID' }; // Delete the security group ec2.deleteSecurityGroup(params, function(err, data) { if (err) { console.log("Error", err); } else { console.log("Security Group Deleted"); } });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node ec2_deletesecuritygroup.js

Este código de muestra se puede encontrar aquí en GitHub.