보안 다중 계층 네트워크 설계

안전한 다중 계층 네트워크를 설계할 때 계층에서 구조를 구축합니다.

데이터베이스와 같은 가장 중요한 리소스를 전용 서브넷의 가장 안쪽 층에 배치합니다. 리소스에 대한 네트워크 액세스를 제어할 보안 규칙을 정의하십시오. 배스천 호스트 및 로드 밸런서를 통해 공용 인터넷에서 트래픽을 라우팅합니다.

서브넷 전략 확인

서브넷은 VCN 내의 연속 IP 주소 범위입니다. 서브넷으로 네트워크 트래픽을 제어하려면 보안 목록, 경로 지정 테이블 및 DHCP 옵션 집합을 연결할 수 있습니다.

서브넷 전략을 결정할 때 다음 요소를 고려하십시오.
  • 서브넷을 생성한 후에는 서브넷 크기를 변경할 수 없습니다. 따라서 서브넷을 생성하기 전에 필요한 모든 서브넷의 크기를 계획합니다.
  • 서브넷은 전용 또는 공용일 수 있습니다. 서브넷을 생성할 때 선택한 후 나중에 변경할 수 없습니다.
  • 일반적인 전략은 전용 서브넷만 생성하는 것입니다.
    • 온프레미스 네트워크의 트래픽에는 IPSec VPN 연결이나 Oracle Cloud Infrastructure FastConnect 링크를 사용할 수 있습니다.
    • 공용 인터넷의 트래픽은 공용 로드 밸런서를 통해 경로를 지정할 수 있습니다.
    • NAT (네트워크 주소 변환) 게이트웨이를 통해 공용 인터넷에 바인드된 트래픽 경로를 지정할 수 있습니다. NAT 게이트웨이를 사용하면 전용 서브넷의 리소스가 인터넷에 대한 아웃바운드 접속을 설정하고 동일한 접속에서 데이터를 수신할 수 있습니다. 인터넷에서 인바운드 연결을 허용하지 않습니다.
  • 애플리케이션 구조에 공용 IP 주소가 필요한 경우 (예: 온프레미스 애플리케이션을 클라우드로 이전할 때) 전용 서브넷과 공용 서브넷을 모두 포함하는 아키텍처를 사용하십시오.
  • 서브넷이 필요한 리소스를 프로비전하려는 구획에 서브넷을 생성합니다.
  • 서브넷은 AD (가용성 도메인) 또는 지역별 서브넷에 특정할 수 있습니다. AD 실패는 지역 서브넷에 영향을 주지 않습니다.

보안 목록 디자인

각 서브넷에 대해 서브넷에 허용되어야 하는 트래픽의 소스, 대상 및 유형을 지정하는 보안 규칙을 생성할 수 있습니다. 보안 목록에서 이러한 규칙을 정의하고 보안 목록을 서브넷에 연결합니다.

수신 및 송신 네트워크 트래픽에 대한 세분화된 제어를 구현하려면 개별 서브넷에 대한 보안 목록을 생성할 수 있습니다. 별도의 (전역) 보안 목록에 있는 모든 서브넷에 공통되는 규칙을 유지할 수 있습니다. 다음은 고려할 수 있는 몇 가지 보안 목록입니다.
  • 전역 보안 목록: 이 보안 목록에는 모든 서브넷에 사용할 규칙이 포함되어 있습니다. 일반적으로 이 목록에는 몇 가지 규칙이 포함됩니다.
  • 계층별 보안 목록: 다중 계층 구조 (예: 비즈니스 논리 또는 데이터베이스 계층) 에서 특정 계층에 대한 보안 목록을 정의할 수 있습니다. 서브넷을 신중하게 설계하면 계층 간 통신에 필요한 보안 규칙 수를 매우 줄일 수 있습니다. 예를 들어, 업무 논리 계층은 두 개의 보안 규칙 (한 수신 및 한 개의 송신) 만 생성하여 데이터베이스 계층과 통신하도록 허용할 수 있습니다.
  • 보안 목록 계열: 이 목록은 단일 서비스를 구성하는 서브넷에 적용되거나 가용성 도메인 내 단일 고객에 대한 보안 규칙에 사용됩니다. 예를 들어, 비즈니스 논리 계층의 가용성 도메인 내에 웹, 응용 프로그램 및 로드 밸런서 서비스 서브넷에 적용되는 규칙이 있습니다.
  • 서브넷 특정 보안 목록: 이러한 목록에는 개별 서브넷과 관련된 규칙이 포함됩니다.
  • 임시 보안 목록: 테스트하거나 테스트하는 규칙에 임시 보안 목록을 사용할 수 있습니다. 예를 들어, 특정 수신 사용 사례를 테스트하는 동안 임시 보안 목록에서 필요한 규칙을 생성할 수 있습니다.

보안 규칙 정의

보안 규칙을 사용하여 리소스 간 네트워크 트래픽을 제어합니다. 각 규칙은 트래픽이 허용되는 방향, 소스, 대상, 포트 및 프로토콜을 정의합니다.

다음 표는 서브넷 제품군별로 정의해야 하는 규칙의 예입니다. 애플리케이션에 필요한 규칙을 결정합니다.

서브넷 계열 Ingress 규칙 송신 규칙
DMZ
  • 모든 위치의 TCP/22
  • 모든 위치의 TCP/80
  • 모든 위치의 TCP/443
VCN에 대한 TCP/22
로드 밸런서
  • 모든 위치의 TCP/80
  • 모든 위치의 TCP/443
  • TCP/80 - 중간 계층
  • 중간 계층의 TCP/443
중간 계층
  • 로드 밸런서의 TCP/80
  • 로드 밸런서의 TCP/443
데이터베이스 계층에 대한 TCP/1521
데이터베이스 중간 계층의 TCP/1521 없음

주:

보안 목록과 규칙 정의는 네트워크 보안의 첫번째 단계입니다. 네트워크를 인터넷에 표시하기 전에 DDoS (서비스 거부), SQL 삽입 및 기타 네트워크 공격을 해결하는 방법을 고려하십시오.

구획 정의

구획을 사용하여 논리적 컨테이너로 클라우드 리소스를 구성하고 리소스에 대한 액세스를 제어할 수 있습니다. 정의하는 정책은 특정 구획에서 리소스를 생성하고 관리할 수 있는 사용자 기능을 제어합니다.

클라우드 리소스의 관리 방식에 따라 구획 및 정책을 설계합니다. 비즈니스 및 IT 롤을 기반으로 사용자가 필요한 리소스에만 액세스할 수 있도록 하기 위한 목적이 있습니다. 예를 들어, 한 사용자 그룹이 중간 계층을 관리하고 다른 그룹이 데이터베이스 계층을 관리하는 경우 각 계층에 대한 구획을 생성합니다. 한 명의 사용자 사용자만 계층을 관리하는 경우에도 각 계층에 대해 별도의 구획을 사용하는 것을 고려하십시오. 이 접근법에서는 필요한 경우 권한을 쉽게 분리할 수 있습니다.

또한 구획을 사용하면 클라우드 예산의 사용량을 추적하고 관리할 수 있습니다. 예를 들어, 조직의 각 부서에 대한 구획을 생성하고 각 구획의 클라우드 리소스를 모니터할 수 있습니다.

구획에 논리적 이름을 지정합니다. 컨테이너의 리소스 특성과 상태를 쉽게 식별할 수 있는 이름 지정 규칙을 사용합니다.

다음 표는 일반적인 다중 계층 구조에 대한 구획 및 서브넷 구조의 예를 제공합니다. 이 예제에서 구획 이름의 xxx는 Dev, Test, Stage 또는 Prod 일 수 있고 yyy는 애플리케이션이나 작업 로드의 이름일 수 있습니다. 예를 들어 Prod_Ordering_SharedServices 라는 이름은 구획이 Ordering 애플리케이션의 공유 서비스에서 사용되는 프로덕션 리소스를 포함함을 나타냅니다.

구획 서브넷 리소스
xxx_yyy_Networks 없음 VCN 및 게이트웨이
xxx_yyy_Admin DMZ 서브넷 기본 호스트
xxx_yyy_BusinessLogic
  • 웹 서버 서브넷
  • 애플리케이션 서버 서브넷
  • 로드 밸런서 서브넷
  • 웹 서버 인스턴스
  • 애플리케이션 서버 인스턴스
  • 로드 밸런서 노드
xxx_yyy_Database 데이터베이스 서브넷 데이터베이스 인스턴스
xxx_yyy_SharedServices 공유 서비스 서브넷 공유 구성요소

Xxx_yyy_Networks 구획에서 가상 클라우드 네트워크 및 해당 게이트웨이를 생성하고 다른 구획에 필요한 서브넷을 생성합니다.

사용자 생성

리소스를 생성 또는 관리해야 하는 각 사람 또는 시스템은 IAM (Oracle Cloud Infrastructure Identity and Access Management ) 또는 통합 id 제공자에서 사용자로 정의되어야 합니다. 필요한 사용자를 생성합니다.

Oracle Cloud 계정에 등록할 때 Oracle 는 관리자 사용자를 설정하고 이 사용자를 [관리자] 라는 그룹에 지정합니다. 이 그룹을 삭제할 수 없습니다. 사용자를 더 추가할 수 있습니다. 미리 정의된 정책을 통해 관리자 그룹은 Oracle Cloud Infrastructure 의 모든 리소스를 관리할 수 있습니다.

필요한 사용자를 생성합니다. 계정이 통합 Id 제공자 (예: Oracle Identity Cloud Service) 를 사용할 경우 해당 id 제공자에 사용자를 생성합니다.

통합 사용자가 API 키 및 인증 토큰을 관리할 수 있어야 하는 경우 통합 id 제공자가 IAM에서 사용자를 프로비전하도록 구성되어 있는지 확인하십시오. 이 구성은 2018년 12월 21일 이전에 생성된 계정에만 필요합니다. 또는 IAM에 로컬 사용자를 생성합니다.

그룹 및 정책 계획

사용자를 그룹에 추가하거나 그룹에서 사용자를 제거하여 사용자의 권한을 제어할 수 있습니다. 그룹이 특정 구획의 리소스를 관리할 수 있도록 필요한 그룹 및 정책을 계획합니다.

하나 이상의 그룹에 사용자를 지정할 수 있습니다. 정책은 Oracle Cloud Infrastructure 리소스에 대한 액세스를 제어합니다. 정책은 하나 이상의 그룹, 사용자 또는 구획에 대한 권한을 지정합니다.

다음 표에는 일반적으로 다중 계층 구조에 필요한 그룹 및 권한이 나열됩니다.

그룹 권한
DBAdmins
  • 테넌시의 모든 리소스를 읽습니다.
  • 데이터베이스 리소스를 관리합니다.
IAMAdminManagers
  • 사용자를 관리합니다.
  • AdministratorsNetSecAdmins 그룹을 관리합니다.

: Oracle 는 Oracle Cloud 에 가입할 때 Administrators 그룹을 생성합니다. 이 그룹의 사용자는 사용자 및 그룹 관리를 포함하여 테넌시의 모든 리소스에 대해 전체 액세스 권한을 갖습니다. 이 그룹으로 멤버쉽을 제한합니다.

IAMManagers
  • 사용자를 관리합니다.
  • AdministratorsNetSecAdmins 를 제외한 모든 그룹을 관리합니다.
NetworkAdmins
  • 테넌시의 모든 리소스를 읽습니다.
  • 보안 목록, 인터넷 게이트웨이, IPSec VPN 연결 및 고객 프리미엄 장비를 제외한 모든 네트워킹 리소스를 관리합니다.
NetSecAdmins
  • 테넌시의 모든 리소스를 읽습니다.
  • 보안 목록, 인터넷 게이트웨이, 고객 프리미스 장비, IPSec VPN 연결 및 로드 밸런서를 관리합니다.
  • 모든 가상 네트워크 리소스를 사용합니다.
ReadOnly 테넌시를 보고 검사합니다. 이 그룹은 리소스를 생성하거나 관리할 필요가 없는 사용자를 위한 것입니다 (예: 감사자 및 수습).
StorageAdmins
  • 테넌시의 모든 리소스를 읽습니다.
  • 객체 저장 영역 및 블록 볼륨 리소스를 관리합니다.
SysAdmins
  • 테넌시의 모든 리소스를 읽습니다.
  • 컴퓨트 및 스토리지 리소스를 관리합니다.
  • 구획을 관리합니다.
  • 로드 밸런서, 서브넷 및 Vnic를 사용합니다.

통합 Id 제공자 (예: Oracle Identity Cloud Service) 에서 필요한 그룹을 생성하고 각 그룹을 Oracle Cloud Infrastructure Identity and Access Management 의 해당 그룹에 매핑해야 합니다.