Oracle Cloud Infrastructure AuditからのIdentity and Access Managementレポートの生成
はじめに
Oracle Cloud Infrastructure (OCI)アイデンティティ・ドメインは、Oracle Identity Cloud Serviceの後継であり、Oracle Identity Cloud Serviceのすべての機能をOracle Cloud Infrastructureのコア・サービスにします。Oracle Identity Cloud Serviceは、自己完結型のSaaSに似た製品であり、サービス内のユーザー・アクティビティなどのレポートを提供します。
Oracle Identity Cloud Serviceとは異なり、OCIアイデンティティ・ドメインはより大きな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アイデンティティ・ドメインを含むコンパートメントに設定します。

関連するコンパートメントを選択すると、ユーザーまたはサービス・アクティビティに複数のエントリが表示され、特定のエントリはテナンシの使用方法に依存します。自分または他のログイン・イベントが表示される場合もあります。エントリが表示されない場合は、「詳細検索オプション」を展開して正しいリージョンを選択するか、「時間によるフィルタ」設定を変更して時間ウィンドウを展開します。
-
「拡張モードの表示」をクリックして、フリーテキスト問合せを入力する機能を起動し、次のいずれかをデフォルト問合せの最後に追加します(日時降順でソート後)。これにより、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レポートの新規ダッシュボードを作成します。
-
「最初から作成」を選択し、適切な名前と説明を追加します。

-
新規ダッシュボード・グループを作成するか、必要に応じてこのダッシュボードを既存のグループに割り当てます。
-
「ウィジェットの追加」をクリックし、「ロギング・データ表」を選択してから、新しいウィジェットで「構成」をクリックします。
-
適切な名前を指定し、保存検索を選択します。適切なデフォルト期間を追加します。

-
レイアウトを変更し、必要に応じて他の保存済検索を追加します。

レポート・データの抽出の自動化
前述のアプローチでは、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からイベントを取得するマルチクラウド・セキュリティを実装するなどです。
関連リンク
確認
- 作成者 - Manoj Gaddam (Principal Product Manager - OCI Identity/IDCS)、Callan Howell-Pavia (Principal Member of Technical Staff - OCI Identity/IDCS)
その他の学習リソース
docs.oracle.com/learnの他のラボを調べるか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、Oracle Learning Explorerになるには、education.oracle.com/learning-explorerにアクセスしてください。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Generate Identity and Access Management Reports from Oracle Cloud Infrastructure Audit
F89548-03