주:
- 이 자습서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 자격 증명, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료했으면 이러한 값을 자신의 클라우드 환경과 관련된 값으로 대체하십시오.
Oracle Cloud Infrastructure Zero Trust Packet Routing 생성 및 구성
소개
Oracle Cloud Infrastructure(OCI) Zero Trust Packet Routing은 기본 네트워크 아키텍처와 별도로 네트워크 보안 정책을 관리함으로써 데이터에 대한 무단 액세스를 방지합니다. 보안 관리자는 이해하기 쉬운 의도 기반 정책 언어를 사용하여 데이터에 대한 특정 액세스 경로를 정의할 수 있습니다. 정책에 의해 명시적으로 허용되지 않는 트래픽은 네트워크를 이동할 수 없으므로 보안, 네트워크 및 감사 팀의 작업을 단순화하면서 보안을 향상시킵니다.
다음 사용지침서에서는 OCI 제로 트러스트 패킷 라우팅을 구성하여 보안 제어를 적용하여 OCI(Oracle Cloud Infrastructure) 테넌시 내의 네트워크 간 통신을 제어하는 방법에 대한 세부정보를 제공합니다. 이 자습서에서는 다음 아키텍처가 배포되었습니다.
이 구조에서는 다음 리소스가 구성되었습니다.
-
financeprod
은 프라이빗 끝점을 통해 프라이빗 서브넷 내에서 액세스할 수 있도록 생성된 프라이빗 네트워크에 호스트되는 운용 데이터베이스로 구성된 Oracle Autonomous Database의 인스턴스입니다. -
client-prod
은 운용 환경에서 엔터프라이즈 애플리케이션을 시뮬레이션하는 컴퓨트 인스턴스입니다. 이 시나리오의 경우 Oracle Instant Client를 실행하는 Oracle Linux 인스턴스입니다. -
client-dev
은 개발 환경에서 엔터프라이즈 애플리케이션을 시뮬레이션하는 컴퓨트 인스턴스입니다. client-prod와 마찬가지로 이 인스턴스는 Oracle Instant Client를 실행하는 Oracle Linux 인스턴스입니다.
또한 다음으로 구성된 이 사용 사례에 대해 별도의 VCN(so-vcn-pt
)이 구성되었습니다.
-
subnet-public
은 컴퓨트 인스턴스를 포함하는 퍼블릭 서브넷입니다. -
subnet-private
은 데이터베이스를 포함하는 개인 서브넷입니다. -
sl-allow-public
은 인터넷에서 SSH 액세스를 허용하는 보안 목록입니다. 아웃바운드 트래픽을 허용하도록 송신 규칙도 구성되었습니다.subnet-public
에 지정됩니다. -
sl-allow-private
은subnet-public
에서 Oracle Instant Client 트래픽(포트1522
)을 허용하는 보안 목록입니다. 아웃바운드 트래픽을 허용하도록 송신 규칙도 구성되었습니다. 이 보안 목록은subnet-private
에 지정됩니다. -
route-public
은 모든 트래픽을 인터넷 게이트웨이로 경로 지정하는 경로 테이블입니다.subnet-public
에 지정됩니다. -
route-private
은 모든 트래픽을 NAT 게이트웨이로 경로 지정하는 경로 테이블입니다.subnet-private
에 지정됩니다. -
gw-internet
은route-public
에서 사용되는 인터넷 게이트웨이입니다. -
gw-nat
은route-private
에서 사용되는 NAT 게이트웨이입니다.
목표
-
OCI Zero Trust Packet Routing에 대한 새로운 보안 속성을 구성합니다.
-
OCI Zero Trust Packet Routing 정책을 생성하여 네트워크 트래픽 흐름을 제어할 수 있습니다.
-
OCI Zero Trust Packet Routing 보안 속성을 리소스에 할당합니다.
-
OCI Zero Trust Packet Routing 정책을 테스트해 보세요.
필요 조건
-
OCI Zero Trust Packet Routing 리소스를 관리할 수 있는 적절한 권한이 있는 OCI 테넌시에 대한 유료 구독입니다.
-
아키텍처에 정의된 네트워킹 구조입니다.
-
아키텍처에 따라 두 개의 컴퓨트 인스턴스가 공용 서브넷에 배포됩니다.
-
두 컴퓨팅 인스턴스에서 Oracle Instant Client(SQL*Plus 클라이언트 포함)를 설치하고 구성합니다.
주: RPM을 사용하여 Oracle Instant Client 설치를 다운로드하여 설치하십시오.
-
아키텍처에 따라 Oracle Autonomous Database 인스턴스를 생성하고 프라이빗 서브넷 내의 프라이빗 끝점으로 배치합니다.
-
두 컴퓨트 인스턴스의 Oracle Instant Client에서 데이터베이스에 대한 액세스를 구성합니다.
작업 1: 클라이언트에서 데이터베이스에 대한 액세스 확인
이 작업에서는 두 컴퓨팅 인스턴스가 모두 Oracle Instant Client를 통해 데이터베이스에 액세스할 수 있는지 확인합니다.
-
SSH를
opc
사용자로 사용하여 client-prod 컴퓨트 인스턴스에 연결합니다. -
sqlplus
명령을 실행하여 자율운영 데이터베이스에 접속합니다.필요 조건에 따라 Oracle Instant Client를 설치하고 구성해야 합니다. 다음은 설정 단계를 요약한 것입니다.
-
Oracle Instant Client를 다운로드하고 설치합니다.
-
Oracle Instant Client를 구성합니다.
-
OCI에서 자율운영 데이터베이스에 대한 접속 전자 지갑을 다운로드합니다.
-
전자 지갑을 폴더로 추출합니다.
-
전자 지갑(wallet) 폴더 내에 전자 지갑 위치를 가리키도록
sqlnet.ora
파일을 구성합니다. -
추출된 전자 지갑 위치를 가리키도록
TNS_ADMIN
변수를 엑스포트합니다. 예:export TNS_ADMIN=/opt/wallet
. -
sqlplus
명령(예:sqlplus admin@financeprod_low
)을 실행하고 프롬프트가 표시되면 비밀번호를 입력합니다.
Oracle Instant Client가 올바르게 작동 중이고 모든 필요 조건이 완료된 경우 데이터베이스에 성공적으로 연결하고 명령을 실행할 수 있어야 합니다.
show user;
명령을 실행하여 사용자를 확인합니다. -
-
client-dev에서 데이터베이스 연결 테스트를 반복합니다.
Oracle Instant Client가 올바르게 작동 중이고 모든 필요 조건이 완료된 경우 데이터베이스에 성공적으로 연결하고 명령을 실행할 수 있어야 합니다.
show user;
명령을 실행하여 사용자를 확인합니다.
작업 2: OCI Zero Trust Packet Routing 사용
테넌시 내에서 OCI 제로 트러스트 패킷 경로 지정을 처음 사용한 경우 사용으로 설정해야 합니다.
-
OCI Zero Trust Packet Routing 리소스 및 이 튜토리얼에 사용된 기타 리소스를 관리할 수 있는 적절한 권한이 있는 사용자로 OCI 콘솔에 로그인합니다.
-
Identity and Security로 이동하고 Zero Trust Packet Routing을 누릅니다.
-
ZPR 사용을 누르면 단추가 비활성화되고 OCI Zero Trust Packet Routing 메뉴에 액세스할 수 있게 됩니다.
작업 3: OCI Zero Trust Packet Routing 보안 속성 구성
OCI 제로 트러스트 패킷 라우팅을 구성하려면 OCI 제로 트러스트 패킷 라우팅 정책에 사용될 보안 속성을 설정해야 합니다.
이 작업에서는 네트워크, 데이터베이스 및 응용 프로그램을 나타내는 세 가지 새로운 보안 속성을 생성합니다. 이러한 보안 속성에 대해 미리 정의된 값을 생성합니다.
-
Zero Trust Packet Routing으로 이동하여 Security Attribute Namespace를 누릅니다.
-
목록 범위에서
root
컴파트먼트를 선택합니다. 미리 정의된oracle-zpr
네임스페이스가 제공됩니다. -
oracle-zpr
을 누르면 미리 정의된sensitivity
보안 속성이 표시됩니다. 이 자습서에서는 속성을 사용하지 않습니다. -
보안 속성 생성을 선택하여 새 보안 속성을 생성합니다.
-
보안 속성 생성에서 다음 정보를 입력합니다.
- 이름:
app
를 입력합니다. - 설명:
Security attribute representing applications
를 입력합니다. - 보안 속성 값 유형: 값 목록을 선택합니다.
- 값: 별도의 행에
prod
및dev
를 입력합니다.
- 이름:
-
생성을 눌러 새 속성을 생성합니다.
-
5단계와 6단계를 반복하여 보안 속성을 두 개 더 생성합니다.
-
다음 정보를 사용하여 데이터베이스에 대한 보안 속성을 생성합니다.
- 이름:
db
을 입력합니다. - 설명:
Security attribute representing databases
를 입력합니다. - 보안 속성 값 유형: 값 목록을 선택합니다.
- 값: 별도의 행에
prod
및dev
를 입력합니다.
- 이름:
-
다음 정보를 사용하여 네트워크에 대한 보안 속성을 만듭니다.
- 이름:
network
를 입력합니다. - 설명:
Security attribute representing networks
를 입력합니다. - 보안 속성 값 유형: 값 목록을 선택합니다.
- 값: 별도의 행에
prod
및dev
를 입력합니다.
- 이름:
완료되면 미리 정의된
sensitivity
속성을 포함하여 보안 속성 목록이 표시됩니다. -
작업 4: OCI 제로 트러스트 패킷 경로 지정 정책 생성
보안 속성을 정의했습니다. 이제 네트워크를 통한 정보 흐름을 제어하는 정책을 생성해야 합니다.
이 사용 사례에는 운용 중인 응용 프로그램이 운용 중인 데이터베이스와 통신할 수 있도록 허용하는 정책이 필요합니다. 이 작업에서는 이를 위해 OCI Zero Trust Packet Routing 정책을 구성합니다.
-
OCI 콘솔로 이동하여 ID 및 보안, 제로 트러스트 패킷 경로 지정으로 이동하고 정책을 누릅니다.
-
새 OCI 제로 트러스트 패킷 경로 지정 정책을 생성하려면 정책 생성을 누릅니다.
-
다음 정보를 입력하고 정책 문 추가를 눌러 정책에 정책 문을 추가합니다.
- 이름:
prod_policy
을 입력합니다. - 설명:
Policy to allow production clients in the production network to access production databases
를 입력합니다.
- 이름:
-
정책 문을 작성하기 위한 세 가지 옵션을 검사하고, 수동 정책 작성기를 선택하고, 다음 정책 문을 입력하고, 추가를 눌러 정책 문을 저장합니다.
- 정책 문:
in network:prod VCN allow app:prod endpoints to connect to db:prod endpoints with protocol = 'tcp/1522'
을 입력합니다.
주: 정책 문은 설명 없이도 이해하기 쉽습니다. 그러나 명확성을 위해 OCI Zero Trust Packet Routing에 보안 속성
app:prod
이 지정된 리소스가 TCP 프로토콜 1522를 통한network:prod
VCN 내에서db:prod
보안 속성이 지정된 모든 리소스와 통신할 수 있도록 하려고 합니다.완료된 정책은 다음과 같아야 합니다.
- 정책 문:
-
정책 생성을 눌러
prod_policy
생성을 완료합니다.참고: 리소스에 보안 속성을 지정하면 OCI Zero Trust Packet Routing 정책이 적용되고 OCI Zero Trust Packet Routing 정책과 일치하는 트래픽만 네트워크를 전송하도록 허용됩니다. 두 컴퓨트 인스턴스에 보안 속성을 지정하므로 해당 컴퓨트 인스턴스에 대한 SSH 액세스가 손실됩니다. 클라이언트에 SSH 액세스를 허용하는 OCI Zero Trust Packet Routing 정책이 없기 때문입니다. 따라서 두 개의 추가 정책을 생성하여 이 문제를 해결해야 합니다.
-
2-5단계를 반복하여 두 개의 추가 OCI Zero Trust Packet Routing 정책을 생성하면 SSH를 통해 컴퓨트 인스턴스에 연결할 수 있습니다.
-
client-prod에 대한 SSH 액세스를 허용하기 위한 정책:
- 이름:
prod_client_access_policy
을 입력합니다. - 설명:
Policy to allow SSH access to the production clients in the production network
를 입력합니다. - 정책 문:
in network:prod VCN allow 'x.x.x.x/32' to connect to app:prod endpoints with protocol='tcp/22'
을 입력합니다.
- 이름:
-
client-dev에 대한 SSH 액세스를 허용하기 위한 정책:
- 이름:
dev_client_access_policy
을 입력합니다. - 설명:
Policy to allow dev clients in the production network to access production databases
를 입력합니다. - 정책 문:
in network:prod VCN allow 'x.x.x.x/32' to connect to app:dev endpoints with protocol='tcp/22'
을 입력합니다.
참고:
-
x.x.x.x
을 IP 주소로 바꿉니다. -
운용 시나리오에서 클라이언트에 대한 액세스는 일반적으로 OCI Bastion 호스트를 통해 이루어집니다. 그러나 이 튜토리얼을 단순하게 유지하려면 직접 액세스해야 합니다. 따라서 SSH를 통해 클라이언트에 연결하는 소스 시스템의 외부 IP 주소를 포함해야 합니다.
- 이름:
완료된 정책은 다음과 같아야 합니다.
-
작업 5: 리소스에 보안 속성 지정
이 작업에서는 OCI Zero Trust Packet Routing을 구성하기 위해 필요한 리소스에 보안 속성을 지정합니다.
db
보안 속성을 데이터베이스에, app
보안 속성을 두 클라이언트에, network
보안 속성을 VCN에 연관시킵니다.
참고: 보안 속성을 지정할 때는 OCI Zero Trust Packet Routing 화면 내에서 또는 개별 리소스에서 수행할 수 있습니다. 이 튜토리얼은 두 가지 방법을 모두 보여줍니다.
-
데이터베이스에 security 속성을 할당합니다.
-
OCI 콘솔로 이동하여 Oracle Database 및 Autonomous Database로 이동합니다.
주: 데이터베이스를 생성한 컴파트먼트에 있는지 확인합니다. 나열된 항목이 표시됩니다.
-
사용 가능한 데이터베이스 목록에서 데이터베이스(예:
Finance-PROD
)를 선택합니다. -
보안 속성을 누릅니다. 현재 비어 있으며 보안 속성이 지정되지 않은 것을 확인할 수 있습니다.
-
보안 속성 추가를 누르고 다음 정보를 입력합니다.
- 이름 공간:
oracle-zpr
을 선택합니다. - 키:
db
을 선택합니다. - 값:
prod
을 선택합니다.
- 이름 공간:
-
보안 속성 추가를 눌러 보안 속성을 데이터베이스에 지정합니다. 데이터베이스가 업데이트되고 속성이 지정됩니다.
-
-
컴퓨트 인스턴스에 보안 속성을 지정합니다.
-
OCI 콘솔로 이동하여 컴퓨트 및 인스턴스로 이동합니다.
참고: 컴퓨트 인스턴스를 생성한 컴파트먼트에 있는지 확인하고, 두 항목이 모두 나열되어 있어야 합니다.
-
사용 가능한 인스턴스 목록에서 client-prod 인스턴스를 선택합니다.
-
보안을 누릅니다. 아직 인스턴스에 지정된 보안 속성이 없으므로 비어 있습니다.
-
보안 속성 추가를 누르고 다음 정보를 입력합니다.
- 네임스페이스:
oracle-zpr
를 입력합니다. - 키:
app
를 입력합니다. - 값:
prod
를 입력합니다.
- 네임스페이스:
-
보안 속성 추가를 눌러 보안 속성을 데이터베이스에 지정합니다. 컴퓨트 인스턴스가 업데이트되고 속성이 지정됩니다.
-
OCI 콘솔로 이동하여 컴퓨트 및 인스턴스로 이동합니다.
-
사용 가능한 인스턴스 목록에서 client-dev 인스턴스를 선택합니다.
-
보안을 누릅니다.
-
보안 속성 추가를 누르고 다음 정보를 입력합니다.
- 이름 공간:
oracle-zpr
을 선택합니다. - 키:
app
을 선택합니다. - 값:
dev
을 선택합니다.
- 이름 공간:
-
보안 속성 추가를 눌러 보안 속성을 데이터베이스에 지정합니다. 컴퓨트 인스턴스가 업데이트되고 속성이 지정됩니다.
-
-
VCN에 보안 속성을 지정합니다.
-
OCI 콘솔로 이동하여 네트워킹 및 가상 클라우드 네트워크로 이동합니다.
참고: VCN을 생성한 컴파트먼트에 있는지 확인하고 해당 컴파트먼트가 나열되어야 합니다.
-
사용 가능한 VCN 목록에서 so-vcn-pt VCN을 선택합니다.
-
보안을 누릅니다.
주: 이 보안 속성을 지정하려면 리소스가 아닌 OCI Zero Trust Packet Routing 메뉴를 통해 이 속성을 지정하려고 합니다. 이는 OCI Zero Trust Packet Routing 보안 속성을 지정하는 두 가지 방법을 보여줍니다.
-
OCI 콘솔로 이동하여 ID 및 보안, 제로 트러스트 패킷 경로 지정으로 이동하고 보호된 리소스를 누릅니다.
보호된 기존 리소스 목록(예: 보안 속성이 지정된 리소스)이 표시됩니다.
-
리소스에 보안 속성 추가를 누릅니다.
-
목록을 필터링하려면 VCN을 생성한 구획을 선택하고 리소스 유형을
Vcn
으로 선택합니다. -
VCN(so-vcn-pt)을 선택하고 Next를 누릅니다.
-
다음 정보를 입력하십시오.
- 보안 속성 네임스페이스:
oracle-zpr
를 선택합니다. - 보안 속성:
network
을 선택합니다. - 보안 속성 값:
prod
를 선택합니다.
- 보안 속성 네임스페이스:
-
다음을 누르고 요약을 검토합니다.
-
제출 및 닫기를 눌러 작업 요청을 종료합니다. 2분 후 작업 요청이 완료되고 VCN이 보호된 리소스에 나타납니다. 또한 VCN을 체크인하여 보안 속성이 지정되었는지 확인할 수 있습니다.
-
1-3단계를 반복하여 VCN에 할당된 보안 속성을 확인합니다.
-
작업 6: 정책 테스트
이제 OCI Zero Trust Packet Routing 구성이 완료되었습니다. 최종 작업은 정책을 테스트하는 것입니다. 이 튜토리얼에서는 두 가지 테스트 사례가 있습니다.
-
첫번째 테스트 사례는 client-prod가 여전히 financeprod 데이터베이스에 액세스할 수 있는지 확인하는 것입니다.
-
SSH를
opc
사용자로 사용하여 client-prod 컴퓨트 인스턴스에 연결합니다.OCI Zero Trust Packet Routing 정책이 로컬 시스템에서 이 연결을 허용하므로 SSH 연결이 성공해야 합니다.
-
sqlplus
명령을 실행하여 자율운영 데이터베이스에 접속합니다.OCI Zero Trust Packet Routing 정책이 운용 클라이언트(client-prod)에서 운용 데이터베이스(financeprod)로의 연결을 허용하므로 데이터베이스에 성공적으로 연결하고
show user;
명령을 실행할 수 있어야 합니다.
-
-
두번째 테스트 사례는 client-dev가 더 이상 financeprod 데이터베이스에 액세스할 수 없는지 확인하는 것입니다.
-
SSH를
opc
사용자로 사용하여 client-dev 컴퓨트 인스턴스에 연결합니다.Zero Trust Packet Routing 정책이 로컬 시스템에서 이 연결을 허용하므로 SSH 연결이 성공해야 합니다.
-
sqlplus
명령을 실행하여 자율운영 데이터베이스에 접속합니다.개발 클라이언트(client-dev)에서 운용 데이터베이스(financeprod)로의 이 연결을 허용하는 OCI Zero Trust Packet Routing 정책이 없으므로 이 연결은 차단됩니다.
-
관련 링크
확인
- Authors - Paul Toal(Field CISO, Senior Director)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Create and Configure Oracle Cloud Infrastructure Zero Trust Packet Routing
G17489-01
October 2024