보안 그룹
카카오클라우드 보안 그룹은 인바운드 규칙과 아웃바운드 규칙을 활용하여 연결된 리소스의 트래픽을 제어합니다. 예를 들어, BCS 인스턴스의 네트워크 인터페이스에 보안 그룹을 연결하면 해당 인스턴스의 인바운드 및 아웃바운드 트래픽을 조절할 수 있으며, 이는 트래픽의 출입을 규제하여 보안을 강화합니다.
인바운드 트래픽과 아웃바운드 트래픽에 대한 정책은 별개로 설정할 수 있으며, 프로토콜 및 포트 번호를 기반으로 트래픽을 조절할 수 있습니다. 이렇게 함으로써 필요한 통신만을 허용하고 불필요한 트래픽을 차단하여 네트워크의 안전성을 높일 수 있습니다.
보안 그룹 작동 방식
보안 그룹의 작동 방식은 다음과 같습니다.
작동 방식 | 설명 |
---|---|
Whitelist 기반 | 보안 그룹은 입력된 정책에 대해서만 트래픽을 허용하는 방식으로 작동 |
상태 관리 | 보안 그룹은 상태 관리 기능(Stateful)이 제공됨 - 인바운드 규칙에 의해 허용된 요청에 대해서는 아웃바운드 규칙과 관계없이 응답이 허용됨 - 아웃바운드 규칙에 의해 허용된 요청에 대해서는 인바운드 규칙과 관계없이 응답이 허용됨 |
다중 인스턴스 연결 지원 | 한 개의 보안 그룹을 다수의 인스턴스에 적용 가능 |
다중 보안 그룹 연결 지원 | 다수의 보안 그룹을 한 개의 인스턴스에 적용 가능 - 다수의 보안 그룹이 연결된 보안 그룹은 연결된 모든 보안 그룹의 정책을 허용 |
다중 보안 그룹 복사 기능 지원 | 동일한 인바운드/아웃바운드 규칙을 가진 보안 그룹을 복사해 생성 가능 |
보안 그룹 기본 사항
- 보안 그룹은 Whitelisting 방식을 사용하며 정책에 명시되지 않은 모든 트래픽은 거부됩니다. 따라서 보안 그룹에는 허용할 정책들을 설정해야 합니다.
- 보안 그룹은 Stateful 상태 저장 방식을 제공합니다. 인바운드 트래픽에 대한 응답은 아웃바운드 규칙과 관계없이 인스턴스에서 나가도록 허용되며 반대의 경우도 마찬가지입니다.
- 여러 보안 그룹을 리소스와 연결하면 각 보안 그룹의 정책이 집계되어 액세스 허용 여부를 결정하는 데 사용되는 단일 정책 집합을 형성합니다.
- 정책을 추가, 업데이트 또는 제거할 때 변경 사항은 보안 그룹과 연결된 모든 리소스에 자동으로 적용됩니다. 단, 정책 변경 시 즉시 반영되지 않고 기존 연결에 시간 초과될 때까지만 패킷이 허용합니다.
- 프로젝트당 생성할 수 있는 보안 그룹의 개수, 각 보안 그룹에 추가할 수 있는 정책의 개수, 그리고 네트워크 인터페이스에 연결할 수 있는 보안 그룹의 개수에는 쿼터가 있습니다. 자세한 설명은 서비스 요금 및 쿼터 문서를 참고하시기 바랍니다.
보안 그룹 정책
보안 그룹의 정책은 보안 그룹과 연결된 리소스에 도달하도록 허용된 인바운드 트래픽(수신)과 인스턴스에서 나갈 수 있는 아웃바운드 트래픽(송신)으로 구성됩니다. 정책은 다음의 항목으로 구성됩니다.
항목 | 설명 |
---|---|
프로토콜 | 정책을 적용할 프로토콜 - TCP , UDP , ICMP , ALL |
출발지 또는 도착지 | 정책을 적용할 패킷의 출발지 또는 도착지 IP의 CIDR 정보 - 인바운드: 출발지 - 아웃바운드: 도착지 |
포트 번호 | 정책을 적용할 포트 |
정책 설명 | 정책에 대한 설명 |
보안 그룹 정책 예시
보안 그룹에 추가하는 정책은 많은 경우 보안 그룹의 목적에 따라 달라집니다. 다음 표에서는 웹 서버와 연결된 보안 그룹의 정책 예를 설명합니다. 웹 서버는 IPv4로부터 HTTP 및 HTTPS 트래픽을 수신하고, SQL 또는 MySQL 트래픽을 데이터베이스 서버에 전송할 수 있습니다.
인바운드 규칙
프로토콜 | 출발지 | 포트 번호 | 설명 |
---|---|---|---|
TCP | 0.0.0.0/0 | 80 | 모든 IPv4 주소에서 이루어지는 HTTP 액세스 허용 |
TCP | 0.0.0.0/0 | 443 | 모든 IPv4 주소에서 이루어지는 HTTPS 액세스 허용 |
TCP | 네트워크의 Public IPv4 주소 범위 | 22 | 네트워크의 IPv4 IP 주소로부터의 SSH 액세스 허용 |
TCP | 네트워크의 Public IPv4 주소 범위 | 3389 | 네트워크의 IPv4 IP 주소로부터의 RDP 액세스 허용 |
아웃바운드 규칙
프로토콜 | 도착지 | 포트 번호 | 설명 |
---|---|---|---|
TCP | SQL 데이터베이스 서버 주소 범위 | 1433 | Microsoft SQL Server 액세스 허용 |
TCP | MySQL 데이터베이스 서버 주소 범위 | 3306 | MySQL 액세스 허용 |
- 오류 위험을 줄이려면 생성한 보안 그룹 수를 최소화하세요. 각 보안 그룹을 사용하여 보안 요구 사항이 유사한 리소스에 대한 액세스 권한을 관리합니다.
- 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 | 메타데이터 취득을 위한 정책 |