OCI 가상 방화벽: Network Security Group & Security List

OCI 가상 방화벽: Network Security Group & Security List

Oracle Cloud Infrastructure(이하 OCI) Network는 가상 방화벽 기능을 Network Security Group(이하 NSG)과 Security List로 제공합니다. NSG와 Security List가 혼동되는 경우가 있습니다. 이번 문서에서는 OCI 가상 방화벽 기능을 제공하는 NSG와 Security List 차이점을 사례를 통해서 확인해 보겠습니다.

이 문서에서 다루는 내용은 OCI Free Trial에서 실습 가능합니다.

NSG & Security List

NSG와 Security List는 모두 VCN에 가상 방화벽(Virtual Firewall)을 정의하는 OCI VCN(Virtual Cloud Network)의 구성 요소입니다. NSG와 Security List 모두 Source와 Destination에 대한 네트워크 접근 허용 규칙을 정의한다는 공통점을 갖습니다.

위 이미지는 demovcn의 상세 페이지에 출력되는 정보입니다. demovcn은 2개의 서브넷으로 구성되고, NSG는 0개, Security List는 2개가 존재함을 확인할 수 있습니다.

NSG와 Security List은 모두 네트워크 접근 규칙을 정의하는 VCN 구성요소입니다. 두 요소의 차이점은 Security List의 보안 규칙은 대상 Subnet에 포함된 전체 VM에 일괄 적용됩니다. NSG는 Security List 보다 정교하게 규칙이 적용되는 대상 서버를 그룹으로 한정할 수 있다는 점입니다.

NSG는 Security List 보다 정교하게 네트워크 접근 규칙을 특정 자원에 적용할 수 있습니다.

네트워크 접근 규칙 설정

NSG와 Security List의 차이점과 적용 방식을 확인하기 위해서 다음 시나리오와 같은 보안 규칙을 OCI VCN(Virtual Cloud Network)에 적용해 보겠습니다.

demovcn에 4개 vm이 있습니다. Public IP가 할당되는 Public Subnet에 Bastion 서버 1대가 위치하고, 외부 인터넷에서 접근할 수 없는 Private Subnet에 app 서버 3대가 위치합니다. 시나리오는 다음과 같습니다.

  • Bastion 서버에게 동일 subnet 3개 VM에 ssh 접근 허용
  • Bastion 서버에게 동일 subnet vm 중에서 App02에만 Ping 허용

데모 VM 정보

위 시나리오 데모에 사용할 자원은 다음과 같습니다.

VM Subnet Public IP Private IP
bastion 공용 서브넷-demovcn 132.145.126.255 10.0.0.2
app01 전용 서브넷-demovcn - 10.0.1.6
app02 전용 서브넷-demovcn - 10.0.1.7
app03 전용 서브넷-demovcn - 10.0.1.8

기본 VCN 상태

현재 Public Subnet에 위치하는 Bastion 서버에서 App01, App02 및 App03에 접근 상태는 다음과 같습니다.

Bastion VM에서 App0X 서버에 SSH 접근은 모두 가능한 상태이고 Ping은 모두 허용하지 않는 상태입니다.

Bastion VM이 App0X VM에 SSH 접근이 가능한 이유는 VCN 생성할 때 VCN 내부에서 SSH를 허용하는 보안 규칙이 Security List에 기본 설정되기 때문입니다.

위 이미지와 같이 VCN 전체 CIDR Block인 10.0.0.0/16의 모든 VNIC이 동일 VCN의 모든 VNIC에 22번 포트 접근을 허용하는 보안 규칙이 포함되어 있습니다.

Bastion에서 App02 접근 허용

데모에서 Bastion VM에게 오직 App02의 Ping만을 허용하는 보안 규칙을 설정해야 합니다.

앞에서 살펴본 SSH 보안 룰과 같이 Security List의 보안 룰이 적용되는 최소단위는 Subnet 단위입니다. Security List에 적용된 보안 규칙은 Subnet 전체의 VNIC에 적용됩니다. 동일한 Subnet에 위치하는 App01, App02, App03 중에서 App02에만 적용되는 보안 규칙을 Security List로 만들수 없습니다.

특정 자원에만 적용되는 보안 규칙을 만들기 위해서는 Network Security Group을 이용해야 합니다. Network Security Group은 보안 규칙을 정의하고, 보안 룰 대상이 되는 자원을 그룹으로 등록합니다.

demovcn에서 Network Security Group을 클릭하고 Create Network Security Group 버튼을 클릭합니다.


Public Subnet(10.0.0.0/24)에서 Ping을 위한 ICMP 프로토콜을 허용하는 룰을 다음과 같이 등록합니다.


Network Security Group Ping의 상세 페이지에 보안 규칙이 등록된 것을 확인할 수 있습니다.


ping 보안 룰이 등록되었으면, App02 VM의 상세 페이지로 이동하여 Ping 보안 룰에 해당 VM을 포함시킵니다.


App02에 Network Security Group Ping을 할당하면, 다음과 같이 Network Security Group Pingd의 그룹으로 App02 VNIC이 포함됨을 확인할 수 있습니다.

이제 Bastion VM이 Ping 보안 룰이 적용되는 App02에 Ping을 실행할 수 있음을 확인할 수 있습니다.

Bastion에서 App02 접근 결과

아래 이미지에서 Bastion에게 App02의 Ping이 허용됨을 확인할 수 있습니다.

요약

OCI VCN에서 가상 방화벽 규칙을 정의하는 구성 요소는 Security List와 Network Security Group입니다. Security List에 적용되는 보안 규칙이 적용 최소단위는 Subnet입니다. 특정 자원에 보안 규칙을 적용하기 위해서는 Network Security Group을 사용해야 합니다.

Security List와 Network Security Group의 차이점을 확인하기 위해서 Public Subnet에 위치한 Bastion 서버에게 Private Subnet의 특정 VM에 Ping을 허용하는 보안 규칙을 적용하는 데모로 진행했습니다.

참고 문서

김태완 avatar
작성자: 김태완
1999년 부터 Java, Framework, Middleware, SOA, DB Replication, Cache, CEP, NoSQL, Big Data, Cloud를 키워드로 살아왔습니다. 현재는 빅데이터와 Machine Learning을 중점에 두고 있습니다.
E-mail: taewanme@gmail.com

이 저작물은 Oracle과 관계없이 개인으로서 개인의 시간을 할애하여 작성된 글 입니다. 본 글의 내용, 입장, 예측은 Oracle을 공식적으로 절대 대변하지 않습니다.