Trabajar con grupos de seguridad en Amazon EC2
Creación de un grupo de seguridad
Para crear un grupo de seguridad, llame al método createSecurityGroup de Ec2Client con un objeto CreateSecurityGroupRequest
Importaciones
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.ec2.Ec2Client; import software.amazon.awssdk.services.ec2.model.CreateSecurityGroupRequest; import software.amazon.awssdk.services.ec2.model.AuthorizeSecurityGroupIngressRequest; import software.amazon.awssdk.services.ec2.model.AuthorizeSecurityGroupIngressResponse; import software.amazon.awssdk.services.ec2.model.Ec2Exception; import software.amazon.awssdk.services.ec2.model.IpPermission; import software.amazon.awssdk.services.ec2.model.CreateSecurityGroupResponse; import software.amazon.awssdk.services.ec2.model.IpRange;
Código de
CreateSecurityGroupRequest createRequest = CreateSecurityGroupRequest.builder() .groupName(groupName) .description(groupDesc) .vpcId(vpcId) .build(); CreateSecurityGroupResponse resp= ec2.createSecurityGroup(createRequest);
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 Amazon EC2.
Para añadir reglas de entrada al grupo de seguridad, utilice el método authorizeSecurityGroupIngress de Ec2Client, proporcionando el nombre del grupo de seguridad y las reglas de acceso (IpPermission
Importaciones
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.ec2.Ec2Client; import software.amazon.awssdk.services.ec2.model.CreateSecurityGroupRequest; import software.amazon.awssdk.services.ec2.model.AuthorizeSecurityGroupIngressRequest; import software.amazon.awssdk.services.ec2.model.AuthorizeSecurityGroupIngressResponse; import software.amazon.awssdk.services.ec2.model.Ec2Exception; import software.amazon.awssdk.services.ec2.model.IpPermission; import software.amazon.awssdk.services.ec2.model.CreateSecurityGroupResponse; import software.amazon.awssdk.services.ec2.model.IpRange;
Código de
Primero, cree un Ec2Client
Region region = Region.US_WEST_2; Ec2Client ec2 = Ec2Client.builder() .region(region) .build();
Luego, use el método authorizeSecurityGroupIngress de Ec2Client,
IpRange ipRange = IpRange.builder() .cidrIp("0.0.0.0/0").build(); IpPermission ipPerm = IpPermission.builder() .ipProtocol("tcp") .toPort(80) .fromPort(80) .ipRanges(ipRange) .build(); IpPermission ipPerm2 = IpPermission.builder() .ipProtocol("tcp") .toPort(22) .fromPort(22) .ipRanges(ipRange) .build(); AuthorizeSecurityGroupIngressRequest authRequest = AuthorizeSecurityGroupIngressRequest.builder() .groupName(groupName) .ipPermissions(ipPerm, ipPerm2) .build(); AuthorizeSecurityGroupIngressResponse authResponse = ec2.authorizeSecurityGroupIngress(authRequest); System.out.printf( "Successfully added ingress policy to Security Group %s", groupName); return resp.groupId(); } catch (Ec2Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
Para añadir una regla de salida al grupo de seguridad, proporcione datos similares en un objeto AuthorizeSecurityGroupEgressRequestauthorizeSecurityGroupEgress de Ec2Client.
Consulte el ejemplo completo
Describir grupos de seguridad
Para describir los grupos de seguridad o para obtener información sobre ellos, llame al método describeSecurityGroups de Ec2Client. Este método devuelve DescribeSecurityGroupsResponsesecurityGroups, que devuelve una lista de objetos SecurityGroup
Importaciones
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.ec2.Ec2Client; import software.amazon.awssdk.services.ec2.model.DescribeSecurityGroupsRequest; import software.amazon.awssdk.services.ec2.model.DescribeSecurityGroupsResponse; import software.amazon.awssdk.services.ec2.model.SecurityGroup; import software.amazon.awssdk.services.ec2.model.Ec2Exception;
Código de
public static void describeEC2SecurityGroups(Ec2Client ec2, String groupId) { try { DescribeSecurityGroupsRequest request = DescribeSecurityGroupsRequest.builder() .groupIds(groupId).build(); DescribeSecurityGroupsResponse response = ec2.describeSecurityGroups(request); for(SecurityGroup group : response.securityGroups()) { System.out.printf( "Found Security Group with id %s, " + "vpc id %s " + "and description %s", group.groupId(), group.vpcId(), group.description()); } } catch (Ec2Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
Consulte el ejemplo completo
Eliminación de un grupo de seguridad
Para eliminar un grupo de seguridad, llame al método deleteSecurityGroup de Ec2Client pasando un objeto DeleteSecurityGroupRequest
Importaciones
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.ec2.Ec2Client; import software.amazon.awssdk.services.ec2.model.DeleteSecurityGroupRequest; import software.amazon.awssdk.services.ec2.model.Ec2Exception;
Código de
public static void deleteEC2SecGroup(Ec2Client ec2,String groupId) { try { DeleteSecurityGroupRequest request = DeleteSecurityGroupRequest.builder() .groupId(groupId) .build(); ec2.deleteSecurityGroup(request); System.out.printf( "Successfully deleted Security Group with id %s", groupId); } catch (Ec2Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
Consulte el ejemplo completo
Más información
-
Grupos de seguridad de Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias de Linux
-
Autorización del tráfico entrante para sus instancias de Linux en la Guía del usuario de Amazon EC2 para instancias de Linux
-
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