IBM InfoSphere Guardium (以下 Guardium) は、データベース監査ログを一元管理し、ログ収集、加工、レポート出力、確認までに関わる膨大な工数を削減し、DBA(データベース・アドミニストレーター)によるアクセスを含む全てのアクセスをリアルタイムに監視しながら、既存環境のパフォーマンスへの影響を最小限に抑えることが可能なソリューションを提供する製品です。
Guardium の多彩な機能のなかでも最も中心的なものは、データベース・アクティビティを監視し、レポートを作成することです。この記事ではそのために必要なステップの全体を紹介します。データベースを監視対象に追加し、レポートを出力するまでに必要なステップのリストを示します。それぞれのステップで何を行うのか、注意すべきことは何か、ステップが正しく行われるとどのような状態になるのかを説明します。各ステップの詳細についてはそれぞれの解説で紹介するヘルプ文書やマニュアルを参照してください。記述や、画面は Guardium バージョン 8.2 を日本語構成にしたものに基づきます。
必要なステップのリストを示す前に、データベース・アクティビティを監視するための最小構成を見てみることにしましょう。図 1 がその構成です。
図 1. データベースを監視するための最小構成
監視対象となる一台または複数のデータベース・サーバーとネットワークで接続された Guardium コレクター(以下コレクター)があれば、データベース・アクティビティの監視が可能になります。この図ではアプリケーション・サーバーが SQL を発行するものとしています。コレクターは Guardium アプライアンス (装置) とも呼ばれます。レビューアーは、データベース・アクティビティについてのレポートを見るべき立場の人です。
データベース・サーバーには、S-TAP と呼ばれる監視モジュールがインストールされます。コレクターと S-TAP とは相互に通信が可能でなければなりません。
コレクターは HTTP サーバーを搭載していますので、コレクターへのアクセスは Web ブラウザーから行うことができます。Web ブラウザーの URL 欄に、”https://(hostnameまたはIP):8443” と入力するとコレクターへのログイン画面が現れます。ユーザー名とパスワードを入力してログインします。
あなたの会社あるいは部門においてデータベースの監視のために Guardium を導入したとします。そこであなたが Guardium に新たなデータベースの監視を開始させる業務を担当することになったとします。このとき Guardium でデータベースを監視し、レポートを出力させるまでに必要なステップを紹介します。
図 1 のセキュリティ・アドミニストレーターがあなたです。レビューアーがデータベース・アクティビティについてのレポートを見ることができるようにすることがあなたの当面の目標です。必要なステップのリストは次の通りです。
- データベース・サーバーへの S-TAP のインストール
- S-TAP 検査エンジン (S-TAP Inspection Engine) の追加と開始
- ポリシーの作成とインストール
- レビューアー用 GUI ユーザーの作成
- レポートの作成と確認
以下にこれらの各ステップについて述べます。
S-TAP は、データベース・アクティビティを監視するために、データベース・サーバーにインストールされるモジュールです。S-TAP は、監視対象機器の OS のバージョン毎に違ったモジュールですので、適切な S-TAP をインストールする必要があります。S-TAP は、その対象機器で利用可能な全てのデータベース・タイプのデータベースを監視しますので、対象機器で複数の異なったタイプのデータベースが稼動していても、ひとつの S-TAP をインストールします。
S-TAP のインストール方法は、大きく分類して 3 種類あります。
- GIM(Guardium Installation Manager)によるインストール
- スクリプトによるインストール
- ネイティブ・インストーラーによるインストール
お勧めは GIM によるインストールです。最初にデータベース・サーバーに GIM クライアントをインストールする必要がありますが、その後の管理が楽になります。GIM によるインストールについての大まかな手順を示します。
- データベース・サーバーに GIM クライアントをインストールする
- GIM サーバー(コレクター)に適切な S-TAP ファイルをアップロードし、インポートする
- GIM サーバー(コレクター)から GIM クライアントに S-TAP のインストールを指示する
S-TAP のインストール時に、S-TAP が監視データを送るべき GIM サーバー(コレクター)を指定します。送り先やその他のパラメーターの変更等も GIM で行うことができます。S-TAP が正しくインストールされたことは、GIM によって確認することができます。
S-TAP が正しく監視用コレクターに接続されたことは、監視用コレクターから確認します。コレクターに、admin ロールを持つユーザー(例:admin)でログインし、[システム・ビュー] タブの [S-TAP 状況モニター] を見ます。S-TAP ホストの列で S-TAP をインストールしたデータベース・サーバーの名前または、IP アドレスを探し、その列が緑色になっていれば、S-TAP は、その監視用コレクターに接続されています。その他に、後述の「S-TAP 検査エンジンの追加」で説明する、[S-TAP 制御] 画面に、接続されている S-TAP とその稼動状況のランプが表示されていますので、そちらで確認することもできます (図 2)。
S-TAP のインストールの詳細については、ヘルプ文書「S-TAP」の章にあります。ヘルプの各章の最初のページには、[PDF をダウンロード] リンクがありますので、そのリンクをクリックしてその章の PDF 文書をダウンロードしておくと便利です。
S-TAP を監視用コレクターに接続した後は、S-TAP 検査エンジン (S-TAP Inspection Engine) を追加します。ひとつのデータベース・サーバーに対し、場合によっては複数の、監視対象毎の S-TAP 検査エンジンを追加します。
S-TAP 検査エンジンとは別に検査エンジンというものがありますので、混同しないように注意する必要があります。[管理コンソール] タブの [構成] の中に [検査エンジン] がありますが、この検査エンジンは追加する必要はありません。
S-TAP 検査エンジンの追加も、admin ユーザーで行います。[管理コンソール] タブの [ローカル・タップ]->[S-TAP 制御] で行います。そこには、コレクターが管理している、全ての S-TAP がリストされています (図 2)。前のステップで追加した S-TAP の [S-TAP 構成の編集] アイコン (図 2 赤枠) をクリックすると [S-TAP 構成] 新規ウィンドウが現れます。
図 2. [S-TAP 制御] 画面
[S-TAP 構成] ウィンドウで、[検査エンジンの追加] の左側の [+] (十字マーク) をクリックすると、入力フィールドが現れます。最初にプロトコルを選択します。プロトコルを選択すると、プロトコルに応じた入力フィールドが現れます。図 3 は、AIX DB2 の S-TAP 検査エンジンの設定例です。
図 3. [S-TAP 構成] 画面 (AIX DB2 用 S-TAP 検査エンジンの設定例)
[クライアント IP/マスク] 欄をブランクにしたままだと、監視がなされないことに注意してください。全てのクライアントからの要求を監視するためには、画面のように、[1.1.1.1]/[0.0.0.0] を入力します。また、この例では [DB2 共有メモリー調整] および [DB2 共有メモリー・クライアント位置] については、初期値として Windows 用の値が表示されていましたので、数字を修正する必要がありました。
S-TAP 検査エンジンの設定の詳細については、ヘルプ文書「S-TAP」の章の「GUI からの S-TAP の構成」->「S-TAP 制御の検査エンジン」を参照してください。
パラメーターの入力が終わったら、[追加] ボタンをクリックして、S-TAP 検査エンジンを追加します。さらに [適用] ボタンをクリックすると、S-TAP 検査エンジンが開始します。[リフレッシュ] ボタンで画面のリフレッシュを行いながら少し待つと、[状況] の緑ランプが再び点灯します。ただし、この緑ランプの点灯は単に S-TAP 検査エンジンが動作していることを意味し、仮にパラメーターの設定が誤っていて、データベースの監視ができていない場合でも緑ランプが点灯します。
ポリシーとは、Guardium がどのようにデータベースを監視し、アクションを起こすかの詳細を定めるものです。複数のポリシーを同時にインストールすることができます。それぞれのポリシーは、ひとつ以上のルールの集合です。
ルールは、条件とアクションからなります。ルールが条件にマッチした時のみ、アクションがとられます。ひとつのルールに複数のアクションを定義することができます。複数のルールは順番に評価され、条件にマッチすればアクションが取られます。ルールの定義によっては、条件にマッチした場合に、そこで評価を終了し、次のルールには進まないようにする場合もあります。
ルールには、アクセス・ルール、例外ルール、抽出ルールがあります。それぞれのルールの適用対象 (評価対象) は、[表 1. ルールの種類] をご覧ください。
表 1. ルールの種類
| ルールの種類 | ルールの適用対象 (評価対象) |
|---|---|
| アクセス・ルール | クライアントからデータベース・サーバーへの要求 |
| 例外ルール | データベース・サーバーから返される例外事象 (応答) |
| 抽出ルール | (クライアント要求に応じて) データベース・サーバーから返される戻りデータ |
データベース・アクティビティを監視するためのアクションにはいくつか種類があります。ここでは完全な SQL を記録するために、アクセス・ルールの中で、[全詳細をロギング] アクションを定義します。このアクションによって、完全な SQL の情報がコレクターに送られ記録されます。完全な SQL とは、SQL 動詞だけでなく、SQL の全文を記録するという意味です。
ただし、全てのアクセスについて [全詳細をロギング] アクションでログを収集すると、ネットワーク資源をより多く消費し、またコレクターに対する負荷が過大になる場合がありますので、監視対象に応じて、適切な監視アクションを選択する必要があります。
ポリシーの作成とインストールは、admin ロールのユーザーだけでなく、user ロールのユーザーからも行うことができます。admin ユーザーの場合 [ツール] タブの、[構成と管理]->[ポリシー・ビルダー] から行います。[新規] ボタンから新規にポリシーを作成することができます。
すでにポリシーが存在する場合には、新たにポリシーを作成するか、あるいは、既存のポリシーにルールを追加するかのどちらかを選択します。
使用するポリシーが定まったら、アクセス・ルールを追加します。全ての SQL を記録するためには、条件を設定する必要はありません。特定のデータベース・タイプについてのアクティビティを監視するためには、データベース・タイプ・プルダウンから監視するデータベース・タイプを選びます。
ここでは、ルールに [全詳細をロギング] アクションを追加します。このアクションにはパラメーターはありません。また、[次のルールに進む] をチェックするのを忘れないでください。これをチェックしないと、条件にマッチした時にそれ以降のルールの評価を行いません。図 4 が DB2 サーバーを監視するために [全詳細をロギング] アクションをとるルール dw_db2_logfulldetail のみを追加したポリシーを、dw_db2_policy という記述 (名前) で作成した例です。
図 4. ポリシーに作成されたルールの例
ポリシーが作成されたら、インストールします。admin ユーザーの場合、[管理コンソール] タブの [構成と管理]->[ポリシー・インストール] から行います。[ポリシー・インストーラー] のパートで、アクセス・ルールを追加したポリシーを選択し、[- インストール・アクションの選択 -] プルダウン・メニュー (図 5) からインストールの方法を選びます。
図 5. [インストール・アクションの選択] プルダウン・メニュー
ここで、[- インストール・アクションの選択 -] プルダウン・メニューについて説明します。
まだ何もポリシーがインストールされていない場合には、プルダウン・メニューには、[インストール] だけがリストされています。このアクションを選択することによって、選択されたポリシーがただちにインストールされます。プルダウン・メニューによる場合、スケジュールされるのではなく、ただちにインストールが行われます。
すでにポリシーがインストールさている場合には、プルダウン・メニューには、[インストールおよびオーバーライド] が最上位にリストされ、[次のポリシーの前のインストール:<ポリシー名>] が、インストールされているポリシーの個数だけリストされ、最後に、[最後のインストール] がリストされます (図 5)。[インストールおよびオーバーライド] は、全てのポリシーをアンインストールした上で、選択したポリシーをインストールします。それ以外のアクションは、指定の位置に、選択したポリシーを追加インストールします。
ふたつ以上のポリシーがインストールされている時は、[インストール済みポリシー] に [アンインストール] ボタンが表示されるので、そのボタンによってポリシーをアンインストールすることができます。
インストールされているポリシーの確認は、[現在インストールされているポリシー] のパートで行います。図 6 は、新規に作成したポリシーをインストールした例です。ポリシーが正しくインストールされると、データベースの監視が行われ、ポリシーに従って処理されます。今回は、[全詳細をロギング] を行っていますので、完全な SQL が記録されます。
図 6. [現在インストールされているポリシー] 画面
ポリシーの作成とインストールの詳しい手順は、ヘルプ文書「保護」の章の「ポリシー」の項を参照してください。そこには、user ロールのユーザーがどのようにポリシーを作成しインストールするかについても書かれています。
ここまで、admin ユーザーでログインして操作を行ってきましたが、レビューアーがレポートを見るためのユーザーは別に作成すべきです。コレクターの設置時には、ふたつの GUI ユーザー (accessmgr と admin) が定義されていますが、それらは特別の役割を持ったユーザーなので、レビューアーが使うことは適切ではありません。そこでデータベースの状況を監視し、レポートを見るためのユーザーを作成します。
新規 GUI ユーザーを作成するためには、accessmgr ユーザーでログインします。[アクセス管理] タブの [ユーザー・ブラウザー] 画面で [ユーザーの追加] ボタンをクリックし、ユーザー名等必要な項目を埋めます。デフォルトの設定ではパスワードには大文字や特殊文字が含まれていなければならない等厳しい制約があります。
なお、ここで設定するパスワードは仮のものです。最初のログイン時にパスワードを変更する必要があります。また、[無効] チェックボックスがチェックされていますので、チェックをはずすことを忘れないでください。
GUI ユーザーは、ロール属性を持ち、ロールによって、できる作業が異なります。
新規に作成されたユーザーのロールは user になっています。ロールは追加あるいは変更することもできます。
GUI ユーザーが正しく作成されたことを確かめるには、そのユーザー名でログインしてみます。最初のログイン時にはパスワードを変更しますので、レビューアーにパスワードを設定させる必要がある場合には、パスワードの再設定を行ってからレビューアーに渡します。
ユーザー管理の詳細については、ヘルプ文書「Access Management」の章の「ユーザーの管理」の項を見てください。
S-TAP が活動し、ポリシーがインストールされたことで、データベース・アクティビティが記録されるようになりました。次に、その記録をレポート形式で表示するようにします。レポートの画面を定義し、それを表示するための GUI 画面 (ポートレット) を追加すれば、その画面にアクセスすることで、レポートを見ることができます。またそのレポートを PDF 形式等に出力させることができます。
レポートの作成と画面の追加は、今回の目的のためには、レビューアーのために作成したユーザーで行う必要があります。画面はユーザー毎に独立ですので、追加した画面はそのユーザーにしか追加されないからです。ここからは、レビューアー用に作成したユーザーでログインしてからの作業になります。
多数の事前定義レポートが準備されていますので、レポートを作成する前に見てみましょう。[表示] タブのもとに多くの事前定義レポートがあります。[アクティビティの詳細]->[データベース・ユーザー名別の完全な SQL] に、データベース・ユーザー毎の完全な SQL のレポートがあります。
表示させるデータベース・ユーザーを指定するには、レポート画面 (ポートレット) の右上にある鉛筆マークの [カスタマイズ] アイコンをクリックすると、[ポートレットのカスタマイズ] 画面 (図 7) が現れます。[DBUserName] フィールドに、データベース・ユーザー名を入力します。ワイルドカード文字として、半角の「%」が使用できます。レポートに表示させる事象発生時刻の範囲 (期間) もその画面で指定できます。[更新] ボタンでレポート画面に戻ります。
図 7. [ポートレットのカスタマイズ] 画面
条件にマッチするデータがあれば、それらが表示されます。表示を最新にするには、レポート下部の更新ボタンをクリックしてください。
レポートの作成は、レポート・ビルダーで行います。[モニター/監査] タブの [レポートのビルド] サブタブには、[カスタム・レポートの作成] 画面が表示されています (図 8)。[Report builder] をクリックすることでレポート・ビルダーの画面になります。
新規にレポートを作成するには、[新規] ボタンをクリックします。[照会] プルダウン・メニューには、事前定義の照会、あるいは作成した照会が表示されています。事前定義照会のひとつである [データベース・ユーザー別の完全な SQL] (事前定義レポートの名前と同じです) を選ぶと良いでしょう。
ここで [表形式の生成] ボタンをクリックすると、すでに見た事前定義レポートと同じレポートが生成されます。ここでは、特定のデータベース・ユーザーからのアクセスが一目でわかるように、背景色をつけることにします。レポートをカスタマイズするために、[表形式の生成] ボタンを押さずに、[次へ] ボタンをクリックします。
図 8. [カスタム・レポート作成] 画面
出力として表か図かを選択する画面まで [次へ] ボタンで進み、[表] を選択します。[レポートのカラー・マッピング] 画面で、条件に応じた色づけができます。図 9 は、データベース・ユーザー名が「db2inst1」の時に背景のカラーを赤にする場合の例です。
図 9. [レポートのカラー・マッピング] 設定例
図 9 の画面で [追加] ボタンを押した後に [次へ] ボタンで次に進み、最後に [保存] ボタンで保存すると検索画面に戻ります。何も入力しないで [検索] ボタンをクリックすると全てのレポートが表示されます。
レポートが生成された後は、どこに表示させるかを定めます。図 10 のように、作成したレポートを選択した状態で、[My New Reports に追加] ボタンを押すと、[モニター/監査] タブの [My New Reports] サブタブに表示されるようになります。また、[ペインに追加] で、その他のところに表示させることも可能になります。
図 10. 作成したレポートを [My New Reports] に作成する
レポートの作成については、ヘルプ文書「レポート」の章の「レポートの作成」の項に詳細があります。
最後に、レポートの確認です。レポートの確認は、[My New Reports] に追加した場合であれば、[My New Reports] サブタブで行います。パラメーターのカスタマイズは、事前定義レポートの場合と同じです。
レポートされるべきデータが何もない場合には、「データが見つかりません」と表示されます。レポートが生成されるように、例えば「DB2 コマンド・ウィンドウ」で SQL を発行してみます。図 11 は、ユーザーdb2inst1 で接続して SQL を発行した後に、ユーザーdwuser1 で接続して SQL を発行した例です。ここでデータベース・ユーザーが db2inst1 の場合には、カスタマイズの結果、背景色が赤で表示されています。
図 11. 作成したレポートの表示例
新たな監視対象データベースを追加して、そのアクティビティの詳細のレポートを表示させるまでの全体を概観してきました。より高度なフィルタリング等を行うには、解説内で言及されたヘルプ文書や参考文献を参照してください。