Cree un grupo de seguridad de Amazon EC2 - AWS SDK para Java 1.x

AWS SDK para Java 1.x ha entrado en modo de mantenimiento el 31 de julio de 2024 y llegará al final de soporte el 31 de diciembre de 2025. Le recomendamos que migre a AWS SDK for Java 2.x para seguir recibiendo nuevas características, mejoras de disponibilidad y actualizaciones de seguridad.

Cree un grupo de seguridad de Amazon EC2

aviso

Vamos a retirar EC2-Classic el 15 de agosto de 2022. Le recomendamos que migre de EC2-Classic a una VPC. Para obtener más información, consulte la entrada del blog EC2-Classic-Classic Networking is Retiring – Here's How to Prepare.

Cree un grupo de seguridad, que funciona como un firewall virtual que controla el tráfico de red de una o varias instancias EC2. De forma predeterminada, Amazon EC2 asocia sus instancias con un grupo de seguridad que no permite el tráfico entrante. Puede crear un grupo de seguridad que permita a sus instancias EC2 aceptar un tráfico determinado. Por ejemplo, si necesita conectarse a una instancia Linux, debe configurar el grupo de seguridad para permitir el tráfico SSH. Puede crear un grupo de seguridad mediante la consola de Amazon EC2 o AWS SDK para Java.

Puede crear un grupo de seguridad para usarlo en EC2-Classic o en EC2-VPC. Para obtener más información sobre EC2-Classic y EC2-VPC, consulte Plataformas admitidas en la Guía del usuario de Amazon EC2 para instancias de Linux.

Para obtener más información sobre los grupos de seguridad, con la consola de Amazon EC2, consulte Grupos de seguridad de Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias de Linux.

  1. Cree e inicialice una instancia de CreateSecurityGroupRequest. Utilice el método withGroupName para establecer el nombre del grupo de seguridad y el método withDescription para establecer la descripción del grupo de seguridad, tal y como se indica a continuación:

    CreateSecurityGroupRequest csgr = new CreateSecurityGroupRequest(); csgr.withGroupName("JavaSecurityGroup").withDescription("My security group");

    El nombre del grupo de seguridad debe ser único dentro de la región de AWS en la que inicializa el cliente de Amazon EC2. Debe utilizar caracteres US-ASCII para el nombre y la descripción del grupo de seguridad.

  2. Pase el objeto de la solicitud como un parámetro al método createSecurityGroup. El método devuelve un objeto CreateSecurityGroupResult, de la manera siguiente:

    CreateSecurityGroupResult createSecurityGroupResult = amazonEC2Client.createSecurityGroup(csgr);

    Si intenta crear un grupo de seguridad con el mismo nombre que un grupo de seguridad existente, se produce una excepción createSecurityGroup.

De forma predeterminada, un nuevo grupo de seguridad no permite el tráfico entrante a su instancia Amazon EC2. Para permitir el tráfico entrante, debe autorizarlo de forma explícita en el grupo de seguridad. Puede autorizar el tráfico entrante para direcciones IP individuales, para un intervalo de direcciones IP, para un protocolo específico y para puertos TCP/UDP.

  1. Cree e inicialice una instancia de IpPermission. Utilice el método withIpv4Ranges para definir el intervalo de direcciones IP para el que se autoriza el tráfico entrante y use el método withIpProtocol para definir el protocolo IP. Utilice los métodos withFromPort y withToPort para especificar el intervalo de puertos para los que se autoriza el tráfico entrante, como se indica a continuación:

    IpPermission ipPermission = new IpPermission(); IpRange ipRange1 = new IpRange().withCidrIp("111.111.111.111/32"); IpRange ipRange2 = new IpRange().withCidrIp("150.150.150.150/32"); ipPermission.withIpv4Ranges(Arrays.asList(new IpRange[] {ipRange1, ipRange2})) .withIpProtocol("tcp") .withFromPort(22) .withToPort(22);

    Todas las condiciones que especifique en el objeto IpPermission se deben cumplir para permitir el tráfico entrante.

    Especifique la dirección IP con la notación CIDR. Si especifica el protocolo como TCP/UDP, debe proporcionar un puerto de origen y un puerto de destino. Solo puede autorizar puertos si especifica TCP o UDP.

  2. Cree e inicialice una instancia de AuthorizeSecurityGroupIngressRequest. Utilice el método withGroupName para especificar el nombre del grupo de seguridad y pase el objeto IpPermission que inicializó anteriormente al método withIpPermissions, como se indica a continuación:

    AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest = new AuthorizeSecurityGroupIngressRequest(); authorizeSecurityGroupIngressRequest.withGroupName("JavaSecurityGroup") .withIpPermissions(ipPermission);
  3. Pase el objeto de la solicitud al método authorizeSecurityGroupIngress, de la siguiente manera:

    amazonEC2Client.authorizeSecurityGroupIngress(authorizeSecurityGroupIngressRequest);

    Si llama a authorizeSecurityGroupIngress con direcciones IP para las que ya se ha autorizado el tráfico entrante, el método produce una excepción. Cree y inicialice un nuevo objeto IpPermission para autorizar el tráfico entrante para diferentes direcciones IP, puertos y protocolos antes de llamar a AuthorizeSecurityGroupIngress.

Siempre que llama a los métodos authorizeSecurityGroupIngress o authorizeSecurityGroupEgress, se añade una regla al grupo de seguridad.