Trabajar con grupos de seguridad en Amazon EC2 - AWS SDK para C++

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

Requisitos previos

Antes de comenzar, le recomendamos que lea Primeros pasos con el AWS SDK para C++.

Descargue el código de ejemplo y compile la solución tal y como se describe en Introducción a los ejemplos de código.

Para ejecutar los ejemplos, el perfil de usuario que utiliza tu código para realizar las solicitudes debe tener los permisos adecuados AWS (para el servicio y la acción). Para obtener más información, consulte Proporcionar AWS credenciales.

Creación de un grupo de seguridad

Para crear un grupo de seguridad, llame a la CreateSecurityGroup función del EC2 cliente con un nombre CreateSecurityGroupRequestque contenga el nombre de la clave.

Incluye

#include <aws/ec2/EC2Client.h> #include <aws/ec2/model/CreateSecurityGroupRequest.h>

Código

Aws::EC2::EC2Client ec2Client(clientConfiguration); Aws::EC2::Model::CreateSecurityGroupRequest request; request.SetGroupName(groupName); request.SetDescription(description); request.SetVpcId(vpcID); const Aws::EC2::Model::CreateSecurityGroupOutcome outcome = ec2Client.CreateSecurityGroup(request); if (!outcome.IsSuccess()) { std::cerr << "Failed to create security group:" << outcome.GetError().GetMessage() << std::endl; return false; } std::cout << "Successfully created security group named " << groupName << std::endl;

Consulte el ejemplo completo

Configuración de un grupo de seguridad

Un grupo de seguridad puede controlar el tráfico de entrada y salida a sus instancias de Amazon EC2.

Para añadir reglas de entrada a su grupo de seguridad, utilice la AuthorizeSecurityGroupIngress función del EC2 cliente, proporcionando el nombre del grupo de seguridad y las reglas de acceso (IpPermission) que desee asignarle dentro de un AuthorizeSecurityGroupIngressRequestobjeto. El siguiente ejemplo muestra cómo añadir permisos de IP a un grupo de seguridad.

Incluye

#include <aws/ec2/model/AuthorizeSecurityGroupIngressRequest.h>

Código

Aws::EC2::Model::AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest; authorizeSecurityGroupIngressRequest.SetGroupId(groupID);
Aws::String ingressIPRange = "203.0.113.0/24"; // Configure this for your allowed IP range. Aws::EC2::Model::IpRange ip_range; ip_range.SetCidrIp(ingressIPRange); Aws::EC2::Model::IpPermission permission1; permission1.SetIpProtocol("tcp"); permission1.SetToPort(80); permission1.SetFromPort(80); permission1.AddIpRanges(ip_range); authorize_request.AddIpPermissions(permission1); Aws::EC2::Model::IpPermission permission2; permission2.SetIpProtocol("tcp"); permission2.SetToPort(22); permission2.SetFromPort(22); permission2.AddIpRanges(ip_range); authorize_request.AddIpPermissions(permission2);
Aws::EC2::Model::AuthorizeSecurityGroupIngressOutcome authorizeSecurityGroupIngressOutcome = ec2Client.AuthorizeSecurityGroupIngress(authorizeSecurityGroupIngressRequest); if (authorizeSecurityGroupIngressOutcome.IsSuccess()) { std::cout << "Successfully authorized security group ingress." << std::endl; } else { std::cerr << "Error authorizing security group ingress: " << authorizeSecurityGroupIngressOutcome.GetError().GetMessage() << std::endl; }

Para añadir una regla de salida al grupo de seguridad, proporcione datos similares en y AuthorizeSecurityGroupEgressRequesta la AuthorizeSecurityGroupEgress función del EC2 cliente.

Consulte el ejemplo completo

Describir grupos de seguridad

Para describir sus grupos de seguridad u obtener información sobre ellos, llame a la DescribeSecurityGroups función del EC2 cliente con un DescribeSecurityGroupsRequest.

DescribeSecurityGroupsResponseEn el resultado recibirá un objeto que podrá utilizar para acceder a la lista de grupos de seguridad llamando a su GetSecurityGroups función, que devuelve una lista de SecurityGroupobjetos.

Incluye

#include <aws/ec2/EC2Client.h> #include <aws/ec2/model/DescribeSecurityGroupsRequest.h> #include <aws/ec2/model/DescribeSecurityGroupsResponse.h> #include <iomanip> #include <iostream>

Código

Aws::EC2::EC2Client ec2Client(clientConfiguration); Aws::EC2::Model::DescribeSecurityGroupsRequest request; if (!groupID.empty()) { request.AddGroupIds(groupID); } Aws::String nextToken; do { if (!nextToken.empty()) { request.SetNextToken(nextToken); } Aws::EC2::Model::DescribeSecurityGroupsOutcome outcome = ec2Client.DescribeSecurityGroups(request); if (outcome.IsSuccess()) { std::cout << std::left << std::setw(32) << "Name" << std::setw(30) << "GroupId" << std::setw(30) << "VpcId" << std::setw(64) << "Description" << std::endl; const std::vector<Aws::EC2::Model::SecurityGroup> &securityGroups = outcome.GetResult().GetSecurityGroups(); for (const auto &securityGroup: securityGroups) { std::cout << std::left << std::setw(32) << securityGroup.GetGroupName() << std::setw(30) << securityGroup.GetGroupId() << std::setw(30) << securityGroup.GetVpcId() << std::setw(64) << securityGroup.GetDescription() << std::endl; } } else { std::cerr << "Failed to describe security groups:" << outcome.GetError().GetMessage() << std::endl; return false; } nextToken = outcome.GetResult().GetNextToken(); } while (!nextToken.empty());

Consulte el ejemplo completo

Eliminación de un grupo de seguridad

Para eliminar un grupo de seguridad, llame a la DeleteSecurityGroup función del EC2 cliente y pásele una DeleteSecurityGroupRequestque contenga el ID del grupo de seguridad que desee eliminar.

Incluye

#include <aws/ec2/EC2Client.h> #include <aws/ec2/model/DeleteSecurityGroupRequest.h> #include <iostream>

Código

Aws::EC2::EC2Client ec2Client(clientConfiguration); Aws::EC2::Model::DeleteSecurityGroupRequest request; request.SetGroupId(securityGroupID); Aws::EC2::Model::DeleteSecurityGroupOutcome outcome = ec2Client.DeleteSecurityGroup(request); if (!outcome.IsSuccess()) { std::cerr << "Failed to delete security group " << securityGroupID << ":" << outcome.GetError().GetMessage() << std::endl; } else { std::cout << "Successfully deleted security group " << securityGroupID << std::endl; }

Consulte el ejemplo completo

Más información