レベル: 中級 友田大輔, ソフトウェア開発研究所 IM開発&サービス, IBM
2009年 4月 10日 IBM Optim Data Privacy Solutionは、データ・ソース内の機密情報をマスクすることで、データの安全性を保持するソリューションです。2009年2月に発表されたIBM Optim Data Privacy Solution バージョン1.2(以下、Optim V1.2)は、データのマスクの機能をSOAに基づいたWebサービスとして実現しています。データ管理サービスの実行とモニターを行うユーザーインターフェースを提供するためにOptim管理コンソール(以下、管理コンソール)がWebアプリケーションとして実装されています。本稿ではOptim V1.2における管理コンソールの使用方法を、例を交えながら具体的に紹介します。
はじめに
IBM Optim Data Privacy Solutionは、個人情報などのデータを個人を特定できないようなデータへ変換(マスク、あるいはマスキングと呼びます)することで、データをテストや開発など非本番環境で利用する際の個人情報保護(データ・プライバシー)のソリューションを提供します。Optim V1.2 はデータ・プライバシーをSOAとして実現するソリューションです。ソリューションは、マスキングのポリシー(以下、マスキング・ポリシー)を定義するデザインタイムとそれを適用するランタイムの2つに分けられています。デザインタイムではデザイナーがマスキング・ポリシーを定義します。定義されたマスキング・ポリシーはCVSへチェックインされてバージョン管理されます。ランタイムでは、オペレータがマスキング・ポリシーをCVSからチェックアウトし、運用します。管理コンソールはランタイムにおけるデータ管理サービスの実行やモニターを行うためのインターフェースを提供します。本稿では、主にOptim V1.2における管理コンソールの使用方法について、前段階であるマスキング・ポリシーのチェックインからマスキングのサービスを実際に運用するまでを手順を追って説明していきます。
SOAを実現するOptim Data Privacy
デザインタイムとランタイム
Optim Data Privacyの全体図を図1に示します。図の左側がデザインタイム、右側がランタイムを表しています。前者はEclipseベースのOptim Studioを使用してデータ・プライバシーのマスキング・ポリシー(※1)を定義していきます。後者はWebブラウザからOptim管理コンソールにログインしてマスキングの作業をコントロールします。デザインフェーズで作成されたマスキング・ポリシーはモジュール(ファイルの集合)としてCVS(※2)でバージョン管理を行い、デザインタイムからランタイムへと渡されます。ランタイムでは、オペレータがCVSからモジュールをチェックアウトしてマスキング・ポリシーを適用、運用します。
(※1)デザイナーは、Optim Studioを使用して、エージェント、サーバーの構成、データ・ソースのアクセス方法、アクセスモデルなど、さまざまな設定を定義し、それらがすべてランタイムに渡されますが、本稿では簡単にマスキング・ポリシーとしています。
(※2)日本語のモデル名あるいは日本語のテーブル名を扱う場合、CVSのバージョンはCVS NT 2.5.03以上である必要があります。また、チェックイン時とチェックアウト時のプラットフォームのファイルシステムのエンコーディングが同じである必要があります。同じでない場合チェックアウト時にエラーになります。たとえば、Windows上でOptim Studioを使用する場合には、CVSおよび管理サーバーはShift JISの環境で動作させておく必要があります。
図1. Optim Data Privacyの全体図
構成
操作を行うにあたっては構成を理解しておく必要があります。図2はOptim Data Privacyの操作時における構成要素(コンポーネント)とそれらの関連を示しています。Optim Data Privacyの操作環境は、コンポーネントとして、Optim Studio、操作端末、管理サーバー、エージェントから構成されるSOA環境です。それぞれのコンポーネントは同じマシン上にあっても別々のマシン上にあっても構いません。
図2. Optimの構成図
Optim Studio はマスキングを行う対象データを指定したり、その方法をデザイン、定義する(マスキング・ポリシーを定義する)ためのGUIを備えたEclipseベースのツールです。定義されたマスキング・ポリシーはCVSを介してランタイムへと引き継がれます。操作端末は、管理サーバーをコントロールするための端末で、Webブラウザを使用して管理サーバーにアクセスします。管理サーバー、およびエージェントはJ2EEのWebサービスコンテナーであり、個々のマスキングの操作はWebサービスとしてデプロイされています。オペレータはコンソールからWebサービスの要求としてマネジメントサーバーにデプロイされているサービスの実行要求を送信します。管理サーバーは要求されたサービスがどのエージェントにデプロイされているかを判断し、各エージェントにサービスの実行要求を出します。各エージェントはサービスの実行を行います。各コンポーネントの役割を表1にまとめました。
表 1. Optim操作時のコンポーネント
| コンポーネント | 説明 |
|---|
| CVS | マスキング・ポリシーのバージョン管理、保管を行います。 | | 操作端末 | ブラウザから管理コンソールにログインしてコントロールします。Optimがインストールされている必要はありません(※3)。 | | 管理サーバー | サービスの実行をエージェントに指示します。 | | エージェント | サービスを実行します。 |
(※3)CVSサーバーからマスキング・ポリシーをダウンロードして構成する(後述)場合にはCVSクライアントがインストールされている必要があります。
図3に構成例を示します。これはあくまで一例で、複数のコンポーネントを物理的に同じマシンにインストールすることも可能ですのでスケーラブルで、かつ柔軟な構成が可能であることがお分かりいただけると思います。
図3. 構成例
準備
マスキング・ポリシーのチェックイン
デザイナーは定義したマスキング・ポリシーをCVSにチェックインします。チェックインの方法はEclipseの操作と同様です。Optim Defaultを選択し、マウスの右クリックから[チーム]-[プロジェクトの共用]を選択します(図4)。最初のチェックインの際のモジュール名には"/Optim Default"を明記する必要がありますのでご注意ください(図5)。その他、変更時のチェックイン、コミット、ブランチの作成、CVSとの同期などはEclipse、CVSの操作方法と同じですので本稿では説明を割愛します。
図4. CVSへチェックイン
図5. モジュール名の指定
サーバー・エージェントの起動と停止
マスキングのサービスを実行させるために、サーバーおよびエージェントを起動させる必要があります。操作の環境によりますが、通常、各サーバー管理者がサーバーおよびエージェントの起動と停止を行います。Windowsでは、サーバーおよびエージェントの起動と停止はメニューから行うことができます(図6)。または、Optimのインストールされているディレクトリの下の server\bin\startserver.bat、agent\bin\startagent.bat というバッチを実行してサーバー、あるいはエージェントを起動します。同様に、停止用のバッチファイルも用意されています。
図6. WindowsのOptimメニュー
AIX、LinuxなどのUnix系のOSでは、シェルコマンドが提供されます。それぞれサーバー、エージェントのインストールディレクトリの下のbinの下にあります。サーバーとエージェントを起動するコマンドはそれぞれ以下のとおりです。同様に、停止用のシェルコマンドも用意されています。
構成情報の収集
管理サーバーにログインして、マスキングのコントロールを行うために準備する必要な情報として、サーバーのURL、ポート番号、CVSの設定情報、ユーザーID、パスワードなどがあります。また、利用するマスキングのサービスに関して、そのゾーン名、グループ名、サービス名をあらかじめ知っておくことも必要になる場合がありますので、個々の環境に対応して準備してください。
例として表2に示すような情報が与えられていることとして、実際に操作をやってみましょう。
表 2. 設定例
| 項目 | 設定値 |
|---|
| server host name | opserver.yamato.ibm.com | | port number | 11000 | | cvs host name | opcvs.yamato.ibm.com | | cvs repository | /var/cvsroot | | cvs userid | jmat1 | | module name | com.ibm.nex120.sample/Optim Default | | service name | 登録されているすべてのサービスを実行する |
操作手順
では、具体的な操作を含めて紹介しましょう。
立ち上げ
ブラウザを立ち上げて、サーバーのURLをポート番号とともに入力します。ポート番号はサーバーの管理者から与えられます。サーバーのインストール時に指定したポート番号になります(デフォルトは11000)。表2の例にしたがって、http://opserver.yamato.ibm.com:11000/optim/console を入力します。するとログイン画面が現れますので、ユーザーIDとパスワードを入力してログインします。
最初に起動したときは管理者としてログインして各設定を行っていくことになります。管理者の初期IDとパスワードはadminです。
管理コンソールにおけるユーザーは表3に示すとおり4種類があります。
表 3. ユーザーIDの初期設定
| 役割 | ID | 初期パスワード |
|---|
| 管理者 | admin | admin | | 基幹業務マネージャー | lob | optim | | データベース管理者 | dba | optim | | 設計者 | des | optim |
ログインすると初期画面が現れます。ユーザーの種類によって表示されるタブページが変わりますが、管理者としてログインした場合、[ようこそ]、[構成]、[ライセンス]、[データベース・ドライバー]、[サービス]、[ユーザー]、[監査]の7つのタブページが表示されます。
モジュールのロード
まず、CVSのモジュールをチェックアウトするために[構成]タブを選択します。構成ボタンを押してCVSの設定情報を入力します。表2で示した本稿のケースの入力例を図7に示します。保存ボタンを押すとモジュールがチェックアウトされます。この作業を行うためにはCVSクライアントがインストールされている必要があります。
図7. CVS設定入力画面
サービスの確認
[サービス]タブを選択します。ゾーン名、グループ名を指定して、定義されているサービスを検索し表示させます。デフォルトではすべてのゾーンおよびグループに属するサービスが表示されます。サービスが実行可能かどうかの状態が表示されます。実行可能でない場合として、エージェントが開始されていない、あるいは、JDBCドライバーがロードされていない、という状態が表示されます。図8のマスクサービス4のようにエージェントが開始されていない場合、エージェントの管理者に開始するように依頼します。マスクサービス2では欠落リソースと表示されています。このサービスについては次に示すような手順でデータベース・ドライバーをロードします。
図8. サービスタブの表示
データベース・ドライバーの準備
[データベース・ドライバー]タブを選択します。Oracle10.1 のJDBCドライバーがインストールされていませんので、[アップロード]ボタンを押してドライバーをサーバーへインストールします(図9)。この作業は一度やっておけば同じバージョンのデータベースについては再ロードする必要はありません。
図9. データベース・ドライバーのインストール
サービスの実行と確認
再び[サービス]タブを選択して、実行したいサービスを表示させます。すべてのチェックボックスにチェックを入れて、実行ボタンを押します。各サービスにIDが割り振られ、サービスが実行されます。[サービス・モニター]タブを選択して、サービスの実行の状況を確認することができます。開始・完了・実行中・失敗の4つの状態があります。
図10. 実行結果の確認
図10のマスクサービス3の結果は失敗となっていますので、ログを見てみます。[サービス・モニター]タブを選択して、サービスインスタンスを表示させ、対象サービスを選択してログの表示をクリックします。ログの表示ではサービス要求のログ、サービス応答のログ、および、スタック・トレースを見ることができます。下にログの例を示します。ログを送信して問題報告を行うために[Optimサポートに送信]ボタンが用意されています。
<?xml version="1.0" encoding="UTF-8"?>
<svc:ServiceResponse xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http:
//www.w3.org/2001/XMLSchema-instance" xmlns:lic="http://www.ibm.com/nex/xsd/1.2.0/lic" xml
ns:rdb="http://www.ibm.com/nex/ecore/1.2.0/rdb" xmlns:svc="http://www.ibm.com/nex/ecore/1.
2.0/svc" ID="ee06f8db-2fc0-4fef-a75d-7346696f8ca7" creatorID="executor" creationTime="1233
566646655" version="1.0">
<service module="Optim Default" zone="my_zone" group="db2_group" name="マスクサービス3"
type="RelationalCopyService">
<requiredComponents xsi:type="lic:Solution" name="Data Privacy">
<product name="Custom"/>
</requiredComponents>
<requiredArtifactsRepository ID="bf3f2815-eb8d-4cf9-81a8-f83103ac3433" version="1.0" r
epositoryId="Local Management Server" url="http://localhost:11000/server/artifacts">
<groups xsi:type="rdb:JDBCArtifactGroup" ID="5bfc51ca-c60b-4bcc-9b3e-f109750e99da" v
ersion="1.0" groupId="DB2 UDB.IBM DB2 Universal">
<artifacts xsi:type="rdb:JDBCArtifact" ID="ca15abd0-071d-4f4d-9ef2-dc7c5702c54f" v
ersion="V9.1" artifactId="db2jcc.jar"/>
</groups>
</requiredArtifactsRepository>
</service>
<serviceStatus elapsedTime="1485">
<status xsi:type="svc:ServiceStatusFailure"/>
</serviceStatus>
</svc:ServiceResponse> |

 |
サービスのスケジュール
GUIによる設定
サービスは、必要に応じて定期的に実行するように設定することができます。管理コンソールの、[サービス]タブを選択し、スケジュールしたいサービスの行の[追加]ボタンをクリックすると、設定用のパネルがでてきますので(図11)、日時、曜日、回数などスケジュールの項目を入力して設定します。
図11. サービスのスケジュール設定
スクリプトによるサービスの実行
これまでブラウザを利用して、GUIによる操作の例を示してきましたが、runservice スクリプトを利用してサービスを開始させることもできます。Windows ではrunservice.bat というバッチファイル、Unix系のプラットフォームでは runservice.sh というシェルスクリプトとして用意されています。Optimのインストールされているディレクトリの下のtoolsディレクトリ内にあります。
Windows において、例で見てきたマスクサービス1をrunservice スクリプトを利用して実行してみましょう。
まず、JAVA_HOME ディレクトリを表示させてJREインストール環境にセットされていることを確認します。
次に runservice.batのset theUrl=http://localhost:11000/job/JobService を編集します。
・・・・・・
set theService=
set SFLAG=0
set theUrl=http://opserver.yamato.ibm.com:11000/job/JobService ←このURLを編集する
set UFLAG=0
・・・・・・ |
コマンドプロンプトから以下のようにコマンドを入力します。
runservice -s "com.nex120.sample/Optim Default/my_zone/db2_group/マスクサービス1.svc" |
その他にも、jarをそのまま実行させる方法もあります。このようにコマンドとして入力することでサービスが実行できますので、オペレーティングシステムのスケジューリング機能を利用したりアプリケーションを作成したりすることで、定期的に自動実行させることが可能です。
おわりに
Optim Data Privacyはデータ・プライバシーのための操作環境をSOAで提供します。データマスキングのサービスはWebサービスとして提供されますので、操作はブラウザのある環境であればどこからでも実行できます。またバッチコマンドを実行することによってマスキングの操作を行うこともできますので、柔軟なシステム構成で柔軟な操作環境が構築できることがお分かりいただけたと思います。
参考文献
著者について  | |  | 友田大輔はソフトウェア開発研究所のIM開発&サービスに所属し、現在はIBM Optim製品群の品質保証および支援業務を担当しています。 |
記事の評価
|