본문으로 건너뛰기

보안 그룹

카카오클라우드 보안 그룹은 가상의 방화벽과 같이 동작하여 송수신되는 트래픽을 인스턴스 레벨에서 제어할 수 있게 하는 기능입니다. 인스턴스를 생성할 때 자동 생성되는 기본 네트워크 인터페이스에 보안 그룹을 설정할 수 있으며, 네트워크 인터페이스를 별도로 생성할 때에도 설정할 수 있습니다. 베어 메탈 인스턴스 유형을 제외한 모든 인스턴스 유형에서는 네트워크 인터페이스별로 반드시 1개 이상의 보안 그룹을 설정해야 합니다.

보안 그룹은 크게 인바운드 규칙 및 아웃바운드 규칙으로 구분되며, 각각의 규칙을 설정하여 트래픽을 제어할 수 있습니다. 규칙은 프로토콜, 출발지 또는 목적지 주소의 CIDR 범위, 포트 번호로 구성되며, 사용자의 보안 요구 사항에 맞춰 적절한 보안 그룹 규칙이 설정되어야 합니다.

보안 그룹 작동 방식​

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

작동 방식설명
화이트리스트 기반보안 그룹은 기본적으로 규칙에 설정되지 않은 모든 트래픽을 거부(Deny)하며 별도의 거부 규칙을 설정할 수 없습니다.
명시적으로 설정된 규칙을 허용(Allow)하는 형태로 작동합니다.
상태 관리보안 그룹은 상태 저장형(Stateful)으로 작동됩니다. 즉, 요청(Request) 패킷에 대한 응답(Response) 트래픽은
규칙 설정과 무관하게 자동으로 허용되며, 반대의 경우도 마찬가지로 자동으로 허용됩니다.
다중 인스턴스/네트워크 인터페이스 연결 지원하나의 보안 그룹을 여러 개의 인스턴스 및 네트워크 인터페이스에 적용할 수 있습니다.
다중 보안 그룹 연결 지원다수의 보안 그룹을 하나의 인스턴스 또는 네트워크 인터페이스에 적용할 수 있습니다.
다중 보안 그룹 복사 기능 지원보안 그룹을 복사하여 동일한 인바운드 및 아웃바운드 규칙을 가진 여러 보안 그룹을 빠르게 생성할 수 있습니다.

보안 그룹 기본 사항​

  • 보안 그룹은 화이트리스트 방식으로 동작하며, 규칙에 정의되지 않은 모든 트래픽은 기본적으로 거부됩니다.
  • 보안 그룹은 상태 저장 방식으로 동작합니다.
  • 보안 그룹의 규칙을 추가, 삭제, 갱신할 경우, 이 변경 사항은 연결되어 있는 모든 리소스에 자동으로 적용됩니다. 단, 기존 연결에 대한 시간이 초과될 때까지 패킷이 허용된 이후 반영됩니다.
  • 프로젝트당 생성할 수 있는 보안 그룹의 개수, 각 보안 그룹에 설정 가능한 규칙의 개수 등에는 할당량(Quota) 제한이 있습니다. 자세한 설명은 서비스 요금 및 쿼터 문서를 참고해 주세요.

보안 그룹 규칙​

보안 그룹의 규칙은 크게 인바운드 규칙과 아웃바운드 규칙으로 구분됩니다. 보안 그룹이 연결된 리소스로 들어오는 트래픽에 대한 규칙 정의는 인바운드 규칙에서, 이 리소스로부터 외부로 나가는 트래픽에 대한 규칙 정의는 아웃바운드 규칙에서 설정할 수 있습니다. 각 규칙은 아래의 항목들로 구성됩니다.

항목설명
프로토콜규칙을 적용할 프로토콜
- TCP, UDP, ICMP, ALL
출발지(Source) 또는 목적지(Destination)규칙을 적용할 패킷의 출발지 또는 목적지 IP 주소의 CIDR 범위 정보
- 인바운드: 출발지
- 아웃바운드: 목적지
포트 번호규칙을 적용할 포트
규칙 설명규칙에 대한 설명

보안 그룹 규칙 예시​

보안 그룹에 추가하는 규칙은 일반적으로 보안 그룹의 목적에 맞춰 정의됩니다. 다음 표에서는 웹 서버와 연결된 보안 그룹의 규칙 예를 설명합니다. 웹 서버는 HTTP 및 HTTPS 트래픽을 수신하고, SQL 또는 MySQL 트래픽을 데이터베이스 서버에 전송할 수 있습니다.

인바운드 규칙​
프로토콜출발지포트 번호설명
TCP     0.0.0.0/080    모든 HTTP 접근 허용
TCP0.0.0.0/0443모든 HTTPS 접근 허용
TCP웹 서버에 연결된 퍼블릭 IP CIDR 범위22이 웹 서버 인스턴스에 연결된 퍼블릭 IP 주소로 SSH 접근 허용
TCP웹 서버에 연결된 퍼블릭 IP CIDR 범위3389이 웹 서버 인스턴스에 연결된 퍼블릭 IP 주소로 RDP 접근 허용

HTTP 및 HTTPS 통신은 네트워크 계층에서 TCP를 사용하므로, 보안 그룹 규칙 설정 시 이 프로토콜을 허용해야 합니다. 또한 각각 80번, 443번 포트를 사용하므로 이를 규칙별로 추가해야 합니다. 또한 웹 서버의 운영 체제에 따라 22번 포트(SSH) 또는 3389번 포트(RDP)의 접근이 허용되어야 웹 서버에 직접 접근 및 연결할 수 있습니다.

아웃바운드 규칙​
프로토콜목적지포트 번호설명
TCP     SQL 데이터베이스 서버의 IP CIDR 범위1433   Microsoft SQL 서버의 접근 허용
TCPMySQL 데이터베이스 서버의 IP CIDR 범위3306MySQL 서버의 접근 허용

웹 서버로부터 SQL, MySQL 데이터베이스 서버로 접근이 가능해야 하므로 아웃바운드 규칙에 이를 허용하는 규칙을 추가합니다.

팁
  • 오류 위험을 줄이려면 생성한 보안 그룹 수를 최소화하세요. 각 보안 그룹을 사용하여 보안 요구 사항이 유사한 리소스에 대한 접근 권한을 관리합니다.
  • BCS 인스턴스에 접근할 수 있도록 포트 22(SSH) 또는 3389(RDP)에 대한 인바운드 규칙을 추가하는 경우, 특정 IP 주소 범위만 권한을 부여해야 합니다.
  • 큰 포트 범위를 열지 마세요. 각 포트를 통한 접근 권한이 해당 포트를 필요로 하는 출발지 또는 목적지로 제한되도록 설정하세요.

기본 보안 그룹​

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

인바운드 규칙​

프로토콜출발지포트 번호설명
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     메타데이터 취득을 위한 규칙