プロジェクトユーザーが E-MapReduce (EMR) プロジェクト内の機密データに対するクエリ権限を持っているものの、完全な機密データを閲覧させたくない場合、クエリ結果に動的データマスキングを適用できます。本トピックでは、EMR の動的データマスキング機能を有効化する方法と参考例について説明します。
制限事項
-
EMR クラスターは、Data Security Guard の機密データ識別機能およびデータマスキング機能のみをサポートします。その他の Data Security Guard 機能はサポートされていません。
-
機密データの識別とマスキングは、特定の EMR クラスタータイプおよびテーブルタイプでのみサポートされます。詳細については、「データマップでデータプレビューをサポートするHiveテーブルタイプ」をご参照ください。
-
Data Security Guard のメタデータは T+1 ベースで更新されます。EMR データマスキングを使用するには、マスキング対象のデータを少なくとも 1 日前に作成する必要があります。
-
スケジューリング用専用リソースグループのみがサポートされます。詳細については、「スケジューリング専用リソースグループの課金」をご参照ください。
事前準備
前提条件
デフォルトでは、Data Security Guard は Alibaba Cloud アカウントにマッピングされたクラスターアカウントを使用してデータをサンプリングします。クラスターで LDAP または Kerberos 認証が有効になっており、Ranger または DLF-Auth をテーブル権限管理に使用している場合は、Alibaba Cloud アカウントのアカウントマッピングを設定し、マッピングされたクラスターアカウントが EMR クラスター内のテーブルにアクセスする権限を持っていることを確認してください。詳細については、「Data Studio (レガシー):EMRクラスターの登録」をご参照ください。
データの準備
EMRテーブルの作成
DataStudioページに移動します。
DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[DataStudioに移動] をクリックします。
-
「データ開発」ページで、 を選択して Hive ノードを作成します。
-
ノードコードを編集して
onefall_test_dsgテーブルを作成します。CREATE TABLE IF NOT EXISTS onefall_test_dsg ( username STRING ,gender STRING ,phone STRING ,email STRING ,card_no STRING ,address STRING ,zip_code STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY',' ; -
テストデータを
onefall_test_dsgテーブルにインポートします。-
テストデータファイル data.csv をダウンロードします。
-
テストデータをインポートします。
-
data.csv を EMR クラスター内のノードにアップロードし、SQL を使用してテストデータをロードします。
LOAD DATA LOCAL INPATH '/…/data.csv' OVERWRITE INTO TABLE onefall_test_dsg; -
data.csv を Object Storage Service (OSS) にアップロードし、SQL を使用してテストデータをロードします。
LOAD DATA INPATH 'oss://bucket-name.Endpoint/…/data.csv' OVERWRITE INTO TABLE onefall_test_dsg ;
-
-
Data Security Guard のメタデータの更新
Data Security Guard のメタデータは T+1 ベースで更新されます。onefall_test_dsg テーブルを作成して公開した後、データマスキングを設定する前に翌日まで待つ必要があります。
データマスキングの設定
ステップ1:データ識別ルールの作成
DataWorks は識別ルールを使用して EMR テーブル内のフィールドを識別します。マスキングルールを設定する前に、対応する識別ルールを設定する必要があります。詳細については、「データ検出ルールとタスクの設定」をご参照ください。
データ識別ルールページへの移動
DataStudioページに移動します。
DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[DataStudioに移動] をクリックします。
左上隅の
アイコンをクリックし、 を選択し、[今すぐ試す] をクリックしてデータセキュリティガードページに移動します。 説明Alibaba Cloudアカウントに必要な権限が付与されている場合、Data Security Guardのホームページに直接アクセスできます。
Alibaba Cloudアカウントに必要な権限が付与されていない場合、Data Security Guardの権限付与ページにリダイレクトされます。 Data Security Guardの機能は、Alibaba Cloudアカウントに必要な権限が付与された場合にのみ使用できます。
-
左側のナビゲーションウィンドウで、 を選択して、[データ識別ルール]ページに移動します。
識別ルールの設定
この例では、データ準備セクションで作成したテーブルを使用して識別ルールを作成します。目標は、onefall_test_dsg テーブル内の gender、phone、email の各フィールドを識別し、これら 3 つのフィールドにマスキングを適用することです。
-
機密フィールドのデータカテゴリを選択します。
左側の[組み込み分類テンプレート]セクションで、機密フィールドタイプのデータカテゴリを選択します。詳細については、「データ検出ルールとタスクを設定する」をご参照ください。
-
機密フィールドタイプを作成し、識別ルールを設定します。
右上隅で [機密フィールドタイプ] をクリックして、識別ルール設定ページを開きます。詳細については、「データ検出ルールとタスクを設定する」をご参照ください。
説明理解しやすくするため、機密フィールドタイプ名を
onefall_test_dsgテーブルのフィールド名 (gender、phone、email) に設定します。 -
[データ識別ルール] の設定が完了したら、右上隅の バッチ公開 をクリックし、作成したルールを選択して一括で公開します。設定後、機密フィールドタイプリストに 性別 (レベル 4)、電話番号 (レベル 2)、および メールアドレス (レベル 2) が表示されます。識別ルール定義方法は カスタム、精度は 100%、ステータスは 公開済み となります。
ステップ2:データマスキングルールの作成
DataWorks はデータマスキングルールを使用して EMR テーブル内のフィールドをマスキングします。マスキングルールを設定する前に、「データマスキングルールの作成」をご参照ください。
データマスキングルールページへの移動
-
DataWorks コンソールにログインし、データセキュリティガード ページに移動します。 詳細については、「Data Security Guard の概要」をご参照ください。
-
利用を開始 をクリックすると、Data Security Guard の ホームページ が表示されます。
-
左側のナビゲーションペインで、 を選択します。[データマスキング管理] ページでは、マスキングシナリオタイプを作成し、マスキングルールを設定できます。
マスキングシナリオの作成
-
DataWorks は、組み込みのレベル 1 マスキングシナリオとして、[データ開発/データマップ表示マスキング]、[データ分析表示マスキング]、動的マスキングのための [MaxCompute エンジンレベルマスキング] と [Hologres エンジンレベルマスキング]、および [データ統合静的マスキング] を提供します。 これらのレベル 1 シナリオは固定されており、作成、編集、削除はできません。 ビジネスニーズに基づいて、その下にカスタムレベル 2 シナリオを作成できます。 詳細については、「データマスキングシナリオを作成する」をご参照ください。
-
この例では、[データ開発/データマップ表示マスキング] と [データ分析表示マスキング] を使用します。
-
[データ開発/データマップ表示マスキング] 配下のレベル 2 シナリオ名:
開発表示。 -
[データ分析表示マスキング] 配下のレベル 2 シナリオ名:
SQL 分析。
-
マスキングルールの作成
マスキングシナリオを作成したら、右上隅の [マスキングルール] をクリックして、gender、phone、email という名前の 3 つのマスキングルールを作成します。詳細については、「データマスキングルールの作成」をご参照ください。
-
マスキングシナリオを選択します。
[データマスキング管理] ページで、[マスキングシナリオ] を に設定し、右側の [+マスキングルール] をクリックします。
-
データマスキングルールを作成します。
-
[マスキングルールの作成] ページで、[機密フィールドタイプ]、データマスキングルール名、[マスキングシナリオ]、マスキング方式、およびその他の設定を行います。 詳細については、「データマスキングルール設定のエントリポイント」をご参照ください。
-
次の表に、この例の 3 つのマスキングルールの設定を示します。
設定項目
設定内容
gender
email
phone
機密フィールドタイプ
gender
email
phone
マスキングルール名
gender
email
phone
マスキングシナリオ
Development display、SQL analysisDevelopment display、SQL analysisDevelopment display、SQL analysisマスキング方法
文字置換
置換位置
すべて置換
置換方法
ランダム置換
ハッシュ暗号化
データウォーターマーク
オフ
暗号化アルゴリズム
MD5
ソルト値
5
墨塗り
墨塗りモード
説明複数のマスキング方法が利用可能です。この例では、文字の置き換え、[HASH 暗号化]、[マスキングアウト] を例として使用します。詳細については、「マスキング方法の設定」をご参照ください。
-
ステップ3:機密データ識別タスクの実行
本番環境では、Data Security Guard が毎日 EMR のメタデータを取得した後、DataWorks のメタデータ OpenAPI を呼び出してテーブルからサンプルデータを取得し、識別ルールに基づいて機密フィールドを識別します。この例はテストケースであるため、識別タスクを手動で実行して機密フィールドを識別できます。
-
左側のナビゲーションペインで、 を選択して、[機密データの識別] ページに移動します。
-
[機密データ識別] ページの左上隅で、「タスクの実行」をクリックして [機密データ識別タスクの有効化] パネルを開き、次の設定を構成します。
-
[タスクタイプ]:手動タスク。
-
[識別用アカウント]: 現在のアカウントを使用して、データをサンプリングおよびスキャンします。アカウント権限によって、データサンプリングの範囲が異なります。この例では、Alibaba Cloud アカウントを選択します。
-
[コンテンツ識別]:テーブルコンテンツ識別またはメタデータ識別を選択できます。この例では、コンテンツ識別を選択します。
-
[サンプル数]: サンプリング数を指定します。デフォルト値の 100 のままにします。
-
[スキャン範囲]: カスタム範囲 に設定し、ワークスペース/データベース範囲を使用して範囲を定義します。 ワークスペース/データベース範囲セクションでは、カスケードセレクターを使用してデータソースタイプ (ODPS、EMR、HOLO など)、ワークスペース、およびデータベースを選択します。 この例では、EMR タイプ配下のターゲットデータベースを選択します。
-
この例のテーブル名は
onefall_test_dsgです。
-
-
範囲を定義した後、パネルの右下隅にある有効化をクリックして識別タスクを開始します。
説明識別タスクの実行詳細を表示するには、[機密データ識別] ページに移動し、[タスク実行記録] をクリックします。
クエリによるマスキング結果の検証
EMRテーブルプレビューでのマスキング結果の確認
-
DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、[データマップに移動] をクリックします。
-
左側の
アイコンをクリックして検索ページに切り替えます。ページ上部のドロップダウンをクリックして E-MapReduce データソースに切り替え、テーブル名 onefall_test_dsgを検索します。 -
検索結果でテーブル名をクリックします。テーブル詳細パネルが開いたら、[データプレビュー] をクリックしてテーブルデータをプレビューします。
onefall_test_dsgテーブルのプレビューでは、設定に基づいてgender、phone、emailの各フィールドがマスキングされていることを確認できます。genderフィールドはランダムな文字列に置換され (文字置換)、phoneフィールドは先頭3文字と末尾4文字のみが表示されるようにマスキングされ (墨塗り)、emailフィールドはハッシュ化された文字列で表示されます (ハッシュ暗号化)。マスキングルールが設定されていないその他のフィールド (username、card_no、address、zip_code) は、元の値のまま表示されます。
テーブル内のフィールドは、設定された識別ルールとマスキングルールに基づいて、データプレビュー でマスキングされます。
データ開発ページでのマスキング結果の確認
DataWorks の開発ページでマスキングされたデータをクエリする操作は、データ開発のプロジェクトレベルのトグルによって制御されます。次の手順に従って有効化します。
DataStudioページに移動します。
DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[DataStudioに移動] をクリックします。
-
左側の
アイコンをクリックして、開発ワークスペースの設定ページに移動します。 -
開発ワークスペース設定ページで、セキュリティ設定とその他 をクリックし、 トグルをオンにします。
クエリ結果のマスキングのテスト
DataStudioページに移動します。
DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[DataStudioに移動] をクリックします。
-
左側の
アイコンをクリックして、臨時クエリ ページに移動します。次に、
をクリックし、 を選択してアドホッククエリノードを作成します。 -
ノード内で
onefall_test_dsgテーブルをクエリして、データ開発ページでのマスキング結果を確認します。SELECT * FROM onefall_test_dsg;クエリ結果には、設定したマスキングルールが適用されていることが示されます。
gender列はランダムな文字列に置換され、phone列は先頭3文字と末尾4文字のみが表示されるようにマスキングされ、email列はハッシュ化された文字列として表示されます。マスキングルールが設定されていないその他の列は、元の値のまま表示されます。