본문으로 건너뛰기

보안 그룹

카카오클라우드 보안 그룹은 인바운드 규칙과 아웃바운드 규칙을 활용하여 연결된 리소스의 트래픽을 제어합니다. 예를 들어, BCS 인스턴스의 네트워크 인터페이스에 보안 그룹을 연결하면 해당 인스턴스의 인바운드 및 아웃바운드 트래픽을 조절할 수 있으며, 이는 트래픽의 출입을 규제하여 보안을 강화합니다.

인바운드 트래픽과 아웃바운드 트래픽에 대한 정책은 별개로 설정할 수 있으며, 프로토콜 및 포트 번호를 기반으로 트래픽을 조절할 수 있습니다. 이렇게 함으로써 필요한 통신만을 허용하고 불필요한 트래픽을 차단하여 네트워크의 안전성을 높일 수 있습니다.

보안 그룹 작동 방식

보안 그룹의 작동 방식은 다음과 같습니다.

작동 방식설명
Whitelist 기반보안 그룹은 입력된 정책에 대해서만 트래픽을 허용하는 방식으로 작동
상태 관리보안 그룹은 상태 관리 기능(Stateful)이 제공됨
- 인바운드 규칙에 의해 허용된 요청에 대해서는 아웃바운드 규칙과 관계없이 응답이 허용됨
- 아웃바운드 규칙에 의해 허용된 요청에 대해서는 인바운드 규칙과 관계없이 응답이 허용됨
다중 인스턴스 연결 지원한 개의 보안 그룹을 다수의 인스턴스에 적용 가능
다중 보안 그룹 연결 지원다수의 보안 그룹을 한 개의 인스턴스에 적용 가능
- 다수의 보안 그룹이 연결된 보안 그룹은 연결된 모든 보안 그룹의 정책을 허용
다중 보안 그룹 복사 기능 지원동일한 인바운드/아웃바운드 규칙을 가진 보안 그룹을 복사해 생성 가능

보안 그룹 기본 사항

  • 보안 그룹은 Whitelisting 방식을 사용하며 정책에 명시되지 않은 모든 트래픽은 거부됩니다. 따라서 보안 그룹에는 허용할 정책들을 설정해야 합니다.
  • 보안 그룹은 Stateful 상태 저장 방식을 제공합니다. 인바운드 트래픽에 대한 응답은 아웃바운드 규칙과 관계없이 인스턴스에서 나가도록 허용되며 반대의 경우도 마찬가지입니다.
  • 여러 보안 그룹을 리소스와 연결하면 각 보안 그룹의 정책이 집계되어 액세스 허용 여부를 결정하는 데 사용되는 단일 정책 집합을 형성합니다.
  • 정책을 추가, 업데이트 또는 제거할 때 변경 사항은 보안 그룹과 연결된 모든 리소스에 자동으로 적용됩니다. 단, 정책 변경 시 즉시 반영되지 않고 기존 연결에 시간 초과될 때까지만 패킷이 허용합니다.
  • 프로젝트당 생성할 수 있는 보안 그룹의 개수, 각 보안 그룹에 추가할 수 있는 정책의 개수, 그리고 네트워크 인터페이스에 연결할 수 있는 보안 그룹의 개수에는 쿼터가 있습니다. 자세한 설명은 서비스 요금 및 쿼터 문서를 참고하시기 바랍니다.

보안 그룹 정책

보안 그룹의 정책은 보안 그룹과 연결된 리소스에 도달하도록 허용된 인바운드 트래픽(수신)과 인스턴스에서 나갈 수 있는 아웃바운드 트래픽(송신)으로 구성됩니다. 정책은 다음의 항목으로 구성됩니다.

항목설명
프로토콜정책을 적용할 프로토콜
- TCP, UDP, ICMP, ALL
출발지 또는 도착지정책을 적용할 패킷의 출발지 또는 도착지 IP의 CIDR 정보
- 인바운드: 출발지
- 아웃바운드: 도착지
포트 번호정책을 적용할 포트
정책 설명정책에 대한 설명

보안 그룹 정책 예시

보안 그룹에 추가하는 정책은 많은 경우 보안 그룹의 목적에 따라 달라집니다. 다음 표에서는 웹 서버와 연결된 보안 그룹의 정책 예를 설명합니다. 웹 서버는 IPv4로부터 HTTP 및 HTTPS 트래픽을 수신하고, SQL 또는 MySQL 트래픽을 데이터베이스 서버에 전송할 수 있습니다.

인바운드 규칙
프로토콜출발지포트 번호설명
TCP     0.0.0.0/080    모든 IPv4 주소에서 이루어지는 HTTP 액세스 허용
TCP0.0.0.0/0443모든 IPv4 주소에서 이루어지는 HTTPS 액세스 허용
TCP네트워크의 Public IPv4 주소 범위22네트워크의 IPv4 IP 주소로부터의 SSH 액세스 허용
TCP네트워크의 Public IPv4 주소 범위3389네트워크의 IPv4 IP 주소로부터의 RDP 액세스 허용
아웃바운드 규칙
프로토콜도착지포트 번호설명
TCP     SQL 데이터베이스 서버 주소 범위1433   Microsoft SQL Server 액세스 허용
TCPMySQL 데이터베이스 서버 주소 범위3306MySQL 액세스 허용
  • 오류 위험을 줄이려면 생성한 보안 그룹 수를 최소화하세요. 각 보안 그룹을 사용하여 보안 요구 사항이 유사한 리소스에 대한 액세스 권한을 관리합니다.
  • BCS 인스턴스에 액세스할 수 있도록 포트 22(SSH) 또는 3389(RDP)에 대한 인바운드 규칙을 추가하는 경우, 특정 IP 주소 범위만 권한을 부여하세요.
  • 큰 포트 범위를 열지 마세요. 각 포트를 통한 액세스 권한이 해당 포트를 필요로 하는 출발지 또는 도착지으로 제한되도록 설정하세요.

기본 보안 그룹

모든 프로젝트에는 보안 그룹의 이름이 default인 기본 보안 그룹이 자동으로 생성되며, 다음의 인바운드 규칙과 아웃바운드 규칙이 설정됩니다. 기본 보안 그룹은 필요에 맞춰 수정하여 사용할 수 있지만, 삭제는 할 수 없습니다.
기본 보안 그룹의 기본 정책은 다음과 같습니다.

인바운드 규칙

프로토콜출발지포트 번호설명
TCP     @default     ALL     동일한 보안 그룹에 할당된 리소스로부터의 인바운드 트래픽을 허용

아웃바운드 규칙

프로토콜도착지포트 번호설명
ALL     0.0.0.0/0     ALL     모든 아웃바운드 트래픽을 허용

사용자 정의 보안 그룹

사용자는 인스턴스가 수행하는 다양한 역할을 반영하는 여러 보안 그룹을 생성할 수 있습니다. 사용자 정의 보안 그룹의 이름은 VPC 내에서 고유해야 합니다.
다음은 생성하는 보안 그룹의 기본 규칙입니다.

인바운드 규칙

등록된 인바운드 규칙은 없습니다(트래픽을 허용하지 않음).

아웃바운드 규칙

프로토콜도착지포트 번호설명
ALL     0.0.0.0/0     ALL     모든 아웃바운드 트래픽을 허용
주의

기본 보안 그룹을 제외하고 사용자 정의 보안 그룹만을 사용할 경우, 해당 VPC 내의 인스턴스는 메타데이터를 취득하지 못해 접근을 할 수 없게 됩니다. 메타데이터 취득을 위해 아래의 아웃바운드 규칙을 추가하시기 바랍니다.

프로토콜도착지포트 번호설명
TCP     169.254.169.0/24     80     메타데이터 취득을 위한 정책