Oracle Cloud Infrastructure 감사에서 Identity and Access Management 보고서 생성
소개
Oracle Cloud Infrastructure(OCI) Identity Domains는 Oracle Identity Cloud Service의 후계자이며 Oracle Identity Cloud Service의 모든 기능을 핵심 Oracle Cloud Infrastructure 서비스로 가져옵니다. Oracle Identity Cloud Service는 자체 포함된 SaaS와 유사한 오퍼링으로, 서비스 내에서 사용자 작업에 대한 보고서 등을 제공합니다.
Oracle Identity Cloud Service와 달리 OCI ID 도메인은 더 큰 OCI 컨텍스트 내에 존재합니다. OCI 설계 원칙은 가능한 경우 공통 서비스 기능을 사용하는 것입니다. 따라서 Oracle Identity Cloud Service 내에서 제공되는 일부 보고서는 이제 OCI Audit에서 제공하는 공통 서비스 기능을 통해 활용되는 데이터를 사용할 수 있으므로 더 이상 사용되지 않습니다.
이 사용지침서에서는 OCI 감사 데이터에서 더 이상 사용되지 않는 보고서를 생성하고 해당 보고서를 OCI 대시보드에서 사용할 수 있도록 설정하는 방법을 설명합니다.
목표
-
OCI IAM 보고서에 대한 OCI 로깅에 저장된 검색을 생성합니다.
-
오프라인 처리를 위해 OCI IAM 보고서를 익스포트합니다.
-
OCI 대시보드에 해당 검색을 추가합니다.
필수 조건
- OCI IAM 도메인(기본 도메인의 테넌시 루트)을 포함하는 컴파트먼트에 대한 감사 데이터를 읽을 수 있는 권한입니다.
작업 1: OCI Identity and Access Management 감사 이벤트 살펴보기
모든 OCI 서비스는 사용자 또는 서비스 작업에 대한 감사 레코드를 생성하며, OCI IAM도 예외는 아닙니다. 사용자 액세스에 대한 감사 레코드와 OCI IAM 내에서 발생하는 모든 변경 또는 이벤트를 생성하는 것도 마찬가지입니다.
-
OCI 콘솔의 관찰 및 관리 기능에서 로깅 서비스에 액세스한 다음 검색 섹션을 선택합니다.
-
보고서를 생성할 OCI IAM ID 도메인이 포함된 컴파트먼트로 로그 검색 컨텍스트를 설정하려면 검색할 로그 선택을 누릅니다.

관련 컴파트먼트를 선택하면 사용자 또는 서비스 활동에 대한 여러 항목이 표시되고 테넌시 사용 방식에 따라 특정 항목이 달라집니다. 본인 또는 다른 로그인 이벤트도 볼 수 있습니다. 항목이 표시되지 않는 경우 추가 검색 옵션을 확장하여 올바른 영역을 선택했는지 확인하거나 시간별 필터링 설정을 수정하여 시간 창을 확장하십시오.
-
고급 모드 표시를 눌러 자유 텍스트 질의를 입력한 후 다음 중 하나를 기본 질의 끝에 추가하여('sort by datetime desc' 이후) Oracle Identity Cloud Service 보고서에 포함된 동일한 콘텐츠를 생성합니다.
보고서 질의 로그인 성공 보고서 | where data.additionalDetails.eventId = 'sso.session.create.success' | select data.additionalDetails.domainDisplayName as Domain, data.additionalDetails.actorName as Login, data.additionalDetails.eventId as Result, data.additionalDetails.ssoRp as Provider, time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') as Date실패한 로그인 보고서 | where data.additionalDetails.eventId='sso.authentication.failure' | select data.additionalDetails.domainDisplayName as Domain, data.additionalDetails.actorName as User, data.additionalDetails.eventId as Result, data.message as Comments, time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') as Date애플리케이션 액세스 보고서 | where data.additionalDetails.eventId = 'sso.session.create.success' or data.additionalDetails.eventId = 'sso.authentication.failure' or data.additionalDetails.eventId = 'sso.session.modify.success' | select data.additionalDetails.domainDisplayName as Domain, data.additionalDetails.actorDisplayName as User, data.additionalDetails.actorName as Login, data.additionalDetails.eventId as "Success/Failure", data.additionalDetails.ssoRp as Application, time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') as Date감사 로그 보고서 | where data.additionalDetails.eventId = 'sso.app.access.success' or data.additionalDetails.eventId = 'sso.app.access.failure' or data.additionalDetails.eventId = 'sso.session.create.success' or data.additionalDetails.eventId = 'sso.authentication.failure' or data.additionalDetails.eventId = 'sso.session.delete.success' or data.additionalDetails.eventId = 'admin.user.create.success' or data.additionalDetails.eventId = 'admin.user.activated.success' or data.additionalDetails.eventId = 'admin.user.deactivated.success' or data.additionalDetails.eventId = 'admin.user.update.success' or data.additionalDetails.eventId = 'admin.user.delete.success' or data.additionalDetails.eventId = 'admin.user.password.reset.success' or data.additionalDetails.eventId = 'admin.me.password.reset.success' or data.additionalDetails.eventId = 'admin.me.password.change.success' or data.additionalDetails.eventId = 'admin.policy.create.success' or data.additionalDetails.eventId = 'admin.rule.create.success' or data.additionalDetails.eventId = 'admin.policy.update.success' or data.additionalDetails.eventId = 'admin.rule.update.success' or data.additionalDetails.eventId = 'admin.passwordpolicy.create.success' or data.additionalDetails.eventId = 'admin.passwordpolicy.update.success' or data.additionalDetails.eventId = 'admin.grant.create.success' or data.additionalDetails.eventId = 'admin.grant.delete.success' or data.additionalDetails.eventId = 'admin.group.create.success' or data.additionalDetails.eventId = 'admin.group.add.member.success' or data.additionalDetails.eventId = 'admin.group.remove.member.success' or data.additionalDetails.eventId = 'admin.group.delete.success' or data.additionalDetails.eventId = 'admin.app.create.success' or data.additionalDetails.eventId = 'admin.app.update.success' or data.additionalDetails.eventId = 'admin.app.delete.success' or data.additionalDetails.eventId = 'admin.app.activated.success' or data.additionalDetails.eventId = 'admin.app.deactivated.success' or data.additionalDetails.eventId = 'notification.delivery.success' or data.additionalDetails.eventId = 'notification.delivery.failure' or data.additionalDetails.eventId = 'sso.auth.factor.initiated' or data.additionalDetails.eventId = 'sso.bypasscode.create.success' | select time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') as Date, data.additionalDetails.domainDisplayName as Domain, data.additionalDetails.actorName as Actor, data.additionalDetails.eventId as "Event Id", data.message as "Event Description", data.additionalDetails.adminResourceName as Target앱 역할 지정 보고서 | where data.additionalDetails.eventId = 'admin.approle.add.member.success' or data.additionalDetails.eventId = 'admin.approle.remove.member.success' | select data.additionalDetails.domainDisplayName as Domain, data.additionalDetails.actorDisplayName as Approver, data.additionalDetails.adminAppRoleAppName as "Application Name", data.additionalDetails.adminRefResourceName as Beneficiary, data.additionalDetails.adminRefResourceType as "User/Group", data.additionalDetails.adminResourceName as "Application Role Name", time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') as Date, data.additionalDetails.eventId as "Added/Removed"예를 들어,
Successful Logins보고서의 경우 질의는 아래와 유사합니다.
-
업데이트된 질의를 사용하려면 검색을 누릅니다. 결과가 반환되지 않으면 시간 필터를 수정해야 할 수 있습니다.

-
반환된 모든 결과는 결과 위의 작업 드롭다운에서 로그 데이터 익스포트(JSON)를 눌러 익스포트할 수 있습니다.

주: Oracle Identity Cloud Service 보고서는
CSV파일로 다운로드하는 것을 지원하지만 이 익스포트는JSON익스포트만 지원합니다. 그러나 위 질의에 사용된 select 문은JSON를 속성이 있는 단일 객체로 단순화합니다. 그러면 필요한 경우JSON익스포트와CSV간에 변환할 수 있습니다.
태스크 2: 보고서에 대해 저장된 검색 생성
이러한 보고서에 액세스할 때마다 질의를 다시 입력하지 않도록 하려면 OCI 로깅의 저장된 검색 기능을 활용할 수 있습니다.
-
질의를 검증한 후 검색 저장을 눌러 질의를 재사용하고 대시보드에 포함시킬 수 있도록 합니다.
-
'Successful_Login_Report' 또는 이와 유사한 검색 이름과 설명을 입력한 다음 저장을 누릅니다.
-
저장된 검색 인터페이스에서 검색으로 돌아가서 최신 데이터 세트를 가져올 수 있습니다.
주: 저장된 검색 인터페이스에서 결과를 직접 익스포트할 수 없습니다. 대신 작업 드롭다운에서 로그 검색으로 탐색을 사용한 다음 검색 뷰에서 결과를 익스포트해야 합니다.
작업 3: OCI 대시보드에 보고서 추가
OCI 로깅 서비스 내에서 보고서에 액세스하는 것 외에도 OCI의 대시보드 기능을 통해 OCI IAM 이벤트를 중앙에서 검토할 수 있습니다.
-
OCI 콘솔 랜딩 페이지로 이동하고 상단 배너에서 Oracle Cloud를 누른 다음 대시보드 보기로 바꿉니다.
-
새 대시보드를 눌러 OCI IAM 보고서에 대한 새 대시보드를 생성합니다.
-
Build from Scratch를 선택하고 적절한 이름과 설명을 추가합니다.

-
새 대시보드 그룹을 생성하거나, 필요한 경우 이 대시보드를 기존 그룹에 지정합니다.
-
위젯 추가를 누른 다음 로깅 데이터 테이블을 선택하고 새 위젯에서 구성을 누릅니다.
-
적절한 이름을 제공한 다음 저장된 검색을 선택합니다. 적절한 기본 기간을 추가합니다.

-
레이아웃을 수정하고 다른 저장된 검색을 적절하게 추가합니다.

보고서 데이터 추출 자동화
위의 접근 방법은 IAM 데이터에 대해 임시 보고를 수행하는 기능을 제공합니다. 그러나 진행 중인 작업의 경우 이 데이터 추출을 자동화해야 할 수도 있습니다. 이를 위해 OCI API, OCI CLI 또는 OCI SDK 중 하나를 활용할 수 있습니다.
SearchLogs API는 다음과 유사한 요청을 사용하여 호출할 수 있습니다. 시간범위를 조정하고 초기 로그 검색에서 질의를 추가합니다.
POST https://logging.<region>.oci.oraclecloud.com/20190909/search?limit=1000
Body:
{
"timeStart": "2025-01-01T00:00:00.000Z",
"timeEnd": "2025-01-02T00:00:00.000Z",
"searchQuery": "<log search query from Task #1>",
"isReturnFieldInfo": false
}
해당하는 OCI CLI 명령은 다음과 같습니다.
oci logging-search search-logs --search-query "<log search query from Task #1>" --time-start "2025-01-01T00:00:00.000Z" --time-end "2025-01-02T00:00:00.000Z" --is-return-field-info false
주: 백슬래시(
\)를 사용하여 검색 질의에서 큰 따옴표 문자(")를 이스케이프합니다. 즉,as "Success/Failure"가as \"Success/Failure\"가 됩니다.
감사 이벤트를 대체 시스템으로 푸시하려는 경우 OCI Connector Hub 또는 OCI Events를 사용하여 로그 전달을 용이하게 할 수 있습니다. 예를 들어, Azure Sentinel로의 감사 전달을 다루는 OCI Audit을 사용하여 멀티클라우드 보안 구현에서 OCI Identity and Access Management로 이벤트를 캡처할 수 있습니다.
관련 링크
승인
- Authors - Manoj Gaddam(Principal Product Manager - OCI Identity/IDCS), Callan Howell-Pavia(기술 담당자 수석 멤버 - OCI Identity/IDCS)
추가 학습 자원
docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Generate Identity and Access Management Reports from Oracle Cloud Infrastructure Audit
F89549-03