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 su código utilice para realizar las solicitudes debe tener los permisos adecuados en AWS (para el servicio y la acción). Para obtener más información, consulte Proporcionar credenciales de AWS.
Creación de un grupo de seguridad
Para crear un grupo de seguridad, llame a la función CreateSecurityGroup de EC2Client con un objeto CreateSecurityGroupRequest que contenga el nombre de la clave.
Incluye
#include <aws/ec2/EC2Client.h> #include <aws/ec2/model/CreateSecurityGroupRequest.h>
Código de
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 al grupo de seguridad, utilice la función AuthorizeSecurityGroupIngress de EC2Client, proporcionando el nombre del grupo de seguridad y las reglas de acceso (IpPermission) que desea asignar al grupo dentro de un objeto AuthorizeSecurityGroupIngressRequest. 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 de
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 un objeto AuthorizeSecurityGroupEgressRequest a la función AuthorizeSecurityGroupEgress del EC2Client.
Consulte el ejemplo completo
Describir grupos de seguridad
Para describir los grupos de seguridad o para obtener información sobre ellos, llame a la función DescribeSecurityGroups del EC2Client con un objeto DescribeSecurityGroupsRequest.
Recibirá un objeto DescribeSecurityGroupsResponse en el resultado, que puede usar para obtener acceso a la lista de grupos de seguridad llamando a su función GetSecurityGroups, que devuelve una lista de objetos SecurityGroup.
Incluye
#include <aws/ec2/EC2Client.h> #include <aws/ec2/model/DescribeSecurityGroupsRequest.h> #include <aws/ec2/model/DescribeSecurityGroupsResponse.h> #include <iomanip> #include <iostream>
Codigo
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 del EC2Client transfiriéndole un objeto DeleteSecurityGroupRequest que contenga el ID del grupo de seguridad que desea 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
-
Grupos de seguridad de Amazon EC2 en la Guía del usuario de Amazon EC2
-
Autorización del tráfico de entrada para sus instancias de Linux en la Guía del usuario de Amazon EC2
-
CreateSecurityGroup en la Referencia de la API de Amazon EC2
-
DescribeSecurityGroups en la Referencia de la API de Amazon EC2
-
DeleteSecurityGroup en la Referencia de la API de Amazon EC2
-
AuthorizeSecurityGroupIngress en la Referencia de la API de Amazon EC2