Amazon EC2 보안 그룹 생성 - AWS SDK for Java 1.x

AWS SDK for Java 1.x는 2024년 7월 31일부터 유지 관리 모드로 전환되었으며 2025년 12월 31end-of-support일에 도달할 예정입니다. 새로운 기능, 가용성 개선 사항 및 보안 업데이트를 AWS SDK for Java 2.x 계속 받으려면 로 마이그레이션하는 것이 좋습니다.

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

Amazon EC2 보안 그룹 생성

주의

2022년 8월 15일에 EC2-Classic을 사용 중지합니다. EC2-Classic에서 로 마이그레이션하는 것이 좋습니다VPC. 자세한 내용은 블로그 게시물 EC2-Classic-Classic Networking is Retiring - 준비 방법을 참조하세요.

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

EC2-Classic 또는 EC2-에서 사용할 보안 그룹을 생성합니다VPC. EC2-Classic 및 EC2-에 대한 자세한 내용은 Linux 인스턴스 사용 Amazon EC2 설명서의 지원되는 플랫폼을 VPC참조하세요.

Amazon EC2 콘솔을 사용하여 보안 그룹을 생성하는 방법에 대한 자세한 내용은 Linux 인스턴스 사용 Amazon EC2 설명서의 Amazon EC2 보안 그룹을 참조하세요.

  1. CreateSecurityGroupRequest 인스턴스를 생성하고 초기화합니다. withGroupName 메서드를 사용하여 다음과 같이 보안 그룹 이름을 설정하고, withDescription 메서드를 사용하여 보안 그룹 설명을 설정합니다.

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

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

  2. 요청 객체를 파라미터로 createSecurityGroup 메서드에 전달합니다. 메서드는 다음과 같이 CreateSecurityGroupResult 객체를 반환합니다.

    CreateSecurityGroupResult createSecurityGroupResult = amazonEC2Client.createSecurityGroup(csgr);

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

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

  1. IpPermission 인스턴스를 생성하고 초기화합니다. withIpv4Ranges 메서드를 사용하여 수신을 승인할 IP 주소 범위를 설정하고 withIpProtocol 메서드를 사용하여 IP 프로토콜을 설정합니다. withFromPortwithToPort 메서드를 사용하여 다음과 같이 수신을 승인할 포트 범위를 지정합니다.

    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.

  2. AuthorizeSecurityGroupIngressRequest 인스턴스를 생성하고 초기화합니다. withGroupName 메서드를 사용하여 다음과 같이 보안 그룹 이름을 지정하고 이전에 초기화한 IpPermission 객체를 withIpPermissions 메서드에 전달합니다.

    AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest = new AuthorizeSecurityGroupIngressRequest(); authorizeSecurityGroupIngressRequest.withGroupName("JavaSecurityGroup") .withIpPermissions(ipPermission);
  3. 다음과 같이 요청 객체를 authorizeSecurityGroup수신 메서드로 전달합니다.

    amazonEC2Client.authorizeSecurityGroupIngress(authorizeSecurityGroupIngressRequest);

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

authorizeSecurityGroup수신 또는 authorizeSecurityGroup발신 메서드를 호출할 때마다 보안 그룹에 규칙이 추가됩니다.