배스천 서비스를 사용하여 프라이빗 서브넷의 리소스에 액세스

Oracle Cloud Infrastructure Bastion은 퍼블릭 엔드포인트가 없는 리소스에 대한 시간 제한이 있는 전용 SSH 액세스를 제공합니다.

배스천은 게이트웨이 또는 프록시입니다. 이는 인터넷에서 접근할 수 없는 클라우드의 리소스에 대한 보안 액세스를 제공하는 논리적 엔티티입니다. 배스천은 공용 서브넷에 상주하며 사용자를 전용 서브넷의 리소스에 연결하는 데 필요한 네트워크 기반구조를 설정합니다. OCI 배스천Oracle Cloud Infrastructure(OCI)에서 직접 생성한 배스천 서버를 대신할 수 있는 인프라 서비스입니다.

Oracle Cloud Infrastructure Identity and Access Management(IAM)와의 통합을 통해 배스천 서비스 내에서 배스천 또는 세션을 관리할 수 있는 사용자를 제어할 수 있습니다. Oracle Cloud Infrastructure Audit과 통합하면 배스천 서비스와 관련된 관리 작업 및 배스천 세션을 모니터링할 수 있습니다.

구조

이 아키텍처는 전용 서브넷에 연결하는 두 가지 방법을 보여줍니다. 한 가지 방법은 중개 대상 서브넷을 통해 연결하는 것이고 다른 방법은 보호된 리소스가 포함된 서브넷에 직접 연결하는 것입니다.

OCI 배스천을 사용하는 경우 CIDR(클래스 없는 도메인 간 경로 지정) 블록 허용 목록 및 최대 세션 TTL(활성 시간)을 지정할 수 있습니다. OCI 배스천은 역방향 연결을 통해 배스천 VCN과 고객 VCN 사이에 네트워크 경로를 생성합니다. 세션은 일반적으로 유저 또는 연산자에 의해 생성됩니다.

다음 다이어그램은 이 참조 구조를 보여줍니다.

아래 architecture-use-bastion-service.png에 대한 설명입니다.
그림 architecture-use-bastion-service.png에 대한 설명

아키텍처-사용 배스천-서비스-oracle.zip

아키텍처의 구성 요소는 다음과 같습니다.

  • OCI 리전

    OCI 리전은 가용성 도메인을 호스팅하는 데이터 센터가 하나 이상 포함된 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며, 광대한 거리는 (국가 또는 대륙에 걸쳐) 그들을 분리 할 수 있습니다.

  • 가용성 도메인

    가용성 도메인은 한 지역 내의 독립형 독립형 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 내결함성을 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원 또는 냉각과 같은 인프라나 내부 가용성 도메인 네트워크를 공유하지 않습니다. 따라서 한 가용성 도메인의 장애가 해당 지역의 다른 가용성 도메인에 영향을 미치지 않아야 합니다.

  • 결함 도메인

    장애 도메인은 가용성 도메인 내의 하드웨어 및 인프라의 그룹입니다. 각 가용성 도메인에는 3개의 장애 도메인과 독립적인 전원 및 하드웨어가 있습니다. 여러 결함 도메인에 리소스를 분산할 때 응용 프로그램은 결함 도메인 내에서 물리적 서버 실패, 시스템 유지 관리 및 정전이 발생할 수 있습니다.

  • VCN(가상 클라우드 네트워크에 연결) 및 서브넷

    VCN(가상 클라우드 네트워크)은 OCI 리전에 설정하는 커스터마이징 가능한 소프트웨어 정의 네트워크입니다. 기존 데이터 센터 네트워크와 마찬가지로 VCN을 사용하면 네트워크 환경을 제어할 수 있습니다. VCN에는 VCN을 생성한 후 변경할 수 있는 겹치지 않는 CIDR(클래스리스 도메인 간 경로 지정) 블록이 여러 개 있을 수 있습니다. VCN을 서브넷으로 분할할 수 있으며, 이 서브넷은 지역 또는 가용성 도메인으로 범위가 지정될 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 썸네일의 크기는 생성 이후 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.

  • OCI Bastion

    Oracle Cloud Infrastructure Bastion은 퍼블릭 엔드포인트가 없고 베어메탈 및 가상 머신, Oracle MySQL Database Service, Autonomous Transaction Processing(ATP), Oracle Cloud Infrastructure Kubernetes Engine(OKE)과 같은 엄격한 리소스 액세스 제어가 필요한 리소스 및 SSH(Secure Shell Protocol) 액세스를 허용하는 기타 리소스에 대해 제한적이고 시간 제한적인 보안 액세스를 제공합니다. OCI 배스천 서비스를 사용하면 점프 호스트를 배포하고 유지 관리하지 않고도 개인 호스트에 대한 액세스를 사용으로 설정할 수 있습니다. 또한 ID 기반 권한과 중앙 집중식 감사 및 시간 제한 SSH 세션을 통해 향상된 보안 상태를 얻을 수 있습니다. OCI 배스천은 배스천 액세스를 위한 공용 IP의 필요성을 제거하여 원격 액세스를 제공할 때 번거롭고 잠재적인 공격 영역을 제거합니다.

  • 배스천 서비스 백엔드

    Oracle Cloud Infrastructure Bastion 백엔드는 대상 시스템에 대한 액세스 권한을 부여하는 데 사용되는 세션 구성 및 SSH 공개 키를 저장합니다. 필요한 경우 대상 시스템은 서비스 게이트웨이를 사용하여 OCI 배스천 백엔드에 액세스합니다.

  • 프라이빗 끝점

    프라이빗 끝점은 OCI 배스천을 대상 서브넷에 접속합니다. 대상 서브넷은 보다 세분화된 제어를 위해 별도의 서브넷이 될 수도 있고, 액세스하려는 인스턴스의 동일한 서브넷에 있을 수도 있습니다.

권장사항

요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다. 다음 권장 사항을 시작점으로 사용합니다.

  • VCN

    VCN을 생성할 때 VCN의 서브넷에 연결하려는 리소스 수에 따라 필요한 CIDR 블록 수와 각 블록의 크기를 결정합니다. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.

    프라이빗 접속을 설정하려는 다른 네트워크(Oracle Cloud Infrastructure, 온프레미스 데이터 센터 또는 다른 클라우드 제공자)와 겹치지 않는 CIDR 블록을 선택합니다.

    VCN을 생성한 후 해당 CIDR 블록을 변경, 추가 및 제거할 수 있습니다.

    서브넷을 설계할 때 트래픽 흐름 및 보안 요구 사항을 고려하십시오. 특정 계층 또는 역할 내의 모든 리소스를 보안 경계로 사용될 수 있는 동일한 서브넷에 연결합니다.

    지역 서브넷을 사용합니다.

    프로비저닝된 모든 배스천은 대상 서브넷에서 두 개의 IP 주소를 사용합니다. 특정 서브넷에 대해 프로비전할 배스천 수를 기반으로 CIDR 블록을 선택합니다. 예를 들어, CIDR이 /30인 서브넷이 있는 경우 사용 가능한 주소가 두 개 있고 해당 CIDR 내에서 대상 리소스가 있는 경우 배스천을 프로비전할 주소가 충분하지 않습니다. 이 경우 배스천 프로비전이 실패합니다. 대상 서브넷이 /29보다 넓을 것을 권장합니다.

  • Cloud Guard

    사용자정의 감지기 및 응답기 레시피를 생성하도록 Oracle에서 제공하는 기본 레시피를 복제하고 사용자정의합니다. 이러한 레시피를 사용하면 경고를 생성하는 보안 위반 유형과 경고에 대해 수행할 수 있는 작업을 지정할 수 있습니다. 예를 들어 가시성이 퍼블릭으로 설정된 OCI Object Storage 버킷을 감지할 수 있습니다.

    테넌시 수준에서 Oracle Cloud Guard를 적용하여 가장 광범위한 범위를 포괄하고 여러 구성을 유지 관리하는 데 드는 관리 부담을 줄입니다.

    관리 목록 기능을 사용하여 감지기에 특정 구성을 적용할 수도 있습니다.

  • 보안 영역

    최대 보안이 필요한 리소스의 경우 Oracle은 보안 영역을 사용할 것을 권장합니다. 보안 영역은 모범 사례를 기반으로 하는 Oracle 정의 보안 정책 레시피와 연관된 컴파트먼트입니다. 예를 들어, 보안 영역의 리소스는 공용 인터넷에서 액세스할 수 없어야 하며 고객 관리 키를 사용하여 암호화해야 합니다. 보안 영역에서 리소스를 생성 및 업데이트할 때 OCI는 레시피의 정책에 대해 작업을 검증하고 정책을 위반하는 작업을 방지합니다.

  • OCI Bastion

    배스천 레벨에서 TTL(활성 시간)을 지정하면 해당 배스천 컨텍스트에서 생성된 세션 중 배스천 자체보다 TTL이 더 긴 세션이 없습니다. 사용 사례에 대한 최소 제한으로 TTL을 설정합니다. 최소값은 30분이고 최대값은 3시간입니다. TTL은 세션 레벨에서도 구성할 수 있습니다.

    허용 목록에 사용되는 CIDR 블록은 시나리오에 대해 가능한 한 좁아야 합니다. 이렇게 하면 전용 대상 리소스에 액세스할 수 있는 SSH 연결에 대한 IP 주소 범위를 제한할 수 있습니다.

    OCI 배스천과 연관된 대상 서브넷의 크기 및 원하는 배스천 인스턴스 수를 고려합니다. 각 OCI 배스천 인스턴스는 2개의 IP 주소를 사용합니다. 따라서 사용 가능한 IP 주소가 6개 있도록 /29 범위(적어도)를 사용하는 것이 좋습니다. /30에는 IP 주소가 2개 있지만, 나중에 배스천의 두번째 인스턴스가 동일한 서브넷을 가리키도록 하려는 경우 생성할 수 없습니다. 대상 서브넷은 대상 리소스가 위치한 서브넷이거나 대상 VCN의 다른 서브넷일 수 있습니다.

    보안 정책 권장 사항:

    • 대상 리소스가 있는 서브넷의 수신 규칙은 배스천의 프라이빗 끝점 IP인 하나의 IP 주소에서만 수신 TCP 트래픽을 허용해야 합니다.
    • 대상의 정확한 포트(예: Linux의 경우 22, Windows의 경우 3389, MySql의 경우 33060 등)를 지정합니다. 포트에 대해 ALL을 사용하지 마십시오.

    관리 및 운영자 시나리오에 특정 IAM 정책을 사용합니다.

고려사항

  • 지역

    Oracle Cloud Infrastructure Bastion은 지역 서비스입니다. 예를 들어, PHX 영역의 리소스에 액세스하려면 PHX 영역에서 배스천을 생성해야 합니다. 한 영역 내의 배스천은 다른 영역의 리소스에 액세스하는 데 사용할 수 없습니다.

  • 성능

    OCI 배스천 생성은 SLO 내에 있어야 합니다(요청 생성 후 2분 이내). 세션 만들기/종료는 SLO 내에 있어야 합니다. 포트 전달은 1분(간단한 시나리오)이고 관리되는 SSH 세션은 3분(일반 사용량)입니다.

  • 보안

    OCI 배스천의 트래픽은 서브넷의 프라이빗 끝점에서 시작됩니다. 배스천의 트래픽을 허용하려면 이 프라이빗 끝점에서 배스천을 사용하여 액세스해야 하는 IP로의 수신 및 송신 트래픽을 허용합니다. Instance의 하위 집합에 대한 액세스를 제한하는 Fine-Grained Policy는 적절한 액세스 레벨을 보장하는 데 도움이 됩니다.

  • 가용성

    이 서비스는 API 오류율을 기반으로 배스천 및 세션을 생성/종료하기 위한 고가용성을 제공해야 합니다. 목표 가용성은 99.9%입니다.

  • 비용

    OCI 배스천 사용 비용은 없습니다. 테넌시당 리전당 최대 5개의 배스천을 생성할 수 있습니다. 각 배스천은 VCN 내의 대상 리소스를 처리합니다.

  • 사용 시나리오

    OCI 고유 이미지를 실행 중이거나 Linux 기반이며 OCA v2 에이전트(배스천 플러그인이 사용으로 설정된 경우)를 실행하는 프라이빗 대상 호스트에 액세스하려는 경우 관리되는 SSH 세션을 사용할 수 있습니다. 에이전트가 실행 중이지 않거나 Windows 기반이거나 데이터베이스에 대한 액세스가 필요한 전용 대상 리소스에 액세스하려면(ATP 또는 MySQL) 포트 전달 SSH 세션을 사용할 수 있습니다.

로그 변경

이 로그는 중요한 변경 사항을 나열합니다.