Criar um security group do Amazon EC2 - AWS SDK para Java 1.x

O AWS SDK para Java 1.x entrou no modo de manutenção em 31 de julho de 2024 e o fim do suporte está previsto para 31 de dezembro de 2025. Recomendamos que você migre para o AWS SDK for Java 2.x para continuar recebendo novos recursos, melhorias de disponibilidade e atualizações de segurança.

Criar um security group do Amazon EC2

Atenção

Estamos aposentando o EC2-Classic em 15 de agosto de 2022. É recomendável migrar do EC2-Classic para uma VPC. Consulte mais informações na publicação de blog EC2-Classic Networking is Retiring – Here's How to Prepare.

Crie um security group, que funciona como um firewall virtual que controla o tráfego de rede para uma ou mais instâncias do EC2. Por padrão, o Amazon EC2 associa as instâncias a um security group que não permite tráfego de entrada. Você pode criar um security group que permita que as instâncias do EC2 aceitem um determinado tráfego. Por exemplo, se precisar se conectar a uma instância do Linux, você deverá configurar o security group para permitir tráfego SSH. Você pode criar um grupo de segurança usando o console do Amazon EC2 ou o AWS SDK para Java.

Um security group é criado para seu usado no EC2-Classic e EC2-VPC. Para obter mais informações sobre o EC2-Classic e o EC2-VPC, consulte Plataformas compatíveis no Manual do usuário do Amazon EC2 para instâncias do Linux.

Para obter mais informações sobre como criar um grupo de segurança usando o console do Amazon EC2, consulte Grupos de segurança do Amazon EC2 no Guia do usuário do Amazon EC2 para instâncias Linux.

  1. Crie e inicialize uma instância CreateSecurityGroupRequest. Use o método withGroupName para definir o nome do grupo de segurança e o método withDescription para definir a descrição do grupo de segurança da seguinte maneira:

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

    O nome do grupo de segurança deve ser exclusivo dentro da região da AWS na qual você inicializa o cliente do Amazon EC2. Você deve usar caracteres US-ASCII para o nome e a descrição do security group.

  2. Passe o objeto de requisição como um parâmetro para o método createSecurityGroup. O método retorna um objeto CreateSecurityGroupResult, conforme mostrado a seguir:

    CreateSecurityGroupResult createSecurityGroupResult = amazonEC2Client.createSecurityGroup(csgr);

    Se você tentar criar um security group com o mesmo nome de um security group existente, createSecurityGroup lançará uma exceção.

Por padrão, um novo security group não permite tráfego de entrada para a instância do Amazon EC2. Para permitir o tráfego de entrada, você deve autorizar explicitamente a entrada no security group. Você pode autorizar a entrada para endereços IP individuais, para um intervalo de endereços IP, para um protocolo específico e para portas TCP/UDP.

  1. Crie e inicialize uma instância IpPermission. Use o método withIpv4Ranges a fim definir o intervalo de endereços IP para autorizar a entrada, e use o método withIpProtocol para definir o protocolo IP. Use os métodos withFromPort e withToPort para especificar um intervalo de portas para autorizar a entrada da seguinte maneira:

    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 as condições especificadas por você no objeto IpPermission devem ser atendidas para que a entrada seja permitida.

    Especifique o endereço IP usando notação CIDR. Se especificar o protocolo como TCP/UDP, você deverá fornecer uma porta de origem e uma porta de destino. Você poderá autorizar portas somente se especificar TCP ou UDP.

  2. Crie e inicialize uma instância AuthorizeSecurityGroupIngressRequest. Use o método withGroupName para especificar o nome do grupo de segurança e transmita o objeto IpPermission inicializado anteriormente para o método withIpPermissions da seguinte maneira:

    AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest = new AuthorizeSecurityGroupIngressRequest(); authorizeSecurityGroupIngressRequest.withGroupName("JavaSecurityGroup") .withIpPermissions(ipPermission);
  3. Transmita o objeto de requisição para o método authorizeSecurityGroupIngress da seguinte maneira:

    amazonEC2Client.authorizeSecurityGroupIngress(authorizeSecurityGroupIngressRequest);

    Se você chamar authorizeSecurityGroupIngress com endereços IP para os quais a entrada já esteja autorizada, o método lançará uma exceção. Crie e inicialize um novo objeto IpPermission para autorizar a entrada para IPs, portas e protocolos diferentes antes de chamar AuthorizeSecurityGroupIngress.

Sempre que você chama os métodos authorizeSecurityGroupIngress ou authorizeSecurityGroupEgress, uma regra é adicionada ao grupo de segurança.