애플리케이션 로드 밸런서를 보안 그룹과 통합
IBM Cloud® Application Load Balancer for VPC(ALB)를 사용하면 애플리케이션의 보안을 강화하도록 보안 그룹을 연결할 수 있습니다.
보안 그룹은 ALB 인스턴스를 보호할 수 있는 편리한 방법입니다. 로드 밸런서에 연결된 보안 그룹을 사용하면 로드 밸런서의 리스너와 백엔드 대상 간의 인바운드 및 아웃바운드 트래픽을 완전히 제어할 수 있습니다. 또한 이 기능을 사용하면 로드 밸런서 백엔드 대상의 보안 수준을 쉽게 높일 수 있습니다. IP 주소 또는 CIDR 범위를 사용하여 로드 밸런서를 식별하는 대신, 백엔드 대상은 자체 보안 그룹 정의의 소스로 로드 밸런서의 보안 그룹만 사용하면 됩니다. 그러면 모든 로드 밸런서 어플라이언스의 트래픽은 IP 주소에 관계 없이 자동으로 허용됩니다.
네트워크 트래픽 규칙
다음 표에서는 공용 및 개인용 애플리케이션 로드 밸런서에 대한 인바운드 및 아웃바운드 트래픽의 우수 사례를 제공합니다.
공용 애플리케이션 로드 밸런서
인바운드 규칙
프로토콜 | 소스 유형 | 소스 | 값 |
---|---|---|---|
TCP | IP 주소 | 0.0.0.0/0 | Listener port |
일반적인 유스 케이스에서는 공용 로드 밸런서의 모든 소스에서 리스너 포트로의 인바운드 트래픽을 허용하는 것이 일반적입니다.
프로토콜 | 소스 유형 | 소스 | 값 |
---|---|---|---|
TCP | IP 주소 | 209.173.53.167/20 | Listener port |
그러나 요구사항에 따라 인바운드 트래픽이 제한되어야 하는 경우 소스 CIDR(예: 209.173.53.167/20
)을 지정할 수 있습니다. 그러면 공용 로드 밸런서에 도달하도록 IP 범위 내에서 모든 공용 IP 주소가 허용됩니다.
아웃바운드 규칙
프로토콜 | 대상 유형 | 대상 | 값 |
---|---|---|---|
TCP | 보안 그룹 | Back-end target |
Back-end target port |
TCP | 보안 그룹 | Back-end target |
Health check port |
백엔드 대상이 보안 그룹에 속하고 아웃바운드 규칙의 대상으로 구성되었는지 확인하십시오. 중첩된 보안 그룹을 사용하면 ALB가 백엔드 대상 및 상태 검사 포트에 대한 아웃바운드 트래픽만 허용할 수 있습니다.
표시된 것보다 좀 더 허용하여 아웃바운드 규칙을 구성할 수 있습니다(예를 들어, 모든 트래픽을 대상으로 허용). 그러나 보안상의 이유로 권장되지 않습니다.
개인용 애플리케이션 로드 밸런서
인바운드 규칙
프로토콜 | 소스 유형 | 소스 | 값 |
---|---|---|---|
TCP | IP 주소 | Subnet CIDR or VPC security group |
Listener port |
개인용 로드 밸런서의 인바운드 규칙을 자체 워크로드로 제한하는 것이 일반적입니다. 특정 서브넷 CIDR의 소스 또는 소스 디바이스가 속하는 보안 그룹을 지정해야 합니다. 특정 CIDR 또는 중첩된 보안 그룹을 사용하는 것이 선호되지만 개별 IP 주소도 사용 가능합니다.
중첩된 보안 그룹은 클라이언트가 동일한 VPC에 있는 경우에만 적용되는 옵션입니다. 클라이언트가 다른 VPC 또는 온프레미스에 있으며 전송 게이트웨이 또는 Direct Link를 통해 로드 밸런서의 VPC에 연결된 경우에는 IP 주소 또는 CIDR을 사용하여 클라이언트를 식별해야 합니다.
아웃바운드 규칙
프로토콜 | 대상 유형 | 대상 | 값 |
---|---|---|---|
TCP | 보안 그룹 | Back-end target security group |
Back-end target port |
TCP | 보안 그룹 | Back-end target security group |
Health check port (백엔드 대상 포트와 다른 경우) |
백엔드 대상이 보안 그룹에 속하고 아웃바운드 규칙의 대상으로 구성되었는지 확인하십시오. 중첩된 보안 그룹을 사용하면 ALB가 백엔드 대상 및 상태 검사 포트에 대한 아웃바운드 트래픽만 허용할 수 있습니다.
또한 로드 밸런서의 이름을 분석하려면 백엔드 대상이 DNS 분석기에 연결되어 있어야 합니다. 그 이유는 DNS 이름을 통해 로드 밸런서에 액세스하기 때문입니다.
로드 밸런서 프로비저닝 중에 보안 그룹 연결
애플리케이션 로드 밸런서를 작성하는 경우 최대 5개의 보안 그룹에 연결할 수 있습니다. 로드 밸런서 작성 중에 보안 그룹을 지정하지 않으면 VPC에 대한 기본 보안 그룹이 사용됩니다.
최소 하나의 보안 그룹을 선택하지 않으면 새로 작성된 애플리케이션 로드 밸런서에서 로드 밸런서 트래픽의 중단을 최소화하도록 기본 보안 그룹 규칙을 업데이트하는 것이 좋습니다.
전제조건: 보안 그룹 및 규칙 구성
ALB에 연결할 보안 그룹이 존재하는지 확인하십시오. 또한 규칙이 로드 밸런서 트래픽에 대해 구성되었는지 확인하십시오. 보안 그룹을 작성해야 하는 경우 다음 단계를 수행하십시오. 또는 IBM Cloud VPC APIDOCS를 사용하여 보안 그룹을 작성할 수 있습니다.
UI를 사용하여 보안 그룹을 작성하려면 다음을 수행하십시오.
-
브라우저에서 IBM Cloud 콘솔을 열고 계정에 로그인합니다.
-
탐색 메뉴
선택한 다음 인프라
> 네트워크 > 보안 그룹을 클릭합니다.
-
작성을 클릭하십시오.
-
보안 그룹에 대한 고유한 이름을 제공하십시오.
-
보안 그룹에 대한 VPC를 선택하십시오. 보안 그룹은 로드 밸런서와 동일한 VPC에 작성되어야 합니다.
-
추가를 클릭하여 보안 그룹에서 송수신할 수 있도록 허용되는 트래픽을 정의하는 인바운드 및 아웃바운드 규칙을 구성하십시오. 각 규칙에 대해 다음 정보를 완료하십시오.
- 허용되는 트래픽에 대한 CIDR 블록 또는 IP 주소를 지정하십시오. 또는 동일한 VPC에서 보안 그룹을 지정하여 선택된 보안 그룹에 연결된 모든 소스의 송수신 트래픽을 허용할 수도 있습니다.
- 규칙이 적용되는 프로토콜 및 포트를 선택하십시오. 네트워크 규칙에 대한 우수 사례는 네트워크 트래픽 규칙을 참조하십시오.
팁:
- 추가된 순서에 관계없이 모든 규칙이 평가됩니다.
- 규칙은 Stateful이며, 이는 허용된 트래픽에 대한 응답인 리턴 트래픽이 자동으로 허용됨을 의미합니다. 예를 들어, 포트 80을 통한 인바운드 TCP 트래픽을 허용하는 규칙을 작성하는 경우 해당 규칙은 추가 규칙을 작성할 필요 없이 소스 호스트로의, 포트 80을 통한 응답 아웃바운드 TCP 트래픽도 허용합니다.
-
선택사항: 이 보안 그룹을 다른 인스턴스에 적용할 경우 인터페이스를 편집하십시오. 보안 그룹 연결은 로드 밸런서 섹션에서 수행됩니다.
-
규칙 작성을 완료한 후 보안 그룹 작성을 클릭하십시오.
보안 그룹 예제
예를 들어, HTTP 리스너에 대한 포트 80에서(TCP 포트 80) 모든 트래픽을 허용하는 다음 인바운드 규칙을 구성하십시오.
프로토콜 | 소스 유형 | 소스 | 값 |
---|---|---|---|
TCP | 임의 | 0.0.0.0/0 |
포트 80 |
그런 다음, 모든 TCP 트래픽을 백엔드 대상에 허용하는 아웃바운드 규칙을 구성하십시오.
프로토콜 | 대상 유형 | 대상 | 값 |
---|---|---|---|
TCP | 임의 | 10.11.12.13/32 (백엔드 대상 IP 주소) |
80(백엔드 대상 포트) |
TCP | 임의 | 10.11.12.14/32 (백엔드 대상 IP 주소) |
80(백엔드 대상 상태 검사 포트) |
프로시저: ALB 작성 중에 보안 그룹 연결
애플리케이션 로드 밸런서를 작성할 때 보안 그룹을 연결하려면 다음 단계를 수행하십시오.
- 브라우저에서 IBM Cloud 콘솔을 열고 계정에 로그인합니다.
- 탐색 메뉴
선택한 다음 인프라
> 네트워크 > 로드 밸런서를 클릭합니다.
- 작성을 클릭하십시오.
- 필요에 따라 이름, VPC, 유형, 서브넷, 리스너 및 풀을 구성하십시오.
- 보안 그룹 테이블에서 연결할 보안 그룹의 선택란을 선택하십시오.
- 작성을 클릭하여 로드 밸런서를 프로비저닝하십시오.
보안 그룹 규칙이 로드 밸런서 트래픽을 허용하는지 확인하십시오. 보안 그룹에서 리스너, 풀 및 상태 검사 포트가 허용되었는지 확인하십시오.
보안 그룹 연결 및 분리
보안 그룹을 기존 로드 밸런서에 연결하려면 다음 단계를 수행하십시오.
2021년 2월 25일 이전에 작성된 로드 밸런서에는 연결된 보안 그룹이 없으며 모든 인바운드 및 아웃바운드 트래픽을 허용합니다. 보안 그룹을 보안 그룹이 없는 로드 밸런서에 연결하는 경우 보안 그룹이 없는 상태로 되돌릴 수 없습니다. 모든 인바운드 및 아웃바운드 트래픽을 허용하기 위한 규칙이 있는 보안 그룹을 연결하여 이전의 "모든 인바운드 및 아웃바운드 트래픽 허용" 동작으로 되돌릴 수 없습니다. 그러나 근본적으로 이러한 규칙은 더욱 제한적인 보안 그룹을 올바른 위치에 배치하는 것보다 안전하지 않으며, 이에 따라 권장되지 않습니다.
- 브라우저에서 IBM Cloud 콘솔을 열고 계정에 로그인합니다.
- 탐색 메뉴
선택한 다음 인프라
> 네트워크 > 로드 밸런서를 클릭합니다.
- 로드 밸런서의 목록에서 로드 밸런서를 선택하여 세부사항 페이지를 보십시오.
- 연결된 보안 그룹 탭을 클릭하여 연결된 보안 그룹을 보십시오.
- 하나 이상의 보안 그룹을 연결하려면 연결을 클릭하십시오. ALB에 연결하는 데 최대 5개의 보안 그룹을 선택할 수 있습니다.
- 연결할 보안 그룹을 선택하십시오.
- 연결을 클릭하십시오.
로드 밸런서에서 보안 그룹을 분리하려면 다음 단계를 수행하십시오.
- 브라우저에서 IBM Cloud 콘솔을 열고 계정에 로그인합니다.
- 탐색 메뉴
선택한 다음 인프라
> 네트워크 > 로드 밸런서를 클릭합니다.
- 로드 밸런서의 목록에서 로드 밸런서를 선택하여 세부사항 페이지를 보십시오.
- 연결된 보안 그룹 탭을 클릭하여 연결된 보안 그룹을 보십시오.
- 보안 그룹을 분리하려면 보안 그룹의 조치 메뉴
를 클릭하십시오.
- 분리를 클릭하십시오.