Trabajar con grupos de seguridad en Amazon EC2 - AWS SDK for Java 2.x

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 que contenga el nombre de la clave.

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 en GitHub.

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) 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.

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 AuthorizeSecurityGroupEgressRequest al método authorizeSecurityGroupEgress de Ec2Client.

Consulte el ejemplo completo en GitHub.

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 DescribeSecurityGroupsResponse, que puede usar para obtener acceso a la lista de grupos de seguridad llamando a su método securityGroups, 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 en GitHub.

Eliminación de un grupo de seguridad

Para eliminar un grupo de seguridad, llame al método deleteSecurityGroup de Ec2Client pasando un objeto DeleteSecurityGroupRequest que contenga el ID del grupo de seguridad que desea eliminar.

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 en GitHub.

Más información