

 AWS SDK for Java 1.x는 2025년 12월 31일에 end-of-support되었습니다. 새로운 기능, 가용성 개선 및 보안 업데이트를 계속 받으려면 [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html)로 마이그레이션하는 것이 좋습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon EC2 보안 그룹을 생성합니다.
<a name="create-security-group"></a>

## EC2-Classic은 더 이상 사용되지 않습니다.
<a name="retiringEC2Classic"></a>

**주의**  
EC2-Classic은 2022년 8월 15일에 사용 중지될 예정입니다. EC2-Classic에서 VPC로 마이그레이션하는 것이 좋습니다. 자세한 내용은 블로그 게시물 [EC2-Classic-Classic 네트워킹은 사용 중지 중입니다 - 준비 방법은 다음과 같습니다](https://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/)를 참조하세요.

하나 이상의 EC2 인스턴스에 대한 네트워크 트래픽을 제어하는 가상 방화벽 역할을 하는 *보안 그룹*을 생성합니다. 기본적으로 Amazon EC2는 인바운드 트래픽을 허용하지 않는 보안 그룹과 인스턴스를 연결합니다. EC2 인스턴스가 특정 트래픽을 받아들이도록 허용하는 보안 그룹을 생성할 수 있습니다. 예를 들어 Linux 인스턴스에 연결해야 하는 경우 SSH 트래픽을 허용하도록 보안 그룹을 구성해야 합니다. Amazon EC2 콘솔이나 AWS SDK for Java를 사용하여 보안 그룹을 만들 수 있습니다.

EC2-Classic 또는 EC2-VPC에서 사용할 보안 그룹을 생성합니다. EC2-Classic과 EC2-VPC에 대한 자세한 내용은 Amazon EC2 Linux 인스턴스용 사용 설명서에서 [지원되는 플랫폼](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)을 참조하세요.

Amazon EC2 콘솔을 사용하여 보안 그룹을 생성하는 방법에 대한 자세한 내용은 Amazon EC2 Linux 인스턴스용 사용 설명서의 [Amazon EC2보안 그룹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)을 참조하세요.

1. [CreateSecurityGroupRequest](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/CreateSecurityGroupRequest.html) 인스턴스를 생성하고 초기화합니다. 다음과 같이, [withGroupName](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/CreateSecurityGroupRequest.html#withGroupName-java.lang.String-) 메서드를 사용하여 보안 그룹 이름을 설정하고, [withDescription](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/CreateSecurityGroupRequest.html#withDescription-java.lang.String-) 메서드를 사용하여 보안 그룹 설명을 설정합니다.

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

   보안 그룹 이름은 Amazon EC2 클라이언트를 초기화할 AWS 리전 내에서 고유해야 합니다. 보안 그룹 이름과 설명에는 US-ASCII 문자를 사용해야 합니다.

1. 요청 객체를 [createSecurityGroup](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/AmazonEC2.html#createSecurityGroup-com.amazonaws.services.ec2.model.CreateSecurityGroupRequest-) 메서드에 파라미터로 전달합니다. 그러면 이 메서드는 다음과 같이 [CreateSecurityGroupResult](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/CreateSecurityGroupResult.html) 객체를 반환합니다.

   ```
   CreateSecurityGroupResult createSecurityGroupResult =
       amazonEC2Client.createSecurityGroup(csgr);
   ```

   기존 보안 그룹과 동일한 이름의 보안 그룹을 생성하려고 하는 경우 `createSecurityGroup`에서 예외가 발생합니다.

기본적으로 새 보안 그룹은 Amazon EC2 인스턴스에 대한 인바운드 트래픽을 허용하지 않습니다. 인바운드 트래픽을 허용하려면 보안 그룹 수신을 명시적으로 승인해야 합니다. 개별 IP 주소, IP 주소 범위, 특정 프로토콜 및 TCP/UDP 포트에 대해 수신을 승인할 수 있습니다.

1. [IpPermission](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/IpPermission.html) 인스턴스를 만들고 초기화합니다. [withIpv4Ranges](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/IpPermission.html#withIpv4Ranges-java.util.Collection-) 메서드를 사용하여 수신을 승인할 IP 주소 범위를 설정하고, [withIpProtocol](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/IpPermission.html#withIpProtocol-java.lang.String-) 메서드를 사용하여 IP 프로토콜을 설정합니다. 다음과 같이 [withFromPort](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/IpPermission.html#withFromPort-java.lang.Integer-) 및 [withToPort](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/IpPermission.html#withToPort-java.lang.Integer-) 메서드를 사용하여 수신을 승인할 포트 범위를 지정합니다.

   ```
   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);
   ```

   수신이 허용되려면 `IpPermission` 객체에 지정하는 모든 조건이 충족되어야 합니다.

   CIDR 표기법을 사용하여 IP 주소를 지정합니다. TCP/UDP를 프로토콜로 지정할 경우 소스 포트와 대상 포트를 지정해야 합니다. TCP나 UDP를 지정하는 경우에만 포트를 승인할 수 있습니다.

1. [AuthorizeSecurityGroupIngressRequest](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/AuthorizeSecurityGroupEgressRequest.html) 인스턴스를 생성하고 초기화합니다. `withGroupName` 메서드를 사용하여 보안 그룹 이름을 지정하고 이전에 초기화한 `IpPermission` 객체를 다음과 같이 [withIpPermissions](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/AuthorizeSecurityGroupEgressRequest.html#withIpPermissions-com.amazonaws.services.ec2.model.IpPermission…​-) 메서드에 전달합니다.

   ```
   AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest =
       new AuthorizeSecurityGroupIngressRequest();
   
   authorizeSecurityGroupIngressRequest.withGroupName("JavaSecurityGroup")
                                       .withIpPermissions(ipPermission);
   ```

1. 다음과 같이 요청 객체를 [authorizeSecurityGroupIngress](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/AmazonEC2Client.html#authorizeSecurityGroupIngress-com.amazonaws.services.ec2.model.AuthorizeSecurityGroupIngressRequest-) 메서드에 전달합니다.

   ```
   amazonEC2Client.authorizeSecurityGroupIngress(authorizeSecurityGroupIngressRequest);
   ```

   수신이 이미 승인된 IP 주소를 사용하여 `authorizeSecurityGroupIngress`를 호출하는 경우 이 메서드에서 예외가 발생합니다. `IpPermission`를 호출하기 전에 다른 IP, 포트 및 프로토콜에 대한 수신을 승인할 새 `AuthorizeSecurityGroupIngress` 객체를 생성하고 초기화합니다.

[authorizeSecurityGroupIngress](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/AmazonEC2Client.html#authorizeSecurityGroupIngress-com.amazonaws.services.ec2.model.AuthorizeSecurityGroupIngressRequest-) 또는 [authorizeSecurityGroupEgress](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/AmazonEC2Client.html#authorizeSecurityGroupEgress-com.amazonaws.services.ec2.model.AuthorizeSecurityGroupEgressRequest-) 메서드를 호출할 때마다 규칙이 보안 그룹에 추가됩니다.