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)によって認証が外部で管理される場合、ユーザー・アクティビティを完全に可視化する必要があります。このチュートリアルでは、Oracle Data Safe監査ログを、これらの集中管理されたアイデンティティ・プロバイダの豊富なOCI IAMメタデータと統合する重要な統合について概説します。その結果、包括的なユーザー・フットプリントが実現し、認証ソースに関係なく、すべてのデータベース・インタラクションで比類のないエンドツーエンドのトレーサビリティを実現することで、セキュリティを強化し、アクセス管理を簡素化します。

これが必要な理由

従来のデータベース監査ログには、特に外部アイデンティティ・プロバイダを介して認証が発生した場合に、特定のクラウド・ユーザーにアクションをトレースするために必要な重要なアイデンティティ・コンテキストがないことがよくあります。この統合は、このギャップに直接対処します。Oracle Data SafeおよびOCI Logging AnalyticsをMicrosoft Azure Entra IDおよびOCI IAMのOCI IAMメタデータに関連付けることで、組織は監査の透明性を高め、ハイブリッド・システム全体でのユーザー・トレーサビリティを改善し、アクセス・アクティビティを一元的に監視できます。この統一されたアイデンティティ対応ロギングは、セキュリティ体制の強化、監査調査の合理化、および最新のエンタープライズ環境における厳しいコンプライアンス要件への対応に不可欠です。

オーディエンス

目的

前提条件

タスク1: すべてのデータベースでの外部認証済ユーザーに対するカスタムOracle Data Safe監査レポートの作成

  1. OCIコンソールにログインし、「Oracle Databases」「データ・セーフ – アクティビティ監査」に移動し、「関連リソース」の下の「監査レポート – すべてのアクティビティ」をクリックします。

    Autonomous Database

  2. 「列の管理」をクリックし、必要な列を選択します。

    Autonomous Database

  3. 「カスタム・レポートの作成」で、「表示名」「説明」および「コンパートメント」の詳細を入力します。

    Autonomous Database

  4. 「レポート・スケジュールの管理」で、「スケジュール頻度」ドロップダウン・リストから「日次」を選択し、「スケジュールの保存」をクリックします。

    Autonomous Database

タスク2: データ収集および相関用のOCIコンピュート・インスタンスの設定

このタスクでは、OCIコンピュート・インスタンスを設定して、Microsoft Entra IDおよびOCI IAMからユーザーID詳細を取得し、Oracle Data Safe監査レポートを処理します。最終的な目標は、監査ログ内の外部ユーザー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. データ・セーフ監査レポートの処理

    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コンピュート・インスタンスにダウンロードされていることを確認します。ダッシュボードを毎日更新するには、これらのスクリプトをスケジュールして、OCIコンピュート・インスタンス上のcronジョブを実行します。このジョブは、カスタムOracle Data Safeレポート生成時間の後に実行するようにスケジュールする必要があります。

タスク3: OCIロギング・アナリティクスの構成

  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コンソールに移動し、「監視および管理」「ログ・アナリティクス」「管理」「パーサー」「パーサーの作成」に移動して、次の図に示すように必要な情報を入力します。

      Autonomous Database

    2. 「フィールド」をクリックし、「ヘッダー列」をOCI Logging Analyticsのフィールド名にマップします。

      CSV列ごとに、既存のフィールドを選択するか、適切なフィールドが存在しない場合はユーザー定義フィールド(UDF)を作成します。必要に応じて、「+」アイコンを使用して作成します。

      Autonomous Database

    3. 「パーサー・テスト」をクリックし、次のステップを実行します。

      1. 「パーサー・テスト」に切り替えます。

      2. サンプル行が正常に解析されたことを確認します。プレビュー・グリッドには、選択したフィールドにマップされた各列が表示されます。

      3. Timestamp列が正しく解決されることを確認します(解析エラーなし、正しい日付/タイムゾーン)。

      4. 「パーサーの作成」をクリックして保存します。

      Autonomous Database

  3. パーサーを使用するファイル・ソースの作成

    ソースは、OCI Logging Analyticsに、ログの検索場所(パス・パターン、収集方法)およびログの解釈方法(パーサーおよびメタデータ)を示します。

    OCIコンソールに移動し、「監視および管理」「ログ・アナリティクス」「管理」「ソース」「ソースの作成」にナビゲートし、次の図に示すように必要な情報を入力して、「ソースの作成」をクリックします。

    Autonomous Database

  4. ソースとエンティティおよびログ・グループの関連付け

    アソシエーションによって収集プロセスがアクティブ化されます。ソースは特定のエンティティ(ホストなど)にリンクされ、収集されたログは指定されたログ・グループにルーティングされます。

    1. OCIコンソールに移動し、ログ・アナリティクス管理に移動して、「ソース」をクリックします。

      Autonomous Database

    2. 「ソース」詳細ページで、関連付けるエンティティを含む「コンパートメント」を選択します。

    3. 「関連付けられていないエンティティ」をクリックして、関連付け可能/適用可能な正しいタイプのエンティティをリストします。

      Autonomous Database

    4. 「関連付けられていないエンティティ」でエンティティを選択し、「アソシエーションの追加」をクリックします。

    5. 可能な場合は、既存のログ・グループを選択します。このチュートリアルでは、「ログ・グループの作成」をクリックして、新しいログ・グループを作成します。

      Autonomous Database

      Autonomous Database

    6. 「発行」をクリックします。

      Autonomous Database

  5. 取込みが開始されたら、レコードが検索可能であり、フィールドが予期したとおりに移入されていることを確認します。

    Autonomous Database

    ログ・エクスプローラを表示します。

    Autonomous Database

タスク4: ログの調査および3つのウィジェットを使用したダッシュボードの構築

OCI Logging Analyticsを活用して、外部IDメタデータでエンリッチされたOracle Data Safe監査ログを可視化します。Microsoft Azureユーザー・フットプリント円グラフ、OCIユーザー・フットプリント円グラフおよび詳細監査表ビューを使用してダッシュボードを構築します。

  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コンソールに移動し、「ログ・アナリティクス」「管理」「ダッシュボード」に移動して、作成したダッシュボード(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を参照してください。