本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

Optim: Optim デザイナーを使用したデータ・マスキング

機密情報をマスクするための手法とデータ管理サービスの設計方法

野村 有加 (yukanm@jp.ibm.com), ソフトウェア開発研究所, IBM
野村有加はソフトウェア開発研究所のIM&Lotus開発に所属し、現在はIBM Optim製品群の品質保証および支援業務を担当しています。

概要: IBM Optim Data Privacy Solution V2.1は、データ・ソース内の機密情報をマスクすることでデータの安全性を保持するソリューションです。IBM Optim Data Privacy Solution V2.1では「名前や住所などの個人情報をルックアップ表に登録されているデータと置き換える」「文字を別の文字で置き換えたり、順番を入れ替える」「JavaScript式を用いてデータの変換方法を詳細に定義する」など、機密データの属性に合わせて多岐に渡ったマスク手法を提供しています。IBM Optim Data Privacy Solution V2.1のコンポーネントの1つであるOptimデザイナーは、上記のような機密データをマスクする操作を「データ管理サービス」として定義・設計することができます。本稿ではOptimデザイナーを使用したデータのマスク手法を、実際の操作方法を含めて具体的に紹介します。

このシリーズの他の記事を見る

日付:  2010年 5月 14日
レベル:  初級
アクティビティー: 3810 ビュー
お気軽にご意見・ご感想をお寄せください: 


1.はじめに

IBM Optim Data Privacy Solution V2.1(以下、OptimV2.1)は、個人情報などのデータを個人が特定できないようなデータへ変換(マスク、あるいはマスキングと呼びます)することで、個人情報保護のソリューションを提供します。これは、個人情報などの機密情報を含むデータをテストや開発など非本番環境で利用する際に有効です。本稿では、Optim V2.1におけるマスキングの手法(以下、データ・プライバシー・ポリシー)やデータ管理サービスを定義するOptimデザイナーの使用方法について、実際の操作方法を含めて具体的に紹介します。



2. Optimデザイナーとデータ・プライバシー・ポリシーの概要

2.1 IBM Optim Data Privacy Solution V2.1

IBM Optim Data Privacy Solution V2.1 (Optim V2.1)は、データ・プライバシーをSOAとして実現するソリューションです。具体的には以下のコンポーネントを提供しています。

  • Optimデザイナー
  • Optim管理コンソール
  • Optim管理サーバー
  • Optimプロキシー
  • Optim Executor

機密データをマスクする操作を設計するには、Optimデザイナーを使用して行います。設計したマスクの操作は「データ管理サービス」(あるいは単にサービスと呼びます)として定義されます。サービスはOptimデザイナーからOptim Executorを使用して実行することができます。あるいは、サービスをOptim管理サーバーに公開し、公開されたサービスをOptim管理コンソールから実行することができます。実行の依頼を受けたOptim管理サーバーは、Optimプロキシーに実行要求し、OptimプロキシーはOptim Executorを使用して実行します。


各コンポーネントの詳細や構成方法については、「Optim Data Privacy Solution インストール・ガイド」あるいはdeveloperWorks記事「IBM Optim Data Privacy Solution V2.1のコンポーネントとその機能」を参照して下さい。



2.2 Optimデザイナー

2.1節でも述べた通り、OptimデザイナーはOptim V2.1のコンポーネントの1つで、機密データをマスクする操作を「データ管理サービス」として設計することができます。Eclipseプラットフォームを基盤とした開発環境であり、直感的で分かりやすい操作環境を提供しています(図1)。


図1. Optimデザイナー
図1. Optimデザイナー

Optimデザイナーを導入し、サービスを実行するには以下の前提条件が必要です。

【インストール時】

  • InfoSphere Data Architect

    OptimデザイナーはInfoSphere Data Architect上に導入されるため、前提条件としてInfoSphere Data Architectが導入されている必要があります。

【データ管理サービス実行時】

  • Optim Executor・Optim 管理サーバー

    サービスの実行はOptim Executorを利用して行われるため、事前にOptim Executorを同じマシンに導入し、そのプログラムをOptimデザイナーに登録しておく必要があります。また、後述する「ルックアップ・ポリシー」をマスクの手法として適用する場合、Optim 管理サーバーを導入し、起動しておく必要があります。


2.3 データ・プライバシー・ポリシー

データ・プライバシー・ポリシーとは、Optim V2.1においてデータをマスクする手法のことです。Optim V1.2で定義されていたものと同様のポリシーがV2.1でも用意されています。


2.3.1 ポリシーの適用タイプ

データ・プライバシー・ポリシーはOptim V1.2と同様、以下の3タイプがあります

  • ルックアップ・ポリシー
  • ルール・ベース・ポリシー
  • JavaScriptポリシー

各タイプの詳説についてはOptimデザイナー ユーザー・マニュアルあるいは、Optim V1.2を用いたデータ・マスキングについて書かれたdeveloperWorks記事 「データ・プライバシー・ポリシーを使用したデータのマスク手法」 のデータ・マスキングの章を参照して下さい。なお、Optim V1.2にて「インライン式ポリシー」と呼ばれていたポリシーは、V2.1では「JavaScriptポリシー」と名称が変更されています。



2.3.2 Optimデザイナーを使用する際のポリシーのカテゴリー分け

Optimデザイナーを使用してマスクを行う際、データ・プライバシー・ポリシーは以下のようにカテゴリー分けされています。



個人情報マスク・ポリシー

データに含まれるさまざまな個人情報をマスクする事ができます。代表的なものは以下の通りです。例えば、名前であればその国で使われる名前が登録されたルックアップ表にあるものと置き換えます。住所であれば、その国の住所が登録されたルックアップ表にあるものと置き換え、さらに郵便番号、都道府県、市町村の列といった複数の列で構成されている場合はそれらの整合性も保たれます。クレジット・カードであればクレジット・カード提供会社の特性を保った番号にマスクする事ができます。

  • 姓名
  • Eメール・アドレス
  • ID(国民識別番号、保険番号など)
  • クレジット・カード番号
  • 生年月日
  • 住所情報

姓名、住所情報などはルックアップ・ポリシーとして適用され、Eメール・アドレス、ID、クレジット・カード番号などについてはルール・ベース・ポリシーとJavaScriptポリシーとして適用することができます。(ただし2010年4月現在、日本の住基ネットのIDには対応していません。)



スクランブル・マスク・ポリシー

文字および数値データをマスクするために使用するポリシーです。「スクランブル」と「置換」の操作があり、「スクランブル」は使用している文字の順番の入れ替え、「置換」は、アルファベットは別のアルファベット、数字は別の数字、ひらがなは別のひらがなといったように置き換えられます。ルール・ベース・ポリシーとJavaScriptポリシーとして適用可能です。3章では実際にパスポート番号のマスクをする際に適用します。



数値マスク・ポリシー

数値データをマスクするために使用するポリシーです。Optim V1.2での「スクランブル・マスク・ポリシー」の中で、整数や倍精度浮動小数点数を生成するポリシーがOptim V2.1では「数値マスク・ポリシー」とカテゴリー分けされています。ルール・ベース・ポリシーとJavaScriptポリシーとして適用可能です。



日付マスク・ポリシー

指定された範囲の期間でランダムに日付を生成したり、年や月で日付を丸める事ができます。(例:2010年8月21日は、年で丸めると2010年1月1日になり、月で丸めると2010年8月1日になります)クレジット・カードの有効期限や生年月日のマスクに使用できます。ルール・ベース・ポリシーとJavaScriptポリシーとして適用可能です。



2.4 マスクを構成したデータ管理サービスの設計と実行手順

Optimデザイナーでは、2.3節で説明したデータ・プライバシー・ポリシーを用いて、マスクされたデータを作成します。マスク後のデータを別の表に生成するサービスを「コピー・サービス」と呼び、同じデータベースの別スキーマや別のデータベースにデータをコピーすることができます。また、ソースのデータをマスクしたものに置き換える「データ変換サービス」というサービスもあります。本稿では、「コピー・サービス」を使ったマスクの方法を取り上げます。手順は図2の通りです。



図2.データ管理サービスの設計と実行手順
図2. データ管理サービスの設計と実行手順
  1. データ・ソース(DB2、Oracleなど)への接続を定義
  2. データ・ソースのスキーマ情報を基に、マスクしたいデータ(ソース)のスキーマに対し物理データ・モデルを生成
  3. 物理データ・モデルを論理データ・モデルに変換
  4. 論理データ・モデルに、「データ・アクセス・計画」と呼ばれる計画を作成し、データに対して適用したいデータ・プライバシー・ポリシーをその計画の中に定義(ルックアップ・ポリシー、ルール・ベース・ポリシーが適用可能)
  5. マスクデータを作成する先(ターゲット)のスキーマに対して同様にb, cを行い、論理データ・モデルを定義
  6. データ管理サービスを作成(ソース、ターゲット、作成したデータ・アクセス計画を指定。なお、JavaScriptポリシーはサービス作成後に適用可能)
  7. 作成したサービスを実行し、ターゲットのスキーマにマスクされたデータを作成

以上の操作により、ソースのスキーマからターゲットのスキーマに、機密情報がマスクされたデータがコピーされます。3章にて、具体的なデータを用いて操作を行っていきます。



3. データ・プライバシー・ポリシーを適用したデータ管理サービスの動作確認

実際に、データのマスクをするデータ管理サービスを作成し、実行してみましょう。以下の例では、実行環境はWindows XP上でDB2を使用している事を前提としています。ここで、架空の顧客データ(表名: DEMO.CUSTOMERS)があると仮定します。Optimデザイナーを使って、顧客番号以外を全てマスクし、DEMOTARGET.CUSTOMERS表にコピーするステップを以下で説明します。 予めSAMPLEデータベースを作成し、データベース上に以下の表を作成してください。 表定義とサンプル・データはこちらからダウンロードできます。作成するにはDB2コマンドにて以下を実行します。

> db2sampl (SAMPLEデータベース未作成の場合)
> db2 connect to sample
> db2 -vtf create_demo_tables.txt

3.1 プロジェクトとデータ・ソースの準備

最初に、作成したデータ・モデルやサービスを保管するためのデータ設計プロジェクトと、データベースへの接続情報を定義します。Optimデザイナーを起動してワークスペースを開き、まずはデータ設計プロジェクトの作成から行っていきます。[ファイル - 新規 - データ設計プロジェクト]を選択します。[新規データ設計プロジェクト]パネルで、プロジェクト名に「サンプル・プロジェクト」と入力し(図3)、[終了]ボタンをクリックすると、[データ・プロジェクト・エクスプローラー]ビューに作成したプロジェクトが追加されます。


図3. 新規データ設計プロジェクト
図3. 新規データ設計プロジェクト

次にデータ・ソースの準備です。DB2上のSAMPLEデータベースへの接続情報を定義します。[データ・ソース・エクスプローラー]ビューにて、[データベース]を右クリックして[新規]を選択します。[新規接続]パネル(図4)で[DB2 for Linux、UNIXおよびWindows]を選択して、SAMPLEデータベースに対するドライバー定義を編集します。編集が終わったら [接続のテスト]ボタンをクリックし、「pingが成功しました」というメッセージが表示されたら[新規接続]パネルの[OK]ボタンをクリックします。
これでデータ設計プロジェクトとデータ・ソースの準備は完了です。


図4. 新規データ・ソース
図4. 新規データ・ソース

3.2 データ・モデル、データ・アクセス計画、データ・プライバシー・ポリシーの作成

3.2.1 ソースのデータ・モデルの作成

まず、コピー元(ソース)となるデータDEMO.CUSTOMERS表に対する「サンプル・ソース」という名前のデータ・モデル、ならびにモデルに適用されるデータ・アクセス計画とポリシーを定義します。 [データ・プロジェクト・エクスプローラー]ビューにて、先ほど作成したプロジェクトを開きます。[データ・モデル]ノードを右クリックし、[新規 - 物理データ・モデル]コンテキスト・メニューを選択します。[モデル・ファイル]パネルにて(図5)、以下の情報を入力、[リバース・エンジニアリングから作成]ラジオボタンを選択して、[次へ]ボタンをクリックします。

  • ファイル名: サンプル・ソース
  • データベース: DB2 for Linux、UNIX、およびWindows
  • バージョン: ※DB2のバージョンを選択

図5. 「モデル・ファイル」パネル
図5. 「モデル・ファイル」パネル

[ソース]パネルにて、[データベース]ラジオボタンを選択し、[次へ]ボタンをクリックします。 [接続の選択]パネルにて、SAMPLEノードを選択し[次へ]ボタンをクリックした後、[スキーマの選択]パネル(図6)にて、DEMOを選択し[終了]ボタンをクリックします。


図6. スキーマの選択
図6. スキーマの選択

次に、作成した物理データ・モデルを論理データ・モデルへ変換します。作成された[サンプル・ソース.dbm]を右クリックし、[Optimプロパティーを含む論理データ・モデルに変換]コンテキスト・メニューを選択します。 デフォルト設定のまま、[次へ]ボタンを3回クリックし、図の[出力]パネルで論理データ・モデルへの変換が完了したことを確認した後、[出力]パネルで[終了]ボタンをクリックします。 [ファイル - すべてを保存]メニューを選択し、作成したデータ・モデルすべてを保存します。


3.2.2 データ・プライバシー・ポリシーの適用

作成した論理データ・モデルに対して、データ・アクセス計画とデータをマスクするためのデータ・プライバシー・ポリシーを適用します。 まずは、データ・アクセス計画を作成します。 [データ・プロジェクト・エクスプローラー]ビュー上に作成された論理データ・モデル(ldmファイル)をクリックして展開した後、パッケージ(デフォルト名はPackage1)を展開し、[データ・アクセス計画]ノードを右クリックして[新規 - データ・アクセス計画]コンテキスト・メニューを選択します。 「サンプル計画」と入力し、[終了]ボタンをクリックします。作成したデータ・アクセス計画「サンプル計画」を右クリックし[開く]でエディターを開き、[ポリシーの追加]ボタンをクリックします(図7)。 (新規データ・アクセス計画作成後には自動的にエディターが開かれます)


図7.ポリシーの追加
図7. ポリシーの追加

ここで、サービスの対象となるデータを選択するためのポリシー(選択ポリシー)とデータをマスクするためのデータ・プライバシー・ポリシーを作成していきます。
まず、選択ポリシーを作成します。選択ポリシーで表を選択すると、選択した表と参照制約などで関連付けられた表も自動的に選択されます。ポリシー名として「サンプル選択ポリシー」と入力し[次へ]をクリックします。DEMO.CUSTOMERS表を選択し、[終了]ボタンをクリックします。その後、[選択ポリシー]エディターが表示されるので、その内容を確認し、 [ファイル - すべてを保存]メニューを選択して変更を保存します。

これで、マスクするデータを選択するポリシーができました。次に、データ・プライバシー・ポリシーを適用します。以下の表1の属性に対して適用していきます。


表1. データ・プライバシー・ポリシー
列名データ・タイプ説明適用するポリシーポリシー・タイプ
CUSTOMER_IDchar(5)顧客番号(マスクなし)
FAMILY_NAMEvarchar(15)個人情報(personLookupType.LastName)ルックアップ
GIVEN_NAMEvarchar(15)個人情報(personLookupType.FirstName)ルックアップ
CREDIT_CARD_NUMvarchar(19)クレジット・カード番号すべての提供者からのクレジット・カードをマスクルール・ベース
PASSPORT_NUMchar(9)パスポート番号スクランブル(文字の置換)ルール・ベース
BIRTH_DATEdate生年月日個人情報(personLookupType.BirthDate)ルックアップ
AGEint年齢JavaScriptポリシー(サービス計画で定義)


個人情報のルックアップ・ポリシー

ここではハッシュ・ルックアップを用いて、日本の姓名情報と生年月日のマスクを行います。再度[サンプル・計画]エディターを開き、[ポリシーの追加]ボタンをクリックします。[ポリシーの追加]パネルで、ポリシー名として「名前マスク・ポリシー」と入力し[次へ]をクリックします。[ポリシー・カテゴリー・セレクター]パネルで、[個人情報マスク・ポリシー]を選択し、[次へ]をクリックします(図8)。


図8.ポリシー・カテゴリー・セレクター
図8. ポリシー・カテゴリー・セレクター

[ポリシー・セレクター]で[個人 ― 日本の個人情報のマスク]を選択して[次へ]をクリックします。[マスクする項目の選択]パネルで、エンティティーに”Package1/DEMO/CUSTOMERS”を選択して[次へ]をクリックします。[列のマップ]パネル(図9)で表2のようにマップを行います。


表2.列のマップ
列名ポリシー
FAMILY_NAMEpersonLookupType.LastName
GIVEN_NAMEpersonLookupType.FirstName
BIRTH_DATEpersonLookupType.BirthDate


図9.列とポリシーのマップ
図9. 列とポリシーのマップ

[次へ]をクリックし、[マップする項目のオプション]パネルはデフォルトのまま[次へ]をクリックして進みます。[ルックアップ・キー・ジェネレーター]パネルでキー生成メソッドとして[ハッシュ値を計算してキーとして使用]を選択し、[次へ]をクリックします。[ハッシュ値の入力]パネルで、”サンプル・プロジェクト/サンプル・ソース.ldm/Package1/DEMO/CUSTOMERS/CUSTOMERS_ID”を[ >> ]ボタンをクリックして選択し、[終了]ボタンをクリックします。


ルール・ベース・ポリシー:クレジット・カードのポリシー

クレジット・カードのポリシーは、発行者 (American Express、Diners Club、Discover、JCB、 MasterCard、VISA) のクレジット・カード番号 (CCN) をマスクします。各ポリシーは、CCNの発行者 ID 番号の最初の 4 桁を保持し、発行者 ID の残りの 2 桁とCCN に基づくアカウント番号をマスクします。さらに、それぞれの発行者に有効となるようなチェック・ディジットも生成するので、クレジット・カードを処理するアプリケーションのテストでも有効に使用することができます。 先ほどの姓名情報のマスクと同様にして、[ポリシーの追加]をクリック後、ポリシー名を「クレジット・カード・マスク・ポリシー」と入力し、[個人情報マスク・ポリシー]を選択し、次へ進みます。[ポリシー・セレクター]パネルで、[クレジット・カード ― すべての提供者からのクレジット・カードをマスク]を選択して[次へ]をクリックします(図10)。


図10. クレジット・カードのポリシー
図10. クレジット・カードのポリシー

[マスクする項目の選択]パネルで、以下の様に情報を入力し[終了]をクリックしてポリシーの追加を完了します。

  • エンティティー:サンプル・プロジェクト/サンプル・ソース.ldm/Package1/DEMO/CUSTOMERS
  • 属性:CREDIT_CARD_NUM

この例では、クレジット・カード発行者をマスクしない設定をしたため、発行者ID6桁の最後の2桁もマスクされずに元の値が保持されます。



スクランブル・マスク・ポリシー

ここでは、「文字の置換」ポリシーを使ってパスポート番号のマスクを行います。日本のパスポート番号は2文字の英字と7桁の数字で構成されているので、このマスクによって2文字の英字は別の英字に、7桁の数字は別の数字に置き換えられます。 個人情報のマスクと同様にして、[ポリシーの追加]をクリック後、ポリシー名を「パスポート・マスク・ポリシー」と入力し、[スクランブル・マスク・ポリシー]を選択し、次へ進みます。[ポリシー・セレクター]パネルで、[文字の置換]を選択して[次へ]をクリックします。[マスクする項目の選択]パネルで、以下の様に情報を入力します。

  • エンティティー:サンプル・プロジェクト/サンプル・ソース.ldm/Package1/DEMO/CUSTOMERS
  • 属性:PASSPORT_NUM

[次へ]をクリックし、[マップする項目のオプション]パネルはデフォルトのまま次へ進みます。 先ほども述べたようにパスポート番号は英字と数字で構成されているので、この例では、マスキングに使用される文字として「英語」を選択しています(「日本語」を選択しても結果は同様です)。「日本語」を選択した場合、日本語の文字も変換することができます(漢字は漢字、ひらがなはひらがな、カタカタはカタカナで別の文字に変換)。[言語文字セット]パネルで言語文字セットを「英語」にし、[終了]をクリックしてポリシーの追加を完了します。

アクセス計画で定義するデータ・プライバシー・ポリシーは以上です。JavaScriptポリシーは3.3のサービス作成時に定義します。


3.2.3 ターゲットのデータ・モデルの作成

次に、コピー先(ターゲット)となるスキーマに対し、「サンプル・ターゲット」という名前のデータ・モデル、ならびにモデルに適用されるデータ・アクセス計画とポリシーを定義します。 手順はソースのスキーマに対して行った操作と同様です。再度[モデル・ファイル]パネルにて、以下の情報を入力、[リバース・エンジニアリングから作成]ラジオボタンを選択して、[次へ]ボタンをクリックします。

  • ファイル名: サンプル・ターゲット
  • データベース: DB2 for Linux、UNIX、およびWindows
  • バージョン: ※DB2のバージョンを選択

[ソース]パネルにて、[データベース]ラジオボタンを選択し、[次へ]ボタンをクリックします。[接続の選択]パネルにて、SAMPLEノードを選択し、[次へ]ボタンをクリックします。[スキーマの選択]パネルにて、DEMOTARGETスキーマのみを選択し、[終了]ボタンをクリックします。 作成された物理データ・モデル(dbmファイル)を右クリックし、[Optimプロパティーを含む論理データ・モデルに変換]コンテキスト・メニューを選択します。 デフォルト設定のまま、[次へ]ボタンを3回クリックし、図の[出力]パネルで論理データ・モデルへの変換が完了したことを確認した後、[出力]パネルで[終了]ボタンをクリックします。 [ファイル - すべてを保存]メニューを選択し、作成したデータ・モデルすべてを保存します。



3.3 データ管理サービスの作成とJavaScriptポリシーの追加

データ管理サービスの作成とJavaScriptポリシーの追加を行います。[データ・プロジェクト・エクスプローラー]ビューにて、[サービス]ノードを右クリックし、[新規 ― サービス]コンテキスト・メニューを選択します。 [新規サービス]パネル(図11)にて、サービス・タイプで「コピー・サービス」を選択し、サービス名に「サンプル・サービス」を入力して、[次へ]ボタンをクリックします。


図11. 新規サービスの作成
図11. 新規サービスの作成

[ソース論理データ・モデルの選択]パネル(図12)にて、2.2節にてコピー元(ソース)として作成したデータ・モデル「サンプル・ソース.ldm」を選択して、[次へ]ボタンをクリックします。


図12.[ソース論理データ・モデルの選択]パネル
図12. [ソース論理データ・モデルの選択]パネル

[データ・アクセス計画の選択]パネルにて、2.2節で作成したデータ・アクセス計画「サンプル計画」を選択し、[次へ]ボタンをクリックします。[ターゲット・モデルのオプション]パネルにて、「ターゲット・モデルを選択し、自動マッピングを実行する」ラジオボタンを選択し、[次へ]をクリックします。 [ターゲット・モデル・セレクター]パネル(図13)にて、コピー先(ターゲット)用に作成したデータ・モデル「サンプル・ターゲット.ldm」を選択し、[ターゲットの操作タイプ]のラジオボタンを[挿入]にした状態で、[終了]ボタンをクリックします。


図13.[ターゲット・モデル・セレクター]パネル
図13. [ターゲット・モデル・セレクター]パネル

JavaScriptポリシー

JavaScriptポリシーは、サービス作成後、そのサービス計画に追加する形で定義します。1つのJavaScriptポリシーに複数のJavaScriptを追加することができ、JavaScriptを追加する際、マスクする対象のターゲット表の列を選択します。追加したJavaScriptの実行で得られた値がその列にセットされます。ここでは、AGE列に対して「現在の年月日 - マスク後の生年月日」を計算するためのJavaScriptポリシーを追加します。作成されたサービス「サンプル・サービス.svc」をダブルクリックして展開し、[サービス計画]をダブルクリックします。エディター上の[ポリシーの追加]をクリックし(図14)、ポリシー名に「サンプルJavaScript」と入力します。[ポリシー・カテゴリー・セレクター]パネルで、[ターゲット・データ・ソース・ポリシー]を選択し、次の[ポリシー・セレクター]パネルでは[JavaScriptポリシー]を選択し、[終了]をクリックします。


図14. ポリシーの追加
図14. ポリシーの追加

作成したJavaScript ポリシーを選択してJavaScript ポリシー・エディターを開き、[JavaScript の追加]をクリックします。(図15)


図15.JavaScript の追加
図15. JavaScript の追加

[属性の選択]パネルで「AGE」列を選択して次へ進みます。ファイル名はデフォルトのまま[終了]をクリックすると、JavaScriptファイルのエディターが開きます。以下のJavaScript式を入力します。

new Date().getFullYear()
  - parseInt(new String (record.getItem('/DEMO/CUSTOMERS/BIRTH_DATE')).substr(0,4))

これによって、現在の年月日からマスク後のBIRTH_DATE列の生年月日を引き算した値が、マスク後のAGE列に入ります。[ファイル] > [保存]をクリックして、ファイルを保存します。


3.4 サービスの実行と実行結果の確認

3.3節で、作成したサービス「サンプル・サービス.svc」を右クリックし、[Optimサービスの実行]コンテキスト・メニューを選択します(図16)。 [サービス名の検証]パネルにて、[終了]ボタンを押します。Optim Excecutorが起動し、サービスの実行が始まります。ログはコンソールタブをクリックし、確認します。


図16.サービスの実行
図16. サービスの実行

実行が正常終了したら、コピー先のDEMOTARGET.CUSTOMERS表に、コピー元のDEMO.CUSTOMERS表の内容がコピーされている事を確認します。 [データ・ソース・エクスプローラー]ビューにて、SAMPLEデータベース内のDEMOTARGETスキーマを展開してCUSTOMERS表を右クリックし、[データ ― サンプル・コンテンツ]コンテキスト・メニューを選択します。(図17)


図17.サンプル・コンテンツの選択
図17. サンプル・コンテンツの選択

[SQLの結果]ビューに表の中身が表示され、元の表からデータがマスクされている事が分かります。マスク前のデータを図18、マスクされたデータを図19に示します。ランダムなマスクを実行している列は、マスク・データは必ずしも図19の値通りとはなりません。



図18.マスク前のデータ
図18. マスク前のデータ

図19.サービス実行後のマスク結果
図19. サービス実行後のマスク結果


4. おわりに

IBM Optim Data Privacy Solution V2.1 (Optim V2.1)は、データ・ソース内の機密情報をマスクすることで、データの安全性を保持するソリューションです。Optimデザイナーはそのマスクを適用するデータ管理サービスを設計する事ができます。本稿では、Optimデザイナーを使用したデータのマスク手法を、実際の操作方法を含めて具体的に紹介しました。



ダウンロード

内容ファイル名サイズダウンロード形式
サンプル顧客データsample.zip2KBHTTP

ダウンロード形式について


参考文献

著者について

野村有加はソフトウェア開発研究所のIM&Lotus開発に所属し、現在はIBM Optim製品群の品質保証および支援業務を担当しています。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


developerWorks: サイン・イン


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

表示名をお選びください

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

(半角英数字で3文字以上31文字以下にする必要があります)


「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


この記事を評価する

コメント

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Information Management
ArticleID=489544
ArticleTitle=Optim: Optim デザイナーを使用したデータ・マスキング
publish-date=05142010
author1-email=yukanm@jp.ibm.com
author1-email-cc=

タグ

Help
このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。

スライダーバーを使用することで、より多く(少なく)タグを表示します。

人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。

マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。

このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。