Oracle Data Masking Packを使用した機密データの置換え

目的

このチュートリアルでは、機密データの識別、機密データを含むフィールドに対する適切なマスク・フォーマットの選択、マスクの適用、製品バージョンでの機密データを含むフィールドの置換えについて、その方法を説明します。

所要時間

約1時間

トピック

このチュートリアルでは、以下のトピックについて説明します。

 概要
 前提条件
 データ・マスキング・フォーマット・ライブラリの管理
 マスキングの対象となる機密データの確認
 アプリケーション・スキーマに対するデータ・マスキング定義の作成
 マスク定義のXMLへのエクスポート
 データ・マスキング定義のインポート
 ユーザー定義マスクの作成および適用
 まとめ

スクリーンショットの表示

 このアイコンの上にカーソルを置くと、すべてのスクリーンショットがロードし、表示されます。 (警告:この操作によって、同時にすべてのスクリーンショットがロードされるため、ご使用のインターネット接続によってはレスポンス時間が遅くなる場合があります。)

注:各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順にあるアイコンの上にカーソルを置いてください。 スクリーンショットをクリックすると、非表示になります。

概要

データベースにOracle Data Masking Packを使用することで、機密データをマスキング・ルールに基づいてスクラブされた現実的なデータに置き換え、プライバシ・ポリシーおよび機密保護ポリシーに準拠した本番データを共有することができるようになります。

Data Masking Packには、2つの主要ユースケースがあります。 1つ目は、データベース管理者(DBA)が、テスト目的のために本番環境をコピーし、Data Masking Packを使用してすべての機密データを安全かつ現実的な情報と置き換え、そのデータベースを開発者が利用できるようにするというケースです。 2つ目は、組織が、機密情報または個人情報は隠しつつ本番データを第三者と共有するというケースです。

このチュートリアルでは、機密データを識別するためにステージング環境のHRスキーマを確認し、次に、機密データに対して適切なマスク・フォーマットを選択します。 マスクを作成したあとは、続けてそのマスクを適用し、本番環境コピーの機密データが含まれるフィールドを、現実的かつ事前に指定したマスキング・ルールに基づきスクラブされたデータと置き換えます。

トピック・リストに戻る

前提条件

このチュートリアルを始める前に以下が必要となります。

1.

Oracle Database 10g Release 2またはOracle Database 11g Release1をインストールします。

 

2.

Oracle Database 10g Release 2またはOracle Database 11g Release 1に付属のサンプル・スキーマをインストールします。

 

3.

10.2.0.4パッチセットを使用して、現行のOracle Enterprise Manager 10g Release 2インストールからOracle Enterprise Manager Grid Control 10g Release 4にアップグレードします。

 

4.

datamask.zipファイルを作業ディレクトリにダウンロードし解凍します。

 

5.

このチュートリアルでは、Oracle Enterprise Managerリポジトリ内にマスク・フォーマットをいくつか作成していることを想定しています。 マスク・フォーマットをロードするには、作業ディレクトリからSQL*Plusセッションを開き、以下のスクリプトを実行します。

@dm_rule_setup

注:Oracle Enterprise ManagerのGrid Controlユーザー名を要求されます。

 
       
6.

このチュートリアルのデータ・マスキング・シナリオに対応するために、デフォルトのHRスキーマにも必要な変更を加えます。 HRユーザーとしてSQL*Plusセッションから次のスクリプトを実行します。

@dm_changes

注:このチュートリアルの終了後にHRユーザー・スキーマをリフレッシュする場合は、デフォルトのデモ・スキーマ作成スクリプトを実行する必要があります。 $ORACLE_HOME/demo/schemaディレクトリ内の mksample.sqlがこのスクリプトです。


                            

トピック・リストに戻る

データ・マスキング・フォーマット・ライブラリの管理

Data Masking Packを使用することで、セキュリティ管理者は、共通のマスキング・フォーマットの定義を集中管理することができます。 この集中管理された定義によって、DBAは、機密データが存在するデータベースであるかどうかにかかわらず、企業全体に同じマスキング・ルールを適用することができます。 その結果、組織および企業は、データ共有に関して確立された基準に従い、継続的に機密データをマスクできるようになります。

このトピックでは、カリフォルニア州運転免許証番号のマスキング・フォーマットを作成します。 フォーマットは、A、B、CまたはDから始まり、そのあとに、ランダムな7桁の数字が続きます。 以下の手順に従います。

1.

ブラウザを開き、以下のURLを入力してOracle Enterprise Manager 10gにログインします(<hostname>をlocalhostまたは特定のホスト名に変更してください)。

http://<hostname>:4889/em

 

2.

Oracle Enterprise Managerをインストールした際に作成したユーザーでログインします。「 Login」をクリックします。

 

3.

Targets」タブをクリックします。

 

4.

Databases 」タブをクリックします。

 

5.

リストからデータベースを選択するか、または検索条件を入力し、「 Go」をクリックします。

 

6.

リストからデータベースを選択します(前ステップで検索条件を入力した場合)。

 

7.

Administration」タブをクリックします。

 

8.

そのページをスクロール・ダウンして、Data Maskingの下にある「 Definitions」を選択します。

 

9.

Format Libraryの下にある「 Format Library」リンクを選択します。

 

10.

フォーマット・ライブラリは、集中管理されているデータ・マスキング・フォーマットのマスクで構成されています。これらのマスクは、通常、機密データのために使用されます。 マスク・フォーマットには、たとえば、電話番号、社会保障番号、クレジット・カード番号、仮の氏名があります。 セキュリティ管理者は、このようなマスク・フォーマットを定義し、それらをフォーマット・ライブラリで管理できます。定義したマスク・フォーマットは、DBAによって企業全体に使用されます。 「 Bay Area Phone Number」マスクを選択します。

 

11.

電話番号のフォーマットには、3つのタイプのマスク・プリミティブが使用されていることがわかります。 1つ目のArray Listにはエリア・コード、2つ目は固定文字列、3つ目はランダムの4桁の数字となります。 Data Masking Packでは、文字列、番号または数字、日付用のマスク・プリミティブが使用できるため、管理者は、マスク・フォーマットのタイプを迅速かつ簡単に構築できるようになります。 「 Return」をクリックします。

 

12.

これで、マスキング・フォーマットを新規に作成できます。 Format Libraryページから、「 Create」をクリックします。

 

13.

名称を入力します。この場合は、01_CR_DR_LICENSEを入力します。ドロップダウン・リストで「 Array List」が選択されていることを確認し、「 Go」をクリックします。

 

14.

List of Valuesとして A,B,C,Dを入力し、「 OK」をクリックします。

 

15.

Array Listタイプが作成されました。 「 Random Digits」を選択し、「 Go」をクリックします。

 

16.

Start Lengthに 7、End Lengthに 7を入力し、「 OK」をクリックします。

 

17.

Random Digitsタイプが作成されました。 定義されたフォーマットでのサンプルの生成に、これらのタイプが使用されたことがわかります。 「 OK」をクリックします。

 

18.

カリフォルニア州運転免許証のマスキング定義が作成されました。 「 Database」ブレッドクラムをクリックして、Administrationページに戻ります。

 

トピック・リストに戻る

マスキングの対象となる機密データの確認

データが適切にマスキングされるように確認する必要があります。 これは、リレーショナル・データベース内のデータが、主キーと外部キーとの関係に従い相互に関連づけられていることによります。 たとえば、EMPLOYEE表のEMPLOYEE_IDは、CUSTOMERS表のSALES_REP_IDに関連づけられています。 マスキングの対象となる機密データを確認するには、次のステップを実行してください。

1.

使用しているデータベースのAdministrationタブから、SchemaのDatabase Objectsの下にある「 Tables」を選択します。.

 

2.

優先資格証明が設定されていない場合は、ログイン・ウィンドウが表示されます。 SYSTEMユーザーとしてログインします。

 

3.

Schemaに HR、Object Nameに EMPLOYEEと入力して、「 Go」をクリックします。

 

4.

データを表示するには、ドロップダウン・リストから「 View Data」を選択します。次に、「 Go」をクリックします。

 

5. データが表示されます。 マスキングの対象である機密データのソースは、EMPLOYEE_ID、FIRST NAMES、LAST NAMES、SALARYなど複数あります。 次のトピックでは、このデータに対するマスキング・ルールを定義します。

 

トピック・リストに戻る

アプリケーション・スキーマに対するデータ・マスキング定義の作成

データ・マスキング定義は、マスキング・フォーマットとスキーマにおける表と列の対応付けです。 データ・マスキング定義は、アプリケーション表の機密データを含む列のリストで構成されます。たとえば、従業員の社会保障番号の列や、その仮の社会保障番号などを生成するデータ・マスキング・フォーマットとの対応付けの列があります。

PeopleSoftなどのアプリケーションでは、データベースとは独立しているため、主キーと外部キーとの関係はデータベースに保存されません。つまり、主キーと外部キーとの関係はアプリケーション内で適用されます。 このような場合、Data Masking Packを使用すれば、管理者は主キーと外部キーとの関係を登録でき、EMPLOYEE_ID、MGR_IDなど、関連する表の列を同じマスキング・ルールを使用してマスキングすることができるようになります。

このトピックでは、表内の機密情報を含む列をマスキング・フォーマットに関連づけます。 以下の手順を実行します。

1.

データ・マスキング定義の適用後、データを比較できるように、このウィンドウは開いたままブラウザで別のタブまたはウィンドウを開きます。 Databaseのブレッドクラムを右クリックし、「 新しいウィンドウで開く」(または、タブに対応しているブラウザの「 新しいタブで開く」)を選択します。

 

2.

使用しているデータベースのAdministrationタブから、Data Maskingの下にある「 Definitions」を選択します。

 

3.

Masking Definitionsページで「 Mask」をクリックします。

 

4.

対象となる列を選択し、このマスク定義に含める必要があります。 名称を入力して、Columnsの下にある「 Add」をクリックします。

 

5.

機密データを識別する方法は複数あります。 推奨するアプローチの1つは、関連する機密データを含む列をMASKなどのキーワードでタグ付けすることで機密データを識別する方法です。 Schemaに HRユーザー、Comment Nameに MASK%と入力し、「 Search」をクリックします。

 

6.

COMMENTSフィールドに、MASKを含んだ列のリストが表示されます。 「 EMPLOYEE_ID」の段を選択して、「 Add」をクリックします。

 

7.

この例では、MANAGERSというカスタム表があります。その表は、HRアプリケーションの一部ですが、外部キー関係などの制約はアプリケーション内で適用されます。 MANAGERS表では、そのドライバ表としてEMPLOYEE_IDが使用されますが、その関係は制約としてデータベース内に登録されていません。そのため、EMPLOYEE_ID列に対して依存列を追加する必要があります。 EMPLOYEE_ID列に対して、Dependent ColumnsのAddの下にある「 +」をクリックします。

 

8.

Schemaに HRユーザー、Table Nameに MANAGERSと入力し、「 Search」をクリックします。

 

9.

リストから「 MGR_ID」の段を選択して、「 Add」をクリックします。

 

10.

依存列が追加されました。 これで、EMPLOYEE_ID列のマスク・フォーマットを定義できます。 フォーマットのアイコン「  」をクリックします。

 

11.

Addのドロップダウン・リストから「 Random Numbers」を選択して、「 Go」をクリックします。

 

12.

Start Valueに 100000000、End Valueに 999999999と入力し、「 OK」をクリックします。

 

13.

OK」をクリックします。

 

14.

さらに列を追加します。 Columnsの下にある「 Add」をクリックします。

 

15.

今回は、Schemaに HRユーザー、Table Nameに EMPLOYEESを入力し、「 Search」をクリックします。

 

16.

今回は、名前にMASKを含むCOMMENTの列だけではなく、EMPLOYEES表のすべての列が一覧化されることに注目してください。 リストから以下の段を選択して、「 Add」をクリックします。

FIRST_NAME
LAST_NAME
PHONE_NUMBER
SALARY

 

17.

LAST_NAMEのFormat列にある「  」アイコンを選択します。

 

18.

Format Libraryにある定義済みのフォーマットを再利用できます。 Format Libraryによって、管理者は標準のマスキング・フォーマットの定義を集中管理することができるようになります。その結果、DBAは、これらの定義を企業全体に適用することができます。 「 Import from Library」をクリックします。

 

19.

Anglo American Last Name」を選択して、「 Import」をクリックします。

 

20.

OK」をクリックします。

 

21.

FIRST_NAMEにあるFormat列の「  」アイコンを選択します。

 

22.

この列には、すでに定義済みのフォーマットがあります。 そのフォーマットはライブラリからインポートできます。 「 Import from Library」をクリックします。

 

23.

Anglo American First Name」を選択して、「 Import」をクリックします。

 

24.

OK」をクリックします。

 

25.

PHONE_NUMBERにあるFormat列の「  」アイコンを選択します。

 

26.

Import from Library」をクリックします。

 

27.

Bay Area Phone Number」を選択して、「 Import」をクリックします。

 

28.

OK」をクリックします。

 

29.

SALARYにあるFormat列の「  」アイコンを選択します。

 

30.

この列に対し、元の列データをランダムにシャッフルします。 Addのドロップダウン・リストから「 Shuffle」を選択し、次に、「 OK」をクリックします。 注:このフォーマット・タイプとほかのフォーマット・タイプ(Random NumbersまたはRandom Stringsなど)を一緒に使用して、列を結合することはできません。

 

31.

データをマスキングするすべての列に対して定義をおこないました。 「 Next」をクリックします。

 

32.

マスキング・スクリプトが生成されていることを示すウィンドウが表示されます。

 

33.

警告および領域チェックのメッセージを確認し、「 Next」をクリックします。

 

34.

ジョブ名を入力して、「 Next」をクリックします。

 

35.

ラジオ・ボタンを切り替えて、サマリーまたは全フォームでスクリプトを確認します。 このスクリプトを保存することもできます。 確認したら、「 Submit」をクリックします。

 

36.

ジョブが正常に送信されました。 「 View Job Details」をクリックします。

 

37.

ジョブが正常に完了しました。 これで、マスキングされたデータと、表の以前のデータとを比較できます。 「 Targets」をクリックし、使用しているデータベースを選択します。 「 Administration」タブをクリックし、次に、Database Objectsの下にある「 Tables」リンクをクリックします。

 

38.

Schemaに HR、Object Nameに EMPLOYEESを入力し、「 Go」をクリックします。 このデータと、事前に開いてある別ウィンドウのデータとを比較します。 マスクを定義した列のデータが変化していることがわかります。

 

トピック・リストに戻る

マスク定義のXMLへのエクスポート

この時点で、作成した定義のXMLへのエクスポート、同様の定義の作成、作成した定義の別のデータベースへの適用、あるいはその定義を使用したデータ・マスキング・プロセスの続行などを実行することができます。 以下の手順を実行します。

1.

使用しているデータベースのAdministrationページに戻ります。 Data Maskingの下にある「 Definitions」を選択します。

 

2.

Searchのドロップダウン・リストから「 Masking Definition」を選択し、作成した定義を識別する検索条件を入力したら、「 Go」をクリックします。

 

3.

マスキング定義を選択し、「 Export」をクリックします。

 

4.

Export」をクリックします。

 

5. ファイルを保存して、コンテンツを確認します。

 

トピック・リストに戻る

データ・マスキング定義のインポート

前のトピックで、マスキング定義をXMLにエクスポートしました。 XML定義は、以下の2つの目的に有用です。

 マスク定義をXMLへバックアップする。
 事前定義のアプリケーション・マスク・テンプレートをEnterprise Managerにインポートする(フォーマットのマッピングをマスキングするアプリケーション表列をマニュアルで作成する必要がありません)。

このトピックでは、XMLで保存された外部の定義をインポートし、その定義を使用してデータ・マスキング・プロセスを進めていきます。 以下の手順を実行します。

1.

HR_MASK.xmlファイルをテキスト・エディタで開き、以下の要素を変更します。

DEFINITION_NAME: <マスキング定義名>(例:HR mask in XML)
TARGET_NAME: <使用しているデータベース>
OWNER: <HRユーザー>(マスキングする列ごとに変更する必要があります)

 

2.

Enterprise Manageに切り替え、Masking Definitionページから「 Import」をクリックします。

 

3.

XMLファイルの場所を入力し、「 Continue」をクリックします。

 

4.

インポートするマスキング定義を選択し、「 View」をクリックします。

 

5. 定義が表示されます。 そのフォーマットを表示できます。 PHONE_NUMBERの横にあるメガネ・アイコンをクリックします。

 

6. PHONE_NUMBERのフォーマットが表示されます。

 

トピック・リストに戻る

ユーザー定義マスクの作成および適用

アプリケーションまたはビジネスに特定の要件がある場合は、ユーザー定義のマスクが役立ちます。 以下の手順を実行します。

1.

EMPLOYEES表に移動し、データを表示します。

 

2.

Databaseのブレッドクラムを右クリックし、新しいウィンドウで開くか、新規タブで開くかのいずれかを選択します。 このようにすることで、このトピックの最後に元のデータとマスキングのあとのデータとを比較できます。

 

3.

Schemaに HR、Object Nameに EMAIL_MASKと入力し、「 Go」をクリックします。

 

4.

このトピックで使用するファンクションは、前提のスクリプトですでにロードされています。 ファンクション「 EMAIL_MASK」を選択し、「 View」をクリックします。

 

5. このユーザー定義のファンクションにより、姓名に基づいた仮の電子メール・アドレスが生成されます。 実際の電子メール・アドレスと偽の電子メール・アドレスとを置き換えます。偽の電子メール・アドレスは、アプリケーションによって生成されるアラートが正しくユーザーに届くかを確認するために使用されます。 「 Database」ブレッドクラムをクリックします。

 

6. Data Maskingの下にある「 Definitions」を選択します。

 

7. ユーザー定義のファンクションEMAIL_MASKを使用して、定義を新規に作成します。 「 Mask」をクリックします。

 

8. マスク定義名を入力して、Columnsの下にある「 Add」をクリックします。

 

9. Schemaに HRユーザー、Object Nameに EMPLOYEESを入力し、「 Search」をクリックします。

 

10. EMAIL列の段にあるチェックボックスを選択し、「 Add」をクリックします。

 

11. EMAIL列の段のFormatにある「  」アイコンをクリックします。

 

12. Addのドロップダウン・リストから「 User Defined Function」を選択し、「 Go」をクリックします。

 

13. User Defined Functionに <HRユーザー>.EMAIL_MASKと入力し、「OK 」をクリックします。

 

14. EMAILにマスク・フォーマットが生成されたことがわかります。 「 OK」をクリックします。

 

15. 定義が完了したら、「 Next」をクリックします。

 

16. マスキング・スクリプトが生成されていることを示すウィンドウが表示されます。

 

17 .

警告および領域チェックのメッセージを確認し、「 Next」をクリックします。

 

18 .

ジョブ名を入力して、「 Next」をクリックします。

 

19 .

Submit」をクリックします。

 

20 .

ジョブが正常に送信されました。 「 View Job Details」をクリックします。

 

21 .

ジョブが正常に完了しました。 これで、マスキングされたデータと、表の以前のデータとを比較できます。 「 Targets」をクリックし、使用しているデータベースを選択します。 「 Administration」タブをクリックし、次に、Database Objectsの下にある「 Tables」リンクをクリックします。

 

22 .

Schemaに HR、Object Nameに EMPLOYEESを入力し、「 Go」をクリックします。 このデータと、事前に開いてある別ウィンドウのデータとを比較します。 EMAIL列のデータが変更されていることがわかります。

 

トピック・リストに戻る

まとめ

このチュートリアルで学習した内容は、次のとおりです。

 データ・マスキング・フォーマット・ライブラリの管理
 アプリケーション・スキーマに対するデータ・マスキング定義の作成
 マスキング定義のエクスポートおよびインポート
 ユーザー定義マスクの作成および適用

トピック・リストに戻る

 このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。