주:
- 이 사용지침서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 마칠 때는 이러한 값을 클라우드 환경과 관련된 값으로 대체하십시오.
여러 Oracle Cloud Infrastructure 테넌시의 로그를 중앙 Oracle Cloud Infrastructure 테넌시 버킷으로 중앙 집중화
소개
모든 로그가 서로 다른 테넌시에서 온 경우에도 한 곳에서 모든 로그를 중앙 집중화해야 하는 경우가 있습니다. 산업 규제 또는 회사 정부 정책 때문일 수 있습니다. 어떤 경우든 이를 달성하기 위해 다양한 관리 문제에 직면할 수 있습니다.
이 사용지침서에서는 OCI 크로스 테넌시 액세스 및 OCI 커넥터 허브 서비스를 사용하여 아카이빙 또는 시각화를 목적으로 중앙 테넌시에 따라 여러 OCI(Oracle Cloud Infrastructure) 테넌시에서 생성된 감사, 서비스 또는 사용자정의 로그를 중앙 집중화합니다.
아키텍처 다이어그램
- 테넌시 A: 영역 1의 로그 소스입니다.
- 테넌시 B: 영역 1의 로그 소스입니다.
- 테넌시 C: 영역 1에 있는 로그의 대상입니다.
주: 이 자습서에서는 모든 테넌시가 동일한 영역에 있어야 합니다.
목표
-
대상 테넌시에 정책을 생성합니다.
-
소스 테넌시에 정책을 생성합니다.
-
소스 테넌시에 OCI 커넥터 허브를 배치합니다.
필요 조건
-
필요한 모든 서비스 또는 사용자정의 로그(VCN, OCI API Gateway, OCI Object Storage 등)가 테넌시에서 이미 사용으로 설정되어 있습니다. 이 자습서는 이 자습서의 범위를 벗어납니다. 테넌시 감사 로그는 기본적으로 사용으로 설정됩니다.
-
대상 테넌시에 생성된 OCI 오브젝트 스토리지 버킷입니다.
-
루트 구획에서 정책을 구성할 수 있는 권한(테넌시 간 정책 문 요구사항)을 포함하여 이 자습서를 배치할 수 있는 충분한 권한이 있는 각 테넌시의 OCI IAM(Oracle Cloud Infrastructure Identity and Access Management) 사용자입니다.
작업 1: 대상 테넌시에 정책 생성
다음 OCI IAM 정책은 OCI Object Storage 버킷이 상주하는 대상 테넌시(테넌시 C)에 구성됩니다.
-
테넌시 A에 대한 다음 정보를 검색합니다.
- OCID
- 구획 OCID - OCI 커넥터 허브가 배치됩니다.
-
테넌시 C에 대한 다음 정보를 검색합니다.
- 버킷이 생성된 구획 이름입니다.
-
1단계 및 2단계에서 수집한 정보를 사용하여 다음 정책을 생성합니다.
-
원격 테넌시를 정의합니다.
define tenancy SCTenancyA as <Tenancy A OCID>
주: 1단계에서 수집한 정보로
<Tenancy A OCID>
를 업데이트합니다. -
원격 테넌시의 서비스 커넥터 주체가 로컬 구획의 버킷을 읽을 수 있도록 허용합니다.
admit any-user of tenancy SCTenancyA to read buckets in compartment <Tenancy C Compartment name> where all { request.principal.type='serviceconnector', request.principal.compartment.id='<Tenancy A Compartment OCID>' }
주:
<Tenancy C Compartment name>
및<Tenancy A Compartment OCID>
를 해당 정보로 업데이트합니다. -
원격 테넌시의 서비스 커넥터 주체가 로컬 버킷에서 객체 검사 및 객체 생성 작업으로 제한된 객체를 관리할 수 있도록 허용합니다.
admit any-user of tenancy SCTenancyA to manage objects in compartment <Tenancy C Compartment name> where all { request.principal.type='serviceconnector', request.principal.compartment.id=’ <Tenancy A Compartment OCID>' , any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}}
참고:
- 해당 정보로
<Tenancy C Compartment name>
및<Tenancy A Compartment OCID>
를 업데이트합니다. - 모든 리소스는 소스 또는 대상 구획의 범위에 있습니다. 배서, 입학 및 명세서 정의에 대한 자세한 내용은 배서, 입학 및 명세서 정의를 참조하십시오.
- 해당 정보로
-
-
OCI 콘솔에 로그인하고 ID 및 보안으로 이동한 후 정책을 누릅니다.
-
루트 구획에 있는지 확인하고 정책 생성을 누릅니다.
-
이름, 설명을 입력하고 수동 편집기 표시를 누릅니다.
-
작업 1.3에서 생성된 정책을 작성하고 생성을 누릅니다.
정책은 다음과 같습니다.
태스크 2: 소스 테넌시에 정책 생성
OCI 커넥터 허브가 배치될 각 소스 테넌시(테넌시 A 및 테넌시 B)에서 다음 OCI IAM 정책을 구성해야 합니다. OCI 커넥터 허브는 로그를 수집하여 중앙 저장소로 전송합니다.
-
테넌시 A에 대한 다음 정보를 검색합니다.
- 구획 OCID - OCI 커넥터 허브가 배치됩니다.
-
테넌시 C에 대한 다음 정보를 검색합니다.
- OCID
-
1단계 및 2단계에서 수집한 정보를 사용하여 다음 정책을 생성합니다.
-
원격 테넌시를 정의합니다.
Define tenancy OSTenancyC as <Tenancy C OCID>
주:
<Tenancy C OCID>
를 해당 정보로 업데이트합니다. -
로컬 테넌시의 서비스 커넥터 주체가 대상 테넌시의 버킷을 읽을 수 있도록 허용합니다.
endorse any-user to read buckets in tenancy OSTenancyC where all {request.principal.type = 'serviceconnector', request.principal.compartment.id='<Tenancy A Compartment OCID>' }
주:
<Tenancy A Compartment OCID>
를 해당 정보로 업데이트합니다. -
로컬 테넌시의 서비스 커넥터 주체가 대상 테넌시의 객체 검사 및 객체 생성 작업으로 제한된 객체를 관리할 수 있도록 허용합니다.
endorse any-user to manage objects in tenancy OSTenancyC where all {request.principal.type = 'serviceconnector', request.principal.compartment.id='<Tenancy A Compartment OCID>' , any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}}
참고:
- 해당 정보로
<Tenancy A Compartment OCID>
를 업데이트합니다. - 모든 리소스는 소스 또는 대상 구획의 범위에 있습니다. 배서, 입학 및 명세서 정의에 대한 자세한 내용은 배서, 입학 및 명세서 정의를 참조하십시오.
- 해당 정보로
-
-
OCI 콘솔에 로그인하고 ID 및 보안으로 이동한 후 정책을 누릅니다.
-
루트 구획에 있는지 확인하고 정책 생성을 누릅니다.
-
이름, 설명을 입력하고 수동 편집기 표시를 누릅니다.
-
작업 2.3에 준비된 정책을 입력하고 생성을 누릅니다.
정책은 다음과 같습니다.
작업 3: 소스 테넌시에 OCI 커넥터 허브 배치
OCI CLI를 사용하여 소스 테넌시(테넌시 A 및 테넌시 B)에 OCI 커넥터 허브를 배치합니다.
주: 다른 테넌시의 리소스에 액세스하는 커넥터를 생성하려면 OCI SDK, CLI 또는 API를 사용해야 합니다.
-
소스 테넌시의 OCI CLI(테넌시 A 및 테넌시 B)에 접속합니다. 이 사용지침서에서는 OCI Cloud Shell을 사용합니다. OCI Cloud Shell 사용 방법에 대한 자세한 내용은 Cloud Shell 사용을 참조하십시오.
-
source.json
및target.json
라는 컨텐트가 있는 두 개의 파일을 생성합니다.-
source.json
: 소스 테넌시(테넌시 A 또는 테넌시 B)에서 로그 소스가 정의되며, 여기서 로그가 수집됩니다.다음 매개변수를 샘플 코드의 값으로 업데이트합니다.
<Tenancy A OCID where Audit log resides>
<Tenancy A Compartment OCID where log group resides>
<Tenancy A Log Group OCID>
<Tenancy A _Log-ID OCID_>
{ "kind": "logging", "logSources": [ { "compartment-id": "_<Tenancy A OCID where Audit log resides>_", "log-group-id": "_Audit_Include_Subcompartment", "log-id": null }, { "compartment-id": "_<Tenancy A Compartment OCID where log group resides>_", "log-group-id": _"<Tenancy A Log Group OCID>",_ "log-id": "<Tenancy A _Log-ID OCID_>" } ] }
주: 위의
source.json
샘플에는 두 개의 로그 소스가 있습니다. 첫번째 로그 소스는 루트 구획 및 모든 하위 구획에서 감사 로그를 수집하도록 OCI Connector Hub를 구성합니다. 두번째 작업은log-id
및log-group-id
로 정의된 로그 그룹(예: 서브넷 로그)에서 특정 로그를 수집하도록 OCI 커넥터 허브를 구성합니다. 필요에 따라 이 구성에서 로그 소스를 추가하거나 제거할 수 있습니다. -
Target.json
: 로그를 아카이브할 대상 테넌시(테넌시 C)에서 버킷을 정의합니다.{ "kind": "objectStorage", "bucketName": "<Tenancy C bucket name>", "namespace": "<Tenancy C namespace where bucket was created>" }
주: 버킷 세부정보에서 버킷 네임스페이스를 가져올 수 있습니다.
-
-
다음 명령을 실행합니다.
oci sch service-connector create --compartment-id <Compartment OCID where SCH will be placed in Tenancy A> --display-name <Display name> --source file://Source.json --target file://Target.json
주:
source.json
및target.json
파일에 액세스할 수 있어야 합니다. -
필요에 따라 다른 모든 소스 테넌시에 대해 1-3단계를 반복합니다. 추가 OCI 커넥터 허브 대상 옵션은 ObjectStorageTargetDetails 참조를 참조하십시오.
-
결과를 확인합니다.
-
소스 테넌시에는 정의된 소스 및 대상 버킷이 포함된 OCI 커넥터 허브가 생성됩니다.
-
대상 버킷에는 각 OCI 커넥터 허브에 대한 항목이 포함됩니다.
-
관련 링크
확인
- Authors - Jaime Rojas(LAD A-Team Engineer), Michel Roitman(LAD A-Team Cloud Security Engineer)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Centralize Logs from Multiple Oracle Cloud Infrastructure Tenancies into a Central Oracle Cloud Infrastructure Tenancy Bucket
F96831-01
April 2024