Ranger は、SELECT ステートメントの戻り値をマスクしてユーザーから機密情報を隠すことにより、Hive でのデータマスキングをサポートします。
注 この機能は、Beeline、JDBC、または Hue を使用して SELECT ステートメントを実行するなど、HiveServer2 を含むシナリオのみをサポートします。
hive -e 'select xxxx' などの HiveClient ベースのシナリオはサポートされていません。
このトピックでは、E-MapReduce でこの機能を使用する方法について説明します。
Ranger の Hive プラグインの設定
詳細については、「Hive の設定」をご参照ください。
データマスクポリシーの設定
Ranger UI の
emr-hive
サービスページ上で、ユーザーがアクセスする Hive データをマスクできます。
- Ranger は、最初の 4 文字を表示する、最後の 4 文字を表示する、ハッシュマスクなど、さまざまなマスキングタイプをサポートしています。
- マスクポリシーはワイルドカードをサポートしていません。 たとえば、アスタリスク (*) を使用して、マスクポリシーの列またはテーブルを置き換えることはできません。
- 各マスクポリシーは 1 つの列に対応しています。 列ごとにマスクポリシーを設定する必要があります。
マスクポリシーを設定するには、次の手順を実行します。
マスクポリシーを保存します。
テストデータのマスク
- シナリオ :
ユーザーテストでは、testdb1.testtbl テーブルから列 a を選択して、各値の最初の 4 文字のみを表示します。
- 手順 :
- マスクポリシーを設定する
前のセクションの最後の図は、このシナリオのマスクポリシーを示しています。マスキングタイプは「最初の 4 文字を表示」が選択されています。
- データマスキングを確認する
ユーザーテストでは、Beeline を使用して HiveServer2 に接続し、
select a from testdb1.testtbl
ステートメントを実行しています。上記のように、ユーザーテストで SELECT ステートメントを実行すると、列 a の値の最初の 4 文字のみが表示されます。 残りの文字は、
x
で置き換えられてデータマスキングされています。
- マスクポリシーを設定する