EC2 보안 그룹 관리
Elastic Beanstalk는 환경을 생성할 때 기본 보안 그룹을 시작되는 EC2 인스턴스에 할당합니다. 인스턴스에 연결된 보안 그룹은 인스턴스로 들어오고 나가는 트래픽의 허용 여부를 결정합니다.
Elastic Beanstalk이 생성하는 기본 EC2 보안 그룹은 HTTP(80) 및 SSH(22)의 표준 포트에 대해 인터넷 또는 로드 밸런서로부터의 모든 인바운드 트래픽을 허용합니다. EC2 인스턴스에 대한 방화벽 규칙을 지정하기 위해 자체 사용자 지정 보안 그룹을 정의할 수도 있습니다. 보안 그룹은 다른 포트 또는 다른 소스에서의 트래픽을 허용할 수 있습니다. 예를 들어 제한된 IP 주소 범위에서 포트 22의 인바운드 트래픽을 허용하는 SSH 액세스용 보안 그룹을 생성할 수 있습니다. 또는 추가 보안을 위해 사용자만 액세스할 수 있는 배스천 호스트의 트래픽을 허용하는 보안 그룹을 만들 수 있습니다.
aws:autoscaling:launchconfiguration 네임스페이스의 DisableDefaultEC2SecurityGroup 옵션을 true로 설정하여 기본 EC2 보안 그룹에서 환경을 제외할 수 있습니다. AWS CLI 또는 구성 파일을 사용하여 이 옵션을 환경에 적용하고, EC2 인스턴스에 사용자 지정 보안 그룹을 연결하세요.
다중 인스턴스 환경에서 EC2 보안 그룹 관리
다중 인스턴스 환경에서 사용자 지정 EC2 보안 그룹을 생성하는 경우 로드 밸런서 및 수신 트래픽 규칙이 인스턴스를 안전하고 액세스할 수 있도록 유지하는 방법도 고려해야 합니다.
여러 EC2 인스턴스가 있는 환경으로의 인바운드 트래픽은 모든 EC2 인스턴스 간에 수신 트래픽을 전달하는 로드 밸런서에 의해 관리됩니다. Elastic Beanstalk이 기본 EC2 보안 그룹을 생성할 때, 로드 밸런서로부터의 인바운드 트래픽을 허용하는 규칙도 함께 정의합니다. 보안 그룹에 이 인바운드 규칙이 없으면 수신 트래픽이 인스턴스에 들어갈 수 없습니다. 이 조건은 사실상 인스턴스가 외부 요청을 수신하지 못하도록 차단하는 결과를 초래합니다.
로드 밸런싱 환경에서 기본 EC2 보안 그룹을 비활성화하면 Elastic Beanstalk은 일부 구성 규칙을 검증합니다. 구성이 검증 검사를 충족하지 않으면 필요한 구성을 제공할 것을 안내하는 메시지가 표시됩니다. 검증 검사는 다음과 같습니다.
-
Application Load Balancer 또는 Classic Load Balancer 여부에 따라 aws:elbv2:loadbalancer 또는 aws:elb:loadbalancer의
SecurityGroups옵션을 사용하여 로드 밸런서에 최소 하나 이상의 보안 그룹을 지정해야 합니다. AWS CLI 예제는 AWS CLI를 사용하여 구성 섹션을 참조하세요. -
EC2 인스턴스가 로드 밸런서로부터 트래픽을 수신할 수 있도록 인바운드 트래픽 규칙이 존재해야 합니다. EC2 보안 그룹과 로드 밸런서 보안 그룹 모두 해당 인바운드 규칙을 참조해야 합니다. 자세한 내용은 이어지는 트래픽용 인바운드 규칙 단원을 참조하십시오.
트래픽용 인바운드 규칙
다중 인스턴스 환경의 EC2 보안 그룹에는 로드 밸런서 보안 그룹을 참조하는 인바운드 규칙이 포함되어야 합니다. 이 조건은 로드 밸런서 유형에 관계없이 전용 또는 공유 로드 밸런서 및 사용자 지정 또는 기본 보안 그룹을 사용하는 모든 환경에 적용됩니다.
EC2 콘솔에서 환경 구성 요소에 연결된 모든 보안 그룹을 확인할 수 있습니다. 다음 이미지는 환경 생성 작업 중 Elastic Beanstalk이 기본적으로 생성하는 보안 그룹이 EC2 콘솔에 표시된 모습입니다.
보안 그룹 화면에 환경과 관련 보안 그룹이 표시됩니다. GettingStarted-env와 GettingStarted3-env는 모두 전용 로드 밸런서를 사용하는 다중 인스턴스 환경입니다. 이러한 각 환경에는 두 개의 보안 그룹이 나열되어 있습니다. 하나는 EC2 인스턴스용이고 다른 하나는 로드 밸런서용입니다. Elastic Beanstalk은 환경을 생성할 때 이러한 보안 그룹을 함께 생성합니다. GettingStarted5-env는 EC2 인스턴스 하나만 있는 환경으로 로드 밸런서를 사용하지 않기 때문에, 로드 밸런서 보안 그룹이 없습니다.
인바운드 규칙 화면은 GettingStarted3-env의 인스턴스에 대한 EC2 보안 그룹으로 드릴다운합니다. 이 예제는 EC2 보안 그룹의 인바운드 규칙을 정의합니다. 인바운드 규칙의 소스 열에는 이전 이미지에 나와 있는 로드 밸런서 보안 그룹의 보안 그룹 ID가 표시된다는 점에 유의하세요. 이 규칙을 사용하면 GettingStarted3-env의 EC2 인스턴스가 포트 80에서 특정 로드 밸런서로부터 인바운드 트래픽을 수신할 수 있습니다.
자세한 내용은 Amazon EC2 사용 설명서의 인스턴스 보안 그룹 변경 및 Elastic Load Balancing 규칙을 참조하세요.