セキュリティ、アーティファクトの変更およびLCMイベントの監査

サービス管理者は、セキュリティ監査を有効にして、Essbaseサーバーに加えられた変更をトラッキングできます。

Essbaseは、監査ポリシー・ファイルで指定されたパラメータに基づいて、システムレベルのセキュリティ、アーティファクト、LCMイベント、および実行されたMaxL文(インポートを含む)の変更に関する情報を収集します。Essbaseは、追跡された情報を監査ログ・ファイルに連結するか、外部データベースにストリーミングします。各イベントについて追跡した情報には、時間、クライアント、ユーザー、影響を受けたアーティファクト、期間、ID、アプリケーションとデータベースの名前、ステータス、および説明が含まれています。

これらのイベントのサーバーレベル監査は、AUDITTRAIL SECURITY Essbase構成設定を使用して有効にします。

Essbaseサーバーのセキュリティ監査を有効にするワークフロー

このワークフローでは、AUDITTRAIL SECURITYを使用してEssbaseサーバーのセキュリティ監査を有効にする方法について説明します。監査を有効にした後に、EssbaseSecurityAuditLogPolicyを定義します。Essbaseが監査レコードをCSVファイルに書き込むようにするか、外部データベースにストリーミングすることができます。

このワークフローでは、Oracle Databaseは外部データベースですが、SQL Server、MySQLまたはDB2を使用することもできます。

ワークフローを完了するには、システム管理者である必要があり、Essbaseサーバー・マシン上の<Essbase Config Path>にアクセスする必要があります。

このパスには、編集する必要のあるファイルが含まれています:
  • essbase.cfg構成ファイル
  • デフォルトのセキュリティ監査ポリシー・ファイル
  1. 次の構成をEssbaseサーバー・マシンのessbase.cfgに追加することで、サーバー・イベントの監査を有効にします:

    AUDITTRAIL SECURITY

    構成を更新した後で、Essbaseを再起動します。

    サーバーレベルの構成プロパティの設定およびサーバーの起動、停止およびチェックを参照してください。

  2. デフォルトのポリシー・ファイル(XML)はEssbaseサーバーに作成されます。このファイル(EssbaseSecurityAuditLogPolicy.xml)は、デプロイメントの構成フェーズ中にEssbase構成を格納するために指定したパスにあります(<Essbase Config Path>で、ここにはessbase.cfgも置かれています)。

    作成されたデフォルトのポリシー・ファイルには次の内容が含まれています:
    <?xml version="1.0" encoding="UTF-8"?>
    <security-audit-policy>
       <audit_events_to_capture>LOGIN,LOGINAS,LOGIN_FAIL,LOGOUT,SERVICE_ROLE_ASSIGN,SERVICE_ROLE_REVOKE,APPLICATION_ROLE_ASSIGN,APPLICATION_ROLE_REVOKE,ARTIFACT_UPLOADED,ARTIFACT_MODIFIED,ARTIFACT_DELETED,ARTIFACT_CREATE,ARTIFACT_RENAMED,APPLICATION_DELETED,APPLICATION_CREATE,APPLICATION_RENAMED,DATABASE_DELETED,DATABASE_CREATE,DATABASE_RENAMED,LCM_EXPORT_START,LCM_EXPORT_END,LCM_IMPORT_START,LCM_IMPORT_END,LCM_IMPORT_FAIL,DATA_LOAD_MAXL,LOAD_DATA_JOB_START,LOAD_DATA_JOB_END,LOAD_DATA_JOB_FAILED,DELETE_SESSION,EXECUTE_MAXL,APPLICATION_SET_ACTIVE,APPLICATION_START,APPLICATION_STOP,DATABASE_START,DATABASE_STOP</audit_events_to_capture>
       <audit_sinks>
          <audit_sink>
             <audit_sink_type>CSV</audit_sink_type>
             <max-file-size>50000000</max-file-size>
             <roll-nos>100</roll-nos>
          </audit_sink>
       </audit_sinks>
    </security-audit-policy>
    
    CSVはデフォルトの監査シンク・タイプです。デフォルト(CSV)の監査シンク・タイプを使用していて、監査詳細がセキュリティ監査ログのCSVファイルに書き込まれることをテストする場合は、
    1. アプリケーションの作成など、監査可能なイベントであるアクションを実行します。ポリシーの<audit_events_to_capture>セクションにリストされているアクションを選択できます。
    2. EssbaseサーバーにSSHで接続します。
    3. <DOMAIN_HOME>/servers/serverName/logs/essbase/に移動します。<DOMAIN_HOME>の場所が不明な場合は、Essbaseプラットフォームでの環境の場所を参照してください。
    4. ファイルSecurityAuditLog_n.csvを開いて確認します。

      セキュリティ監査ログCSVファイルの例:
      セキュリティ監査csvファイルのイメージ。

  3. セキュリティ監査証跡が外部データベースにストリーミングされるようにするには、

    1. 外部ソースへの接続を作成します。グローバル接続とデータソースの作成またはアプリケーション・レベルの接続とデータソースの作成を参照してください。
    2. ポリシー・ファイルを編集して、監査シンクをDATABASEに変更します。
    3. <audit_sink>パラメータ内に<db_connection_name>パラメータを追加します。<db_connection_name>パラメータの値は、前述のサブステップaで作成した接続の正確な名前にする必要があります。
    セキュリティ監査証跡をOracle Databaseにストリーミングするために編集した監査ポリシーの例:
    <?xml version="1.0" encoding="UTF-8"?>
    <security-audit-policy>
       <audit_events_to_capture>LOGIN,LOGINAS,LOGIN_FAIL,LOGOUT,SERVICE_ROLE_ASSIGN,SERVICE_ROLE_REVOKE,APPLICATION_ROLE_ASSIGN,APPLICATION_ROLE_REVOKE,ARTIFACT_UPLOADED,ARTIFACT_MODIFIED,ARTIFACT_DELETED,ARTIFACT_CREATE,ARTIFACT_RENAMED,APPLICATION_DELETED,APPLICATION_CREATE,APPLICATION_RENAMED,DATABASE_DELETED,DATABASE_CREATE,DATABASE_RENAMED,LCM_EXPORT_START,LCM_EXPORT_END,LCM_IMPORT_START,LCM_IMPORT_END,LCM_IMPORT_FAIL,DATA_LOAD_MAXL,LOAD_DATA_JOB_START,LOAD_DATA_JOB_END,LOAD_DATA_JOB_FAILED,DELETE_SESSION,EXECUTE_MAXL,APPLICATION_SET_ACTIVE,APPLICATION_START,APPLICATION_STOP,DATABASE_START,DATABASE_STOP</audit_events_to_capture>
       <audit_sinks>
          <audit_sink>
             <audit_sink_type>DATABASE</audit_sink_type>
               <db_connection_name>OraclePDB</db_connection_name>
          </audit_sink>
       </audit_sinks>
    </security-audit-policy>
  4. 監査詳細がデータベースにストリーミングされていることをテストします。

    1. アプリケーションの作成など、監査可能なイベントであるアクションを実行します。ポリシーの<audit_events_to_capture>セクションにリストされているアクションを選択できます。

      Essbaseは、外部データベース・スキーマにESSBASE_SECURITY_AUDIT_EVENT_LOGという名前の監査表を作成します。

    2. 外部RDBMSにログインし、表の存在を確認する問合せを実行します。たとえば、SQL Developerにログインして、次を実行します
      select * from ESSBASE_SECURITY_AUDIT_EVENT_LOG
  5. データ視覚化ツールを使用して、セキュリティ監査レコードを表示し、分析します。Smart View、Oracle Data Desktop (Oracle Technology Networkライセンスで使用可能)、オープン・ソース・ベンダーまたはOracle以外のデータベース・ベンダーのオープンソースの視覚化ツールを使用できます。

監査ポリシー・ファイルについて

監査ポリシーは、ニーズに合せて編集できるXMLファイルに定義されます。このファイルでは、追跡するEssbaseサーバー・イベントと、データをセキュリティ監査ログに書き込むか外部データベースにストリーミングするかを指定できます。データを監査ログに書き込む場合は、最大ファイル・サイズと保持するセキュリティ監査ログ・ファイルの数を指定できます。

セキュリティ監査を有効にした後、Essbaseを再起動すると、EssbaseによってEssbaseSecurityAuditLogPolicy.xmlが作成されます。その後、このファイルを必要に応じて編集し、監査ポリシーを改善できます。このファイルは、デプロイメントの構成フェーズ中にEssbase構成を格納するために指定したパスにあります(<Essbase Config Path>で、ここにはessbase.cfgも置かれています)。環境内でのこの場所が不明な場合は、Essbaseプラットフォームでの環境の場所に関する項の説明を参照してください。

監査ポリシー・ファイルを編集するには、
  1. EssbaseSecurityAuditLogPolicy.xmlに移動します。ファイルは、Essbaseデプロイメントの構成フェーズで指定したアプリケーション・ディレクトリにあります。

  2. これをテキスト・エディタで開きます。

  3. トラッキングする監査シンク、ロギング詳細およびイベントを編集します。

    1. オプションで、データを外部データベースにストリーミングする場合は<audit_sink_type>DATABASE</audit_sink_type>を追加します。

    2. ステップaでDATABASEの監査シンク・タイプを指定した場合は、次の行に<db_connection_name>ConnectionName</db_connection_name>を、Essbaseサーバーのセキュリティ監査を有効にするワークフローで定義したデータベース接続の名前とともに追加します。

    3. 監査ログ・ファイルにデータを書き込む場合は、オプションで、<max-file-size>n</max-file-size>を使用して最大ファイル・サイズを変更します。nはバイト数です。デフォルトは50000000バイトです。

    4. 監査ログ・ファイルにデータを書き込む場合は、<roll-nos>n</roll-nos>を使用して、保存するセキュリティ監査ログのCSVファイルの数を指定します。nはファイル数です。

    5. <audit_events_to_capture>events_list</audit_events_to_capture>を使用して、取得する監査イベントを指定します。

監査ポリシー・ファイルで指定するイベントは、セキュリティ監査ログ・ファイルで追跡されるか、外部データベースにストリーミングされます。

取得する次のイベントを監査ポリシー・ファイルに指定できます:

イベント 説明
LOGIN ユーザー[x]が正常にログインしました
LOGIN_AS ユーザー[x]が[y]としてログインしました
LOGOUT ユーザー[x]がログアウトしました
LOGIN_FAIL ユーザー[x]のログインが失敗しました
SERVICE_ROLE_ASSIGN Essbaseサービス・ロール[x]を[y]に割り当てました
SERVICE_ROLE_REVOKE Essbaseサービス・ロール[x]を[y]から取り消しました
APPLICATION_ROLE_ASSIGN ユーザー/グループ[x]がアプリケーション[z]のロール[y]にプロビジョニングされました
APPLICATION_ROLE_REVOKE ユーザー/グループ[x]がアプリケーション[z]のロール[y]から取り消されました
ARTIFACT_CREATE タイプ[y]のアーティファクト[x]が作成されました
ARTIFACT_UPLOADED アーティファクト・アップロード・リクエストがアプリケーション[a]、データベース[b]、オブジェクト名[c]およびオブジェクト・タイプ[d]に対してコールされました
ARTIFACT_MODIFIED タイプ[y]のアーティファクト[x]が変更されました
ARTIFACT_DELETED タイプ[y]のアーティファクト[x]が削除されました
ARTIFACT_RENAMED タイプ[y]のアーティファクト[x]の名前が[z]に変更されました
APPLICATION_DELETED アプリケーション[x]が削除されました
APPLICATION_CREATE アプリケーション[x]が作成されました
APPLICATION_RENAMED アプリケーション[x]の名前が[y]に変更されました
DATABASE_DELETED データベース[x]がアプリケーション[y]で削除されました
DATABASE_CREATE データベース[x]がアプリケーション[y]で作成されました
DATABASE_RENAMED データベース[x]の名前がアプリケーション[z]で[y]に変更されました
LCM_EXPORT_START LCMエクスポート・ジョブがファイル名[x]で開始されました
LCM_EXPORT_END LCMエクスポート・ジョブがファイル名[x]およびジョブ・ステータス[y]で完了しました
LCM_IMPORT_START LCMインポートがアプリケーション[x]に対してファイル名[y]で開始されました
LCM_IMPORT_END LCMインポートがアプリケーション[x]に対してファイル名[y]で完了しました
LCM_IMPORT_FAIL LCMインポートがアプリケーション[x]に対してファイル名[y]で失敗しました
DATA_LOAD_MAXL MaxLデータ・インポート文がユーザー[z]によってアプリケーション[x]およびデータベース[y]に対して実行されました
EXECUTE_MAXL MaxL文[x]がユーザー[y]から実行されました
LOAD_DATA_JOB_START データ・ロード・ジョブがデータ・ファイル[x]およびルール・ファイル[y]を使用して開始されました
LOAD_DATA_JOB_END データ・ファイル[x]およびルール・ファイル[y]のデータ・ロード・ジョブがステータス[z]で完了しました
LOAD_DATA_JOB_FAILED データ・ロード・ジョブが[x]のため失敗しました
DELETE_SESSION セッション[x]が削除されました

セキュリティ監査イベント

セキュリティ監査イベントは、監査ポリシー・ファイルでの指定に応じて、セキュリティ監査ログ・ファイルで追跡されるか、外部データベースにストリーミングされます。

セキュリティ監査ログまたは外部データベース・スキーマ内の監査表を開く手順は、Essbaseサーバーのセキュリティ監査を有効にするワークフローを参照してください。

セキュリティ監査ログと監査表には、各イベントに関する次の情報が含まれています(該当する場合):
  • 時間 - イベントがいつ発生したか
  • クライアント - クライアントのIPアドレスまたはホスト名
  • ユーザー名 - アクションを開始したユーザー
  • セッションID – EssbaseセッションID
  • イベント・タイプ - イベント・タイプ
  • アーティファクト・タイプ - イベントに関与したアーティファクトのタイプ
    アーティファクト・タイプの例:
    • イベント・タイプARTIFACT_UPLOADEDに対するアーティファクト・タイプpartition_file
    • イベント・タイプLCM_EXPORT_STARTに対するアーティファクト・タイプ「アプリケーション」
    • イベント・タイプAPPLICATION_ROLE_ASSIGNに対するアーティファクト・タイプ「ユーザー」
  • アーティファクト名 - イベントに関与したアーティファクトの名前。たとえば、ファイル名、ユーザー名またはアプリケーション名です
  • 追加情報 - イベントに関連付けられた追加情報
  • 説明 - イベントの説明

    「説明」フィールドの内容はローカライズされます。

  • ID - イベントを説明する128ビットの汎用一意識別子。

    例: 123e4567-e89b-12d3-a456-426614174000

  • 期間 - イベントの期間(ミリ秒)
  • アプリケーション名 - アプリケーションの名前
  • データベース名 - データベースの名前
  • ステータス - 成功または失敗