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メタデータに関連付けることで、組織は監査の透明性を高め、ハイブリッド・システム全体でのユーザー・トレーサビリティを改善し、アクセス・アクティビティを一元的に監視できます。この統一されたアイデンティティ対応ロギングは、セキュリティ体制の強化、監査調査の合理化、および最新のエンタープライズ環境における厳しいコンプライアンス要件への対応に不可欠です。
オーディエンス
- OCI IAMプロフェッショナル、データベース管理者およびセキュリティ・アナリストおよび監査者。
目的
- Oracle Data Safe監査ログをOCI IAMおよびMicrosoft Entra IDメタデータと統合し、OCI Logging Analytics内でこのエンリッチされたデータをビジュアル化します。このプロセスは最終的に監査の透明性を高め、クラウド環境およびデータベース環境全体にわたる詳細なエンドツーエンドのユーザー・トレーサビリティを実現します。
前提条件
-
OCIテナンシ: OCI Logging Analytics、Oracle Data Safe、OCI ComputeおよびOCI IAMサービスのアクセスと権限。
-
Microsoft Entra IDテナント:管理アクセス。
-
OCI IAMアクセス:必要な構成権限。
-
必要なツール: OCI CLI、Azure CLI、
jq、csvkit、pandasおよびLibreOffice (または同様)。 -
ログ・アナリティクスの設定: OCI Logging Analyticsが有効になっており、管理エージェントがインストールおよび構成されていることを確認します。詳細は、次の各トピックを参照してください:
-
OCIコンピュート・インスタンス:管理エージェント・プラグインが有効です。
タスク1: すべてのデータベースでの外部認証済ユーザーに対するカスタムOracle Data Safe監査レポートの作成
-
OCIコンソールにログインし、「Oracle Databases」、「データ・セーフ – アクティビティ監査」に移動し、「関連リソース」の下の「監査レポート – すべてのアクティビティ」をクリックします。

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

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

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

タスク2: データ収集および相関用のOCIコンピュート・インスタンスの設定
このタスクでは、OCIコンピュート・インスタンスを設定して、Microsoft Entra IDおよびOCI IAMからユーザーID詳細を取得し、Oracle Data Safe監査レポートを処理します。最終的な目標は、監査ログ内の外部ユーザーIDをエンリッチされたアイデンティティ・メタデータに関連付け、完全なユーザー・フットプリントを提供することです。
ノート:
scriptsから次のスクリプトをダウンロードします。
-
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.csvhead -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" -
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:~]$ -
ユーザー・データのマージ。
両方のソースからフェッチされたユーザー・データを、単一の標準化された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:~]$ -
データ・セーフ監査レポートの処理。
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:~]$ -
データの相互関連付け
外部ユーザー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ロギング・アナリティクスの構成
-
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 -
監査CSV用のデリミタ付きパーサーの作成。
各CSV行を構造化されたログ・フィールドに変換するパーサーを構築し、OCI Logging Analyticsでフィルタ、エンリッチおよびビジュアル化を行います。
-
OCIコンソールに移動し、「監視および管理」、「ログ・アナリティクス」、「管理」、「パーサー」、「パーサーの作成」に移動して、次の図に示すように必要な情報を入力します。

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

-
「パーサー・テスト」をクリックし、次のステップを実行します。
-
「パーサー・テスト」に切り替えます。
-
サンプル行が正常に解析されたことを確認します。プレビュー・グリッドには、選択したフィールドにマップされた各列が表示されます。
-
Timestamp列が正しく解決されることを確認します(解析エラーなし、正しい日付/タイムゾーン)。
-
「パーサーの作成」をクリックして保存します。

-
-
-
パーサーを使用するファイル・ソースの作成。
ソースは、OCI Logging Analyticsに、ログの検索場所(パス・パターン、収集方法)およびログの解釈方法(パーサーおよびメタデータ)を示します。
OCIコンソールに移動し、「監視および管理」、「ログ・アナリティクス」、「管理」、「ソース」、「ソースの作成」にナビゲートし、次の図に示すように必要な情報を入力して、「ソースの作成」をクリックします。

-
ソースとエンティティおよびログ・グループの関連付け。
アソシエーションによって収集プロセスがアクティブ化されます。ソースは特定のエンティティ(ホストなど)にリンクされ、収集されたログは指定されたログ・グループにルーティングされます。
-
OCIコンソールに移動し、ログ・アナリティクス、管理に移動して、「ソース」をクリックします。

-
「ソース」詳細ページで、関連付けるエンティティを含む「コンパートメント」を選択します。
-
「関連付けられていないエンティティ」をクリックして、関連付け可能/適用可能な正しいタイプのエンティティをリストします。

-
「関連付けられていないエンティティ」でエンティティを選択し、「アソシエーションの追加」をクリックします。
-
可能な場合は、既存のログ・グループを選択します。このチュートリアルでは、「ログ・グループの作成」をクリックして、新しいログ・グループを作成します。


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

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

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

タスク4: ログの調査および3つのウィジェットを使用したダッシュボードの構築
OCI Logging Analyticsを活用して、外部IDメタデータでエンリッチされたOracle Data Safe監査ログを可視化します。Microsoft Azureユーザー・フットプリント円グラフ、OCIユーザー・フットプリント円グラフおよび詳細監査表ビューを使用してダッシュボードを構築します。
-
Azureユーザー・フットプリント円グラフ・ウィジェットの作成。
次のログ・エクスプローラ問合せを実行します。
'Log Source' = Demo_AZ_OCI_DS_Source | where Source = AzureAD | stats count as Azure_Events by 'External User' | sort -Azure_Events
次のイメージに示すように、「アクション」をクリックし、検索を「保存」してダッシュボードに追加します(ダッシュボードが存在しない場合は、「新規ダッシュボード」を作成します)。

-
OCIユーザー・フットプリント円グラフ・ウィジェットの作成。
次のログ・エクスプローラ問合せを実行します。
'Log Source' = Demo_AZ_OCI_DS_Source | where Source = OCI | stats count as OCI_Events by 'External User' | sort -OCI_Events
次のイメージに示すように、「アクション」をクリックし、検索を「保存」して既存のダッシュボードに追加します。

-
詳細な監査表ビューの作成。
次のログ・エクスプローラ問合せを実行します。
'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'
次のイメージに示すように、「アクション」をクリックし、検索を「保存」して既存のダッシュボードに追加します。

-
保存済ダッシュボードの表示。
OCIコンソールに移動し、「ログ・アナリティクス」、「管理」、「ダッシュボード」に移動して、作成したダッシュボード(
Demo_AZ_OCI_DS_DashBoard)をクリックします。
関連リンク
確認
-
著者 - Alex Kovuru (プリンシパル・クラウド・アーキテクト)、Anuj Tripathi (プリンシパル・ソリューション・アーキテクト)
-
コントリビュータ - Indiradarshni Balasundaram (シニア・クラウド・エンジニア)
その他の学習リソース
docs.oracle.com/learnで他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Integrate Oracle Data Safe and OCI Logging Analytics with OCI IAM and Microsoft Entra ID
G39715-02
Copyright ©2025, Oracle and/or its affiliates.