Oracle Data Safe 및 OCI Logging Analytics와 OCI IAM 및 Microsoft Entra ID 통합

소개

하이브리드 및 멀티클라우드 환경에서 Oracle 데이터베이스를 보호하려면 특히 Microsoft Azure Entra ID 및 Oracle Cloud Infrastructure Identity and Access Management(OCI IAM)가 외부에서 인증을 관리하는 경우 사용자 활동에 대한 완전한 가시성이 필요합니다. 이 사용지침서에서는 중앙 집중식 ID 제공자의 풍부한 OCI IAM 메타데이터와 Oracle Data Safe 감사 로그를 통합하는 중요한 통합에 대해 설명합니다. 결과적으로 포괄적인 사용자 환경이 제공되므로 인증 소스에 관계없이 모든 데이터베이스 상호 작용에 대해 탁월한 엔드 투 엔드 추적 기능을 제공하므로 보안을 강화하고 액세스 관리를 간소화할 수 있습니다.

왜 필요합니까?

기존 데이터베이스 감사 로그에는 특정 클라우드 사용자에게 작업을 다시 추적하는 데 필요한 중요한 ID 컨텍스트가 부족한 경우가 많습니다. 특히 외부 ID 제공자를 통한 인증이 발생하는 경우 그렇습니다. 이 통합은 이러한 격차를 직접 해결합니다. 조직은 Oracle Data Safe 및 OCI Logging Analytics와 Microsoft Azure Entra ID 및 OCI IAM의 OCI IAM 메타데이터의 상관관계를 파악함으로써 감사 투명성을 높이고, 하이브리드 시스템 전반에서 사용자 추적성을 개선하고, 액세스 활동을 중앙 집중식으로 모니터링할 수 있습니다. 이러한 통합 ID 인식 로깅은 보안 태세를 강화하고 감사 조사를 간소화하며 최신 엔터프라이즈 환경에서 엄격한 규정 준수 요구 사항을 충족하는 데 필수적입니다.

대상

목표

필수 조건

작업 1: 모든 데이터베이스에서 외부적으로 인증된 사용자에 대한 사용자정의 Oracle Data Safe 감사 보고서 생성

  1. OCI 콘솔에 로그인하고 Oracle Databases, Data Safe – Activity Auditing으로 이동한 다음 관련 리소스 아래의 감사 보고서 – 모든 작업을 누릅니다.

    Autonomous Database

  2. 열 관리를 누르고 필요한 열을 선택합니다.

    Autonomous Database

  3. 사용자정의 보고서 생성에서 표시 이름, 설명컴파트먼트 세부정보를 입력합니다.

    Autonomous Database

  4. 보고서 일정 관리일정 빈도 드롭다운 목록에서 일별을 선택하고 일정 저장을 누릅니다.

    Autonomous Database

작업 2: 데이터 수집 및 상관 관계에 대한 OCI 컴퓨트 인스턴스 설정

이 작업에서는 Microsoft Entra ID 및 OCI IAM에서 사용자 ID 세부정보를 검색하고 Oracle Data Safe 감사 보고서를 처리하도록 OCI 컴퓨트 인스턴스를 설정합니다. 궁극적인 목표는 감사 로그의 외부 사용자 ID와 강화된 ID 메타데이터를 상호 연결하여 완전한 사용자 공간을 제공하는 것입니다.

주: scripts에서 다음 스크립트를 다운로드하십시오.

  1. Microsoft Entra ID 사용자 인출

    다음 명령을 실행하여 Microsoft Graph API(fetch_azure_ad_users.sh)를 사용하여 Microsoft Entra ID에서 사용자 정보를 검색합니다.

    ./fetch_azure_ad_users.sh
    

    출력:

    [oracle@linux-bastion:~]$ ./fetch_azure_ad_users.sh
    Fetching Access Token...
    Calling Graph API for users list...
    Parsing users and converting to CSV...
    Users list saved to: azure_ad_users.csv
    
    head -3 azure_ad_users.csv
    

    출력:

    [oracle@linux-bastion:~]$ head -3 azure_ad_users.csv
    "id","displayName","userPrincipalName","mail"
    "b41b0688-c07xxxxxxx3-e9b0db0c1107","Alex Kovuru","akovuruxxxxxxjtripaigmail.onmicrosoft.com","alex.xxxuru@gmail.com"
    "7eb35b90-dc0xxxxxxxxxx-bc0b-48789368e9cf","Anuj Tripathi","anujtxxxxxai_gmail.com#EXT#@anujtripaigmaixxmicrosoft.com","anujtrxxx@gmail.com"
    
  2. OCI IAM 사용자 인출.

    다음 명령을 실행하여 OCI CLI(oci_user_list_to_csv.sh)를 사용하여 OCI IAM에서 사용자 세부정보를 가져옵니다.

    ./oci_user_list_to_csv.sh
    head -3 oci_iam_users.csv
    

    출력:

    [oracle@linux-bastion:~]$ ./oci_user_list_to_csv.sh
    CSV file generated: oci_iam_users.csv
    [oracle@linux-bastion:~]$ head -3 oci_iam_users.csv
    id,name,email
    "ocid1.user.oc1..aaaaaaaaqv3tai2mxxxxxxxxxxepkk5hrfinedvj67ieb7phkirwxfeupv3cbq","alexk",alex.kovuxxx@oracle.com
    "ocid1.user.oc1..aaaaaaaaoq7ypwb5xxxxxxxxx2l5i6yjlnsedvkcni3dxdjdkkw5lyf73lma","ag-admin","anujtripaxxxx2@gmail.com"
    [oracle@linux-bastion:~]$
    
  3. 사용자 데이터 병합.

    두 소스에서 가져온 사용자 데이터를 표준화된 단일 CSV 파일(merge_users_csv.sh)로 통합합니다.

    ./merge_users_csv.sh
    head -3 merged_users.csv
    

    출력:

    [oracle@linux-bastion:~]$ ./merge_users_csv.sh
    Merged CSV created: merged_users.csv
    [oracle@linux-bastion:~]$ head -3 merged_users.csv
    id,displayName,userPrincipalName,mail,source
    "7eb35b90-dc0d-4135-bc0b-48789368e9cf","Anuj Tripathi","anujtrip.ai_xxx.com#EXT#@anujtripaigmail.onmicrosoft.com","anujtrixxxx@gmail.com",AzureAD
    "ocid1.user.oc1..aaaaaaaaqv3tai2miu6vtgxxxxxxxxxxxfinedvj67ieb7phkirwxfeupv3cbq","alexk",null,"alex.kovxxxxu@oracle.com",OCI
    [oracle@linux-bastion:~]$
    
  4. Data Safe 감사 보고서 처리.

    Oracle Data Safe(process_data_safe_report.sh)에서 최신 감사 보고서를 다운로드, 변환, 정리 및 표준화합니다.

    ./process_data_safe_report.sh
    head -3 cleaned_audit_records_final.csv
    

    출력:

    [oracle@linux-bastion:~]$ ./process_data_safe_report.sh
    Downloading report from OCI Data Safe...
    Converting XLS to CSV...
    convert /home/oracle/DS_AZ_OCI_Custom_External_User_Report_202507240745.xls -> /home/oracle/DS_AZ_OCI_Custom_External_User_Report_202507240745.csv using filter : Text - txt - csv (StarCalc)
    Cleaning the CSV file...
    Extracting specific columns...
    Post-processing the final CSV...
    Final post-processing complete.
    [oracle@linux-bastion:~]$ head -3 cleaned_audit_records_final.csv
    Target,DB user,OS user,Client host,Client ip,Event,Operation status,Operation time,External user
    DBS23AZPDB,ALLUSERS,oracle,linux-bastion,129.146.107.120,LOGOFF BY CLEANUP,SUCCESS,2025-07-10T21:07:37Z,b41b0688-c07e-416d-bf13-xxxxxxxxxc1107
    DBS23AZPDB,ALLUSERS,oracle,linux-bastion,129.146.107.120,CREATE TABLE,SUCCESS,2025-07-10T19:59:07Z,b41b0688-c07e-416d-bf13-xxxxxxxx0c1107
    [oracle@linux-bastion:~]$
    
  5. 데이터 상관

    외부 사용자 ID와 병합된 OCI IAM 사용자 데이터(DataSafe_External_Users_Audit_Dashboard.sh)를 상호 연결하여 Oracle Data Safe 감사 로그를 강화합니다.

    ./DataSafe_External_Users_Audit_Dashboard.sh
    head -3 DataSafe_External_Users_Audit_Dashboard.csv
    

    출력:

    [oracle@linux-bastion:~]$ ./DataSafe_External_Users_Audit_Dashboard.sh
    Correlated Data : DataSafe_External_Users_Audit_Dashboard.csv
    [oracle@linux-bastion:~]$  head -3 DataSafe_External_Users_Audit_Dashboard.csv
    Target,DB user,OS user,Client host,Client ip,Event,Operation status,Operation time,External user,displayName,mail,source
    DBS23OCI,ANUJ,oracle,linux-bastion,10.0.0.124,LOGON,FAILURE,2025-07-02T17:38:58Z,ocid1.user.oc1..aaaaaaaaam4ulylhebm4zwtiaqsy4xxxxxxxwu6imevy3lihnkejs7h43nlknkywq,anuj.t.tripaxxxx@oracle.com,anuj.t.tripaxxxx@oracle.com,OCI
    DBS23AZPDB,ALLUSERS,oracle,linux-bastion,129.146.107.120,COMMIT,SUCCESS,2025-07-10T19:34:38Z,b41b0688-c07e-416d-bf13-e9b0dbxxx107,Alex Kovuru,alex.kovuruxx@gmail.com,AzureAD
    [oracle@linux-bastion:~]$
    

    제공된 셸 스크립트 집합을 사용하여 이러한 프로세스를 자동화합니다. 해당 스크립트가 OCI Compute 인스턴스에 다운로드되었는지 확인합니다. 일일 대시보드 업데이트를 보장하기 위해 OCI Compute 인스턴스에서 cron 작업을 실행하도록 이 스크립트의 일정을 잡으십시오. 이 작업은 사용자정의 Oracle Data Safe 보고서 생성 시간 이후에 실행되도록 일정을 잡아야 합니다.

작업 3: OCI Logging Analytics 구성

  1. OCI Logging Analytics로 로그를 전송하도록 호스트 준비.

    다음 명령을 실행하여 oracle-cloud-agent가 로그를 읽을 수 있는지 확인합니다.

    sudo -u oracle-cloud-agent /bin/bash -c "head -3 /home/oracle/DataSafe_External_Users_Audit_Dashboard.csv"
    

    예상 출력:

    Target,DB user,OS user,Client host,Client ip,Event,Operation status,Operation time,External user,displayName,mail,source
    DBS23OCI,GLOBAL_USER,labuser,clienthost,49.37.181.25,LOGOFF BY CLEANUP,SUCCESS,2025-07-17T15:26:10Z,ocid1.user.oc1..aaaa...,alexk,alexxxx@example.com,OCI
    DBS23OCI,GLOBAL_USER,labuser,clienthost,49.37.181.25,COMMIT,SUCCESS,2025-07-17T15:15:02Z,ocid1.user.oc1..aaaa...,alexk,alexxxxxx@example.com,OCI
    
  2. 감사 CSV에 대한 구분된 구문분석기 생성.

    각 CSV 라인을 구조화된 로그 필드로 변환하는 파서를 빌드할 예정이며, OCI Logging Analytics는 필터링, 보강 및 시각화할 수 있습니다.

    1. OCI 콘솔로 이동하여 관찰 가능성 및 관리, Logging Analytics, 관리, 구문 분석기, 구문 분석기 생성으로 이동하고 다음 이미지에 표시된 대로 필요한 정보를 입력합니다.

      Autonomous Database

    2. 필드를 누르고 헤더 열을 OCI Logging Analytics 필드 이름에 매핑합니다.

      각 CSV 열에 대해 기존 필드를 선택하거나 적합한 필드가 없는 경우 UDF(사용자 정의 필드)를 생성합니다. 필요에 따라 + 아이콘을 사용하여 생성합니다.

      Autonomous Database

    3. 구문 분석기 테스트를 누르고 다음 단계를 수행합니다.

      1. 구문 분석기 테스트로 전환합니다.

      2. 예제 행이 성공적으로 구문 분석되는지 확인합니다. 미리보기 그리드에는 선택한 필드에 매핑된 각 열이 표시되어야 합니다.

      3. 시간 기록 열이 올바르게 분석되는지 확인합니다(구문 분석 오류 없음, 날짜/시간대 수정).

      4. 저장하려면 구문 분석기 생성을 누릅니다.

      Autonomous Database

  3. 구문 분석기를 사용하는 파일 소스 생성

    소스는 OCI Logging Analytics에 로그(경로 패턴, 수집 방법)를 찾을 위치 및 로그 해석 방법(구문 분석기 및 메타데이터)을 알려줍니다.

    OCI 콘솔로 이동하여 관찰 가능성 및 관리, Logging Analytics, 관리, 소스, 소스 생성으로 이동하고 다음 이미지에 표시된 대로 필요한 정보를 입력한 후 소스 생성을 누릅니다.

    Autonomous Database

  4. 엔티티 및 로그 그룹에 소스 연관.

    연관을 통해 수집 프로세스가 활성화됩니다. 소스는 호스트와 같은 특정 엔티티에 링크되고 수집된 로그는 지정된 로그 그룹으로 경로 지정됩니다.

    1. OCI 콘솔로 이동하여 Logging Analytics, 관리로 이동하고 소스를 누릅니다.

      Autonomous Database

    2. 소스 세부정보 페이지에서 연관시킬 엔티티가 포함된 구획을 선택합니다.

    3. 연관에 사용 가능/적격한 올바른 유형의 엔티티를 나열하려면 연관되지 않은 엔티티를 누릅니다.

      Autonomous Database

    4. 연관되지 않은 엔티티에서 하나를 선택하고 연관 추가를 누릅니다.

    5. 사용 가능한 경우 기존 로그 그룹을 선택합니다. 이 자습서에서는 로그 그룹 생성을 눌러 새 로그 그룹을 생성합니다.

      Autonomous Database

      Autonomous Database

    6. 제출을 누릅니다.

      Autonomous Database

  5. 수집이 시작되면 레코드가 검색 가능하고 필드가 예상대로 채워지는지 확인합니다.

    Autonomous Database

    로그 탐색기 보기:

    Autonomous Database

작업 4: 로그 탐색 및 세 개의 위젯으로 대시보드 작성

OCI Logging Analytics를 활용하여 외부 ID 메타데이터로 보강된 Oracle Data Safe 감사 로그를 시각화합니다. Microsoft Azure User Footprint 파이 차트, OCI User Footprint 파이 차트 및 세부 감사 테이블 뷰로 대시보드를 빌드합니다.

  1. Azure 사용자 점유 범위 파이 차트 위젯 생성

    다음 로그 탐색기 질의를 실행합니다.

    'Log Source' = Demo_AZ_OCI_DS_Source  | where Source = AzureAD | stats count as Azure_Events by 'External User' | sort -Azure_Events
    

    Autonomous Database

    다음 이미지에 표시된 대로 작업을 누르고 검색을 저장하고 대시보드에 추가합니다(대시보드가 없는 경우 새 대시보드 생성).

    Autonomous Database

  2. OCI 사용자 점유 범위 파이 차트 위젯을 생성합니다.

    다음 로그 탐색기 질의를 실행합니다.

    'Log Source' = Demo_AZ_OCI_DS_Source  | where Source = OCI | stats count as OCI_Events by 'External User' | sort -OCI_Events
    

    Autonomous Database

    다음 이미지에 표시된 대로 작업을 누르고 검색을 저장한 다음 기존 대시보드에 추가합니다.

    Autonomous Database

  3. 세부 감사 테이블 뷰 생성.

    다음 로그 탐색기 질의를 실행합니다.

    'Log Source' = Demo_AZ_OCI_DS_Source | fields 'Target Name', db_user, OS_user, Client, 'Host IP Address (Client)', Event, Operation_status, externalId, 'External User', mail, Source, -Entity, -'Entity Type', -'Host Name (Server)', -'Problem Priority', -Label, -'Log Source'
    

    Autonomous Database

    다음 이미지에 표시된 대로 작업을 누르고 검색을 저장한 다음 기존 대시보드에 추가합니다.

    Autonomous Database

  4. 저장된 대시보드 보기

    OCI 콘솔로 이동하여 Logging Analytics, 관리, 대시보드로 이동하고 생성된 대시보드(Demo_AZ_OCI_DS_DashBoard)를 누릅니다.

    Autonomous Database

승인

추가 학습 자원

docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.