본문 바로가기

security

오라클 클라우드를 위한 디자인전략 패턴 #4(네트워크보안)

안녕하세요. 

테크넷 마스터 김재벌 입니다.

이번 포스팅은 오라클 클라우드를 위한 디자인 전략 패턴 중 4번째인 네트워크 보안에 대해서 알아 보도록 하겠습니다.

아무래도 클라우드의 특징상 외부와 네트워크 연결을 통해 서비스가 제공이 될텐데, VCN 에 대한 미흡한 보안 구성 때문에 외부에 내부 자산이 노출되면 개인정보의 유출, 중요 서비스의 DB의 유출 등 다양한 보안 문제를 야기 하게 됩니다.

따라서, 안전한 네트워크에 대한 서비스 보안을 위해서는 네트워크 보안 디자인 전략은 필수 라고 할 수 있습니다.

 

안전한 네트워크 접근 보장

다음 모범 사례를 채택하여 가상 클라우드 네트워크, 서브넷, 로드 밸런서 및 기타 네트워킹 리소스를 보호 할 수 있습니다.

네트워크 액세스 제어 구현

 
액세스 제어를 사용하여 네트워크를 보호합니다.
  • 적절한 IAM 정책을 정의하여 네트워크 리소스에 대한 액세스를 네트워크 리소스 관리가 허용된 사용자 및 그룹으로만 제한합니다.
  • VCN에 대한 계층형 서브넷 전략을 공식화 하여 구성합니다.
    • 로드 밸런서용 DMZ 서브넷입니다.
    • 외부에서 액세스 가능한 호스트(예: 웹 애플리케이션 서버 및 IDS(침입 감지 시스템)를 실행하는 인스턴스)에 대한 공용 서브넷입니다.
    • 데이터베이스와 같은 내부 호스트에 대한 전용 서브넷입니다.
  • 전용 서브넷에 연결된 컴퓨트 인스턴스는 전용 IP 주소만 가질 수 있습니다.
  • 보안에 민감한 호스트(예: DB 시스템)를 전용 서브넷에 연결합니다. 이러한 호스트에서 인터넷에 연결하는 경우 NAT 게이트웨이를 사용합니다. 호스트가 다른 Oracle Cloud Infrastructure 서비스에 액세스할 수 있도록 하려면 서비스 게이트웨이를 사용합니다.
  • 네트워크 보안 그룹은 네트워크 보안 그룹에서 제어하는 vNICs 간에 전송되는 트래픽의 세분화된 제어를 제공합니다.
  • 보안 목록은 서브넷 내부 및 외부로 유입될 수 있는 트래픽을 제어합니다.
  • 네트워크 보안 그룹을 사용하여 전용 및 공용 서브넷 모두에서 리소스에 대한 액세스를 제어합니다.
    • 응용 프로그램의 각 계층에 대한 보안 그룹을 생성하여 작업 로드에 필요한 네트워크 흐름만 허용합니다.
    • 애플리케이션 계층 내 또는 애플리케이션 계층 간에 불필요한 측면 트래픽을 허용하지 마십시오.
    • 필요한 경우가 아니면 애플리케이션 계층이 다른 계층과 통신하도록 허용하지 마십시오.
  • 세분화된 보안 규칙을 사용하여 인터넷과 함께 VCN 내에서, 피어링 게이트웨이를 통해 연결된 다른 VCN 및 온프레미스 호스트와 통신을 규제합니다.
  • 침입 감지 시스템을 설정하고 모든 송신 트래픽을 스캔하려면 VCN 라우팅 테이블 기능을 사용합니다.
  • VCN 서브넷 플로우 로그는 VCN 내에서 전송되는 트래픽 로그를 기록합니다. VCN 서브넷 플로우 로그를 설정하고 정기적으로 콘텐츠를 모니터링합니다.
  • 공용 HTTPS 서비스에 대해 웹 애플리케이션 방화벽을 사용으로 설정합니다.

 

로드 밸런서 보호

 

 
로드 밸런서를 사용하여 클라이언트 애플리케이션과 고객의 VCN 간 엔드투엔드 TLS 연결을 사용으로 설정할 수 있습니다.
  • 로드 밸런서에서 TLS를 종료하려면 HTTP 로드 밸런서를 사용합니다. 백엔드 서버에서 TLS를 종료하려면 TCP 로드 밸런서를 사용합니다.
  • 네트워크 보안 그룹 또는 보안 목록을 사용하여 로드 밸런서에 대한 네트워크 액세스를 구성할 수 있습니다.
  • 로드 밸런서를 최소 사용자 및 그룹 세트로 관리할 수 있는 권한을 제한하려면 IAM 정책을 정의합니다.

 

네트워크 소스를 사용하여 액세스 제한

 

네트워크 소스는 정의된 IP 주소 세트입니다. IP 주소는 테넌시 내 VCN의 공용 IP 주소 또는 IP 주소일 수 있습니다.

네트워크 소스를 생성한 후 정책 또는 테넌시의 인증 설정에서 참조하여 시작 IP 주소를 기반으로 액세스를 제어할 수 있습니다.

네트워크 리소스는 테넌시(또는 루트 구획)에서만 생성할 수 있으며, 다른 ID 리소스와 마찬가지로 홈 영역에 상주합니다.

네트워크 소스를 사용하여 다음 방법으로 테넌트를 보호할 수 있습니다.

  • 리소스에 대한 액세스를 제한하려면 IAM 정책의 네트워크 소스를 지정합니다. 정책에 지정된 경우 IAM은 허용되는 IP 주소에서 리소스 액세스 요청을 검증합니다. 예를 들어, 회사 네트워크를 통해 Oracle Cloud Infrastructure에 사인인한 사용자만 테넌시의 오브젝트 스토리지 버킷에 대한 접근을 제한할 수 있습니다. 또는 특정 VCN의 특정 서브넷에 속한 리소스만 서비스 게이트웨이를 통해 요청을 만들 수 있습니다.
  • 콘솔의 인증 설정에서 네트워크 소스를 지정하여 콘솔에 대한 로그인을 제한합니다. 네트워크 소스에 지정된 IP 주소에서만 콘솔에 사인인할 수 있도록 테넌시의 인증 정책을 설정할 수 있습니다. 네트워크 소스의 허용된 목록에 없는 IP 주소에서 로그인하려고 시도하는 사용자에게는 액세스가 거부됩니다.

 

보안 DNS 영역 및 레코드

 

DNS 영역 및 레코드의 잘못된 업데이트 또는 승인되지 않은 삭제로 인해 서비스 중단이 발생할 수 있습니다.

IAM 정책을 정의하여 DNS 영역 및 레코드를 수정할 수 있는 사용자를 제한합니다.

 

** 참고로 오라클은 몇년전에 동적 DNS 서비스로 유명한 DynDNS 를 인수하여 OCI 클라우드 DNS 서비스와 통합하였습니다. 개인적으로 DynDNS 서비스 개인고객이었는데 말이죠...^^ **

신뢰할만한 DNS 서비스를 제공하던 DynDNS 서비스가 OCI에 통합되었으니, 안정성은 보장 될 것이라 판단 됩니다.

 

Oracle Cloud Infrastructure에서(Maximum Security Zone) 최대 보안 영역 활용

 
Maximum Security Zones 서비스는 부적절한 보안 정책의 위험을 최소화하는 데 도움이 됩니다.

새 프로젝트를 시작하고 새 솔루션을 구축하면 다음과 같은 다양한 소스에서 다양한 모범 사례를 활용할 수 있습니다.

  • 벤더 권장 사항
  • 조직 표준 및 정책
  • 외부 프레임워크
  • 규정 준수
  • 참조 아키텍처

이러한 최적의 사용법은 일반적으로 인증, 암호화, 저장 영역, 액세스 제어 등 다양한 보안 항목을 다룹니다. 그러나 대부분의 경우 최적의 사용법 조언은 무시됩니다. 지금까지 살펴본 바와 같이 프로젝트 일정, 예산 제약 조건, 지식 격차, 비운용으로 시작되는 환경은 모두 관련 Best Practice를 따르지 못하고 안전하지 않은 환경과 취약한 보안 상황을 초래할 수 있습니다.

Oracle Cloud Infrastructure의 Maximum Security Zones 서비스는 이러한 위험을 최소화하도록 지원합니다. 보안 영역은 중요한 데이터 및 리소스가 포함되어 있다는 사실에 따라 설계를 통해 제한적으로 제어되는 예방적 제어입니다. 예를 들어, 최대 보안 정책이 사용으로 설정된 상태로 Maximum Security Zones가 릴리스됩니다. 공용 액세스가 허용되지 않아야 하는 위치를 사용하며 중요한 데이터가 최대한 인터넷에서 분리되어야 합니다. 보안 정책은 이 정책을 위반하는 리소스를 실시간으로 만들지 못하도록 하여 이 위치를 적용합니다.