ユーザーが MaxCompute プロジェクト内の機密データをクエリする権限を持っているが、完全な値を表示すべきでない場合、結果に動的データマスキングを適用できます。このトピックでは、この機能を有効にする方法と例を示します。
背景情報
MaxCompute は、ネイティブでは動的データマスキングをサポートしていません。代わりに、DataWorks のデータセキュリティガードが提供するデータマスキング機能を使用します。MaxCompute プロジェクトで動的データマスキングを有効にするには、まずデータセキュリティガードをアクティベートする必要があります。
MaxCompute の新しい下層データマスキング機能は、次のように動作します。
-
データセキュリティガードで設定されると、マスキングルールは、JDBC 接続、ローカルクライアント (odpscmd) 接続など、任意の MaxCompute エントリポイントからの機密データに対するクエリに自動的に適用されます。
-
この機能が対応するルールとともに有効化されると、機密データに対するクエリは [MaxCompute の下層データマスキング] ルールの対象となります。
この機能は、電話番号、ID カード番号、銀行カード番号、ナンバープレート番号、IP アドレスなどの機密情報を効果的に保護します。動的データマスキングはクエリ結果のみをマスクし、基盤となる保存されたデータを変更することはありません。
制限事項
-
この機能は DataWorks Professional Edition 以上でのみ利用可能で、Basic Edition ではサポートされていません。Basic Edition を使用している場合は、アップグレードする必要があります。詳細については、「DataWorks のアップグレード」をご参照ください。
-
MaxCompute の下層データマスキングは、China (Beijing)、China (Shanghai)、China (Hangzhou)、China (Chengdu)、China (Shenzhen)、China North 2 Ali Gov 1、China East 2 Finance、China (Hong Kong)、Singapore、Germany (Frankfurt)、Malaysia (Kuala Lumpur)、US (Silicon Valley)、および Indonesia (Jakarta) のリージョンでのみサポートされています。
-
[MaxCompute の下層データマスキング] が有効で、そのルールが設定されている場合、それらのルールが適用されます。それ以外の場合は、設定された [上位層マスキングシナリオ] のルールが使用されます。
-
この機能は、MaxCompute テーブルのプライマリキーフィールドをマスクできません。
-
この機能は、24 時間以上経過したデータを含む MaxCompute プロジェクトでのみ利用可能です。
前提条件
-
MaxCompute プロジェクトとマスクするデータを準備します。手順については、「MaxCompute プロジェクトの作成」および「データのインポート」をご参照ください。
-
データセキュリティガードサービスをアクティベートします。手順については、「データセキュリティガードへ移動」をご参照ください。
[サービス契約] ページで、[上記の規約を読み、同意します] を選択し、[今すぐアクティベート] をクリックします。
データマスキングの有効化
-
マスキングシナリオを選択します。
-
「データセキュリティガードへ移動」します。
-
左側メニューで、[ルール設定] > [データマスキング] を選択して [データマスキング] ページに移動します。
-
「マスキングシナリオ」セクションで、を選択します。
説明DataWorks コンソールでマスキング効果を表示したい場合は、[DataStudio/Data Map にマスキングを表示] をオンにします。データマスキングシナリオの作成に関する詳細については、「データマスキングシナリオの作成」をご参照ください。
-
-
データマスキングルールを作成します。
-
(任意) 許可リストを設定します。
特定のユーザーをマスキングルールから除外するには、許可リストに追加します。
-
[データマスキング] ページで、 [許可リスト] タブをクリックします。
-
右上隅にある [+ 許可リストの作成] をクリックします。
-
[許可リストの作成] ダイアログボックスで、 [機密データタイプ]、 [ユーザーグループ]、および [有効期間] を選択します。
説明有効期間を設定すると、許可リスト上のユーザーは指定された期間内でのみ元のデータを表示できます。この期間外でクエリが実行されると、データはマスクされます。
-
-
プロジェクトを設定します。
-
[MaxCompute_New の下層データマスキング] をクリックして、互換性のあるすべての MaxCompute プロジェクトを表示します。
-
対象のプロジェクトを見つけ、[ステータス] スイッチをオンにして、そのマスキングルールを有効にします。
説明[MaxCompute の下層データマスキング] が有効で、そのルールが設定されている場合、それらのルールが適用されます。それ以外の場合は、設定された [上位層マスキングシナリオ] のルールが使用されます。
-
マスキング結果の検証
この例では、odpscmd クライアントを使用して SQL ステートメントを実行し、マスキング効果を検証する方法を示します。
-
クエリ文を実行します。
説明MaxCompute の下層データマスキングは、セッションレベルでのみサポートされています。
次のスクリプトはクエリの例です。
select * from table; -
マスキング結果を表示します。
AdnocSink1: 113 (min: 113, max: 113, avg: 113) MaxInstance: 0 GlobalInit: 3116 (min: 3116, max: 3116, avg: 3116) MaxInstance: 0 Limit1: 0 (min: 0, max: 0, avg: 0) MaxInstance: 0 Project1: 766 (min: 766, max: 766, avg: 766) MaxInstance: 0 TableScan1: 0 (min: 0, max: 0, avg: 0) MaxInstance: 0 +------------+-------------+----------------------+-------+ | name | phone_no | gmt_order | amt | +------------+-------------+----------------------+-------+ | simon | **10***3127 | 2015-10-03 01:12:31 | 18.6 | | trudy | **33***5599 | 2015-10-03 01:12:31 | 6.58 | | jinhang | **30***0850 | 2015-10-03 01:12:31 | 73.34 | | jiangfang | **15***2356 | 2015-10-03 01:12:31 | 30.62 | | lyan | **66***0573 | 2015-10-03 01:12:31 | 4.92 | | lijing | **30***3828 | 2015-10-03 01:12:31 | 56.74 | | frank.lizg | **58***9679 | 2015-10-03 01:12:31 | 21.09 | | maggie | **60***6880 | 2015-10-03 01:12:31 | 31.17 | | daniel | **63***5620 | 2015-10-03 01:12:31 | 42.42 | | carvin | **60***4886 | 2015-10-03 01:12:31 | 80.75 | +------------+-------------+----------------------+-------+ A total of 10 records fetched by instance tunnel. Max record number: 10000 dsg_fin_demo>