보안 그룹 구성 Classic Load Balancer - Elastic Load Balancing

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

보안 그룹 구성 Classic Load Balancer

A 보안 그룹 하나 이상의 인스턴스에서 허용되는 트래픽을 제어하는 방화벽으로 기능합니다. EC2 인스턴스를 시작할 때 하나 이상의 보안 그룹을 인스턴스에 연결할 수 있습니다. 각 보안 그룹에서 트래픽을 허용하는 규칙을 하나 이상 추가합니다. 언제든지 보안 그룹에 대한 규칙을 수정할 수 있습니다. 새 규칙은 보안 그룹에 연결된 모든 인스턴스에 자동으로 적용됩니다. 자세한 내용은 Amazon EC2 보안 그룹 in the Linux 인스턴스용 Amazon EC2 사용 설명서.

EC2-Classic과 VPC에서 Classic Load Balancer가 보안 그룹을 지원하는 방법에는 상당한 차이가 있습니다. EC2-Classic의 경우, 로드 밸런서는 인스턴스가 로드 밸런서에서만 트래픽을 수신할 수 있도록 특별한 소스 보안 그룹을 제공합니다. 이 소스 보안 그룹은 수정이 불가능합니다. VPC의 경우, 사용자가 허용할 포트 및 프로토콜을 선택할 수 있도록 로드 밸런서를 위한 보안 그룹을 사용자가 제공합니다. 예를 들어 로드 밸런서가 ping 요청에 응답하도록 ICMP(인터넷 제어 메시지 프로토콜) 연결을 열 수 있습니다(한편 ping 요청은 어떤 인스턴스에도 전달되지 않음).

EC2-Classic과 VPC 모두에서 인스턴스에 대한 보안 그룹은 로드 밸런서가 리스너 포트 및 상태 확인 포트에서 인스턴스와 통신할 수 있도록 허용해야 합니다. VPC에서는 보안 그룹 및 네트워크 ACL(액세스 제어 목록)이 이들 포트에서 양방향으로 트래픽을 허용해야 합니다.

VPC에서 로드 밸런서를 위한 보안 그룹

VPC에서 AWS Management 콘솔을 사용해 로드 밸런서를 생성할 때는 VPC를 위한 기존 보안 그룹을 선택하거나 VPC를 위한 새로운 보안 그룹을 생성할 수 있습니다. 기존 보안 그룹을 선택하는 경우에는 반드시 로드 밸런서를 위한 리스너 포트 및 상태 확인 포트로의 양방향 트래픽을 허용해야 합니다. 보안 그룹을 생성하기로 한 경우에는 콘솔이 이들 포트에서 모든 트래픽을 허용하는 규칙을 자동으로 추가합니다.

[기본이 아닌 VPC] AWS CLI 또는 API를 사용하여 기본이 아닌 VPC에서 로드 밸런서를 생성하되 보안 그룹을 지정하지 않은 경우에는 로드 밸런서가 VPC를 위한 기본 보안 그룹에 자동으로 연결됩니다.

[기본 VPC] AWS CLI 또는 API를 사용하여 기본 VPC에서 로드 밸런서를 생성하는 경우에는 로드 밸런서를 위한 기존 보안 그룹을 선택할 수 없습니다. 대신 Elastic Load Balancing 는 로드 밸런서에 지정된 포트의 모든 트래픽을 허용하는 규칙을 포함하는 보안 그룹을 제공합니다. Elastic Load Balancing 은(는) AWS 계정에 따라 해당 보안 그룹에 대해 기본_elb_ 양식 이름을 생성합니다.id 예를 들어 default_elb_fc5fbed3-0405-3b7d-a328-ea290EXAMPLE) ). 이후에 기본 VPC에서 생성되는 로드 밸런서는 이 보안 그룹도 사용합니다. 새로운 로드 밸런서의 리스너 포트와 상태 확인 포트에서 트래픽을 허용하는지 보안 그룹 규칙을 확인해야 합니다. 로드 밸런서를 삭제해도 이 보안 그룹은 자동 삭제되지 않습니다.

기존 로드 밸런서에 리스너를 추가하는 경우에는 보안 그룹이 새로운 리스너 포트에서 양방향 트래픽을 허용하는지 확인해야 합니다.

로드 밸런서를 위한 보안 그룹은 인스턴스와의 통신을 허용해야 합니다. 권장 규칙은 부하 분산 장치 유형(인터넷 대면 또는 내부)에 따라 달라집니다.

다음 표는 인터넷 대면 로드 밸런서에 대한 권장 규칙을 보여 줍니다.

Inbound
Source Protocol Port Range Comment

0.0.0.0/0

TCP

listener

로드 밸런서 리스너 포트에서 모든 인바운드 트래픽을 허용

Outbound

Destination Protocol Port Range Comment

instance security group

TCP

instance listener

인스턴스 리스너 포트의 인스턴스로 아웃바운드 트래픽을 허용합니다

instance security group

TCP

health check

상태 확인 포트의 인스턴스로 아웃바운드 트래픽을 허용합니다

다음 표에는 내부 부하 분산 장치에 권장되는 규칙이 나와 있습니다.

Inbound
Source Protocol Port Range Comment

VPC CIDR

TCP

listener

로드 밸런서 리스너 포트에서 VPC CIDR에서 오는 인바운드 트래픽을 허용

Outbound

Destination Protocol Port Range Comment

instance security group

TCP

instance listener

인스턴스 리스너 포트의 인스턴스로 아웃바운드 트래픽을 허용합니다

instance security group

TCP

health check

상태 확인 포트의 인스턴스로 아웃바운드 트래픽을 허용합니다

콘솔을 사용하여 보안 그룹 관리

다음 절차를 사용하여 VPC에서 로드 밸런서에 연결된 보안 그룹을 변경합니다.

로드 밸런서에 할당된 보안 그룹을 업데이트하려면

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창의 로드 밸런싱 아래에서 로드 밸런서를 선택합니다.

  3. 로드 밸런서를 선택합니다.

  4. On 설명 탭, 선택 보안 그룹 편집.

  5. On 보안 그룹 편집 페이지, 필요에 따라 보안 그룹을 선택하거나 선택 취소합니다.

  6. 완료되면, 저장.

다음을 사용하여 보안 그룹 관리 AWS CLI

다음을 사용하십시오. apply-security-group-to-load-balancer 명령을 사용하여 보안 그룹을 VPC 의 로드 밸런서에 연결합니다. 지정된 보안 그룹은 이전에 연결된 보안 그룹을 재정의합니다.

aws elb apply-security-groups-to-load-balancer --load-balancer-name my-loadbalancer --security-groups sg-53fae93f

다음은 응답의 예입니다.

{ "SecurityGroups": [ "sg-53fae93f" ] }

VPC의 인스턴스를 위한 보안 그룹

인스턴스에 대한 보안 그룹은 로드 밸런서와의 통신을 허용해야 합니다. 다음 표에는 권장 규칙이 나와 있습니다.

Inbound
Source Protocol Port Range Comment

load balancer security group

TCP

instance listener

인스턴스 리스너 포트의 로드 밸런서에서 트래픽을 허용합니다

load balancer security group

TCP

health check

상태 확인 포트의 로드 밸런서에서 트래픽을 허용합니다

인바운드 ICMP 트래픽이 경로 MTU 검색을 지원하도록 허용하는 것이 좋습니다. 자세한 내용은 경로 MTU 검색 in the Linux 인스턴스용 Amazon EC2 사용 설명서.

VPC에서 로드 밸런서를 위한 네트워크 ACL

기본 네트워크 ACL(액세스 제어 목록)은 인바운드 트래픽과 아웃바운드 트래픽을 모두 허용합니다. 사용자 지정 네트워크 ACL을 생성하는 경우에는 로드 밸런서 및 인스턴스의 통신을 허용하는 규칙을 추가해야 합니다.

로드 밸런서의 서브넷에 대한 권장 규칙은 로드 밸런서 유형(인터넷 대면 또는 내부)에 따라 달라집니다.

다음은 인터넷 페이싱 부하 분산 장치에 권장되는 규칙입니다.

Inbound
Source Protocol Port Comment

0.0.0.0/0

TCP

listener

로드 밸런서 리스너 포트에서 모든 인바운드 트래픽을 허용

VPC CIDR

TCP

1024~65535

휘발성 포트에서 VPC CIDR에서 오는 인바운드 트래픽을 허용

Outbound

Destination Protocol Port Comment

VPC CIDR

TCP

instance listener

인스턴스 리스너 포트에서 모든 아웃바운드 트래픽을 허용

VPC CIDR

TCP

health check

상태 확인 포트에서 모든 아웃바운드 트래픽을 허용

0.0.0.0/0

TCP

1024~65535

휘발성 포트에서 모든 아웃바운드 트래픽을 허용

다음은 내부 부하 분산 장치에 권장되는 규칙입니다.

Inbound
Source Protocol Port Comment

VPC CIDR

TCP

listener

로드 밸런서 리스너 포트에서 VPC CIDR에서 오는 인바운드 트래픽을 허용

VPC CIDR

TCP

1024~65535

휘발성 포트에서 VPC CIDR에서 오는 인바운드 트래픽을 허용

Outbound

Destination Protocol Port Comment

VPC CIDR

TCP

instance listener

인스턴스 리스너 포트에서 VPC CIDR로 가는 아웃바운드 트래픽을 허용

VPC CIDR

TCP

health check

상태 확인 포트에서 VPC CIDR로 가는 아웃바운드 트래픽을 허용

VPC CIDR

TCP

1024~65535

휘발성 포트에서 VPC CIDR로 가는 아웃바운드 트래픽을 허용

인스턴스 서브넷을 위한 권장 규칙은 서브넷이 프라이빗인지 퍼블릭인지에 따라 다릅니다. 다음은 프라이빗 서브넷을 위한 규칙입니다. 인스턴스가 퍼블릭 서브넷에 있는 경우에는 소스 및 대상을 VPC의 CIDR에서 로 변경합니다.0.0.0.0/0.

Inbound
Source Protocol Port Comment

VPC CIDR

TCP

instance listener

인스턴스 리스너 포트에서 VPC CIDR에서 오는 인바운드 트래픽을 허용

VPC CIDR

TCP

health check

상태 확인 포트에서 VPC CIDR에서 오는 인바운드 트래픽을 허용

Outbound

Destination Protocol Port Comment

VPC CIDR

TCP

1024~65535

휘발성 포트에서 VPC CIDR로 가는 아웃바운드 트래픽을 허용

EC2-Classic의 인스턴스를 위한 보안 그룹

로드 밸런서와 EC2-Classic에서 시작된 인스턴스 간의 통신을 허용하려면, 모든 IP 주소에서 인바운드 트래픽을 허용하는 인스턴스에 대한 인바운드 규칙을 생성합니다(사용 중인 0.0.0.0/0 CIDR 블록) 또는 부하 분산 장치(제공된 소스 보안 그룹 사용)에서만 Elastic Load Balancing) ).

다음 절차를 사용하여 로드 밸런서와 EC2-Classic 인스턴스 간의 트래픽을 잠글 수 있습니다.

콘솔을 사용하여 로드 밸런서와 인스턴스 간의 트래픽을 잠그려면

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창의 로드 밸런싱 아래에서 로드 밸런서를 선택합니다.

  3. 로드 밸런서를 선택합니다.

  4. On 설명 탭, 소스 보안 그룹의 이름을 복사합니다.

    
							ELB 소스 보안 그룹
  5. On 인스턴 tab, 부하 분산 장치에 등록된 인스턴스 중 하나의 인스턴스 ID를 선택합니다.

  6. On 설명 탭, 보안 그룹보안 그룹 이름을 선택합니다.

  7. On 인바운드 탭, 선택 편집, 규칙 추가.

  8. 에서 유형 열, 프로토콜 유형을 선택합니다. The 프로토콜 and 포트 범위 열이 채워집니다. 에서 소스 열, 선택 Custom IP 이전에 복사한 소스 보안 그룹의 이름을 붙여넣습니다(예: amazon-elb/amazon-elb-sg) ).

  9. (선택 사항) 보안 그룹이 방금 추가한 규칙보다 덜 제한적인 규칙을 가지고 있는 경우에는 삭제 아이콘을 사용하여 덜 제한적인 규칙을 삭제합니다.

를 사용하여 로드 밸런서와 인스턴스 간의 트래픽을 잠그려면AWS CLI

  1. 다음을 사용하십시오. 부하-로드-밸런서 명령을 사용하여 로드 밸런서에 대한 소스 보안 그룹의 이름과 소유자를 표시할 수 있습니다.

    aws elb describe-load-balancers --load-balancer-name my-loadbalancer

    응답에는 SourceSecurityGroup 필드의 이름과 소유자가 포함됩니다. 예: .

    { "LoadBalancerDescriptions": [ { ... "SourceSecurityGroup": { "OwnerAlias": "amazon-elb", "GroupName": "amazon-elb-sg" } } ] }
  2. 다음과 같이 인스턴스에 대한 보안 그룹에 규칙을 추가합니다.

    1. 인스턴스에 대한 보안 그룹의 이름을 모르는 경우 다음을 사용하십시오. 설명-인스턴스 명령을 사용하여 지정된 인스턴스에 대한 보안 그룹의 이름과 ID를 가져옵니다.

      aws ec2 describe-instances --instance-ids i-315b7e51

      응답에는 SecurityGroups 필드의 보안 그룹 이름 및 ID가 포함됩니다. 다음 단계에서 사용할 것이므로 보안 그룹의 이름을 기록해 두십시오.

    2. 다음을 사용하십시오. 권한-보안-그룹-인출 명령을 사용하여 로드 밸런서의 트래픽을 허용하는 인스턴스의 보안 그룹에 규칙을 추가할 수 있습니다.

      aws ec2 authorize-security-group-ingress --group-name my-security-group --source-security-group-name amazon-elb-sg --source-security-group-owner-id amazon-elb
  3. (선택 사항) 다음을 사용합니다. 보안 그룹 설명 명령을 실행하여 보안 그룹에 새 규칙이 있는지 확인합니다.

    aws ec2 describe-security-groups --group-names my-security-group

    응답에는 인스턴스에 액세스할 권한이 부여된 보안 그룹의 목록을 표시하는 UserIdGroupPairs 데이터 구조가 포함됩니다.

    { "SecurityGroups": [ { ... "IpPermissions": [ { "IpRanges": [], "FromPort": -1, "IpProtocol": "icmp", "ToPort": -1, "UserIdGroupPairs": [ { "GroupName": "amazon-elb-sg", "GroupId": "sg-5a9c116a", "UserId": "amazon-elb" } ] }, { "IpRanges": [], "FromPort": 1, "IpProtocol": "tcp", "ToPort": 65535, "UserIdGroupPairs": [ { "GroupName": "amazon-elb-sg", "GroupId": "sg-5a9c116a", "UserId": "amazon-elb" } ] }, { "IpRanges": [], "FromPort": 1, "IpProtocol": "udp", "ToPort": 65535, "UserIdGroupPairs": [ { "GroupName": "amazon-elb-sg", "GroupId": "sg-5a9c116a", "UserId": "amazon-elb" } ] }, . . . }
  4. (선택 사항) 보안 그룹에 방금 추가한 규칙보다 덜 제한적인 규칙이 있는 경우 보안-그룹-인출 철회 명령을 사용하여 제한 규칙을 제거합니다. 예를 들어 아래 명령은 모든 사용자(CIDR 범위 )에서 오는 TCP 트래픽을 허용하는 규칙을 제거합니다.0.0.0.0/0):

    aws ec2 revoke-security-group-ingress --group-name my-security-group --protocol tcp --port 80 --cidr 0.0.0.0/0