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 文字のみを表示します。

  • 手順 :
    1. マスクポリシーを設定する

      前のセクションの最後の図は、このシナリオのマスクポリシーを示しています。マスキングタイプは「最初の 4 文字を表示」が選択されています。

    2. データマスキングを確認する

      ユーザーテストでは、Beeline を使用して HiveServer2 に接続し、select a from testdb1.testtbl ステートメントを実行しています。

      上記のように、ユーザーテストで SELECT ステートメントを実行すると、列 a の値の最初の 4 文字のみが表示されます。 残りの文字は、x で置き換えられてデータマスキングされています。