Enterprise セキュリティ パッケージを使用して HDInsight 上に Hive ポリシーを構成する

この記事では、Apache Hive 用 Apache Ranger ポリシーを構成する方法について説明します。 hivesampletable へのアクセスを制限する 2 つの Ranger ポリシーを作成します。 hivesampletable は HDInsight クラスターに付属しています。 ポリシーを構成したら、Excel と Open Database Connectivity (ODBC) ドライバーを使用して HDInsight の Hive テーブルに接続します。

前提条件

  • Enterprise セキュリティ パッケージ (ESP) を使用している HDInsight クラスター。 詳細については、ESP を使用した HDInsight クラスターの構成に関する記事を参照してください。
  • 企業向け Microsoft 365 アプリ、Office 2016、Office 2013 Professional Plus、Excel 2013 Standalone、または Office 2010 Professional Plus がインストールされたワークステーション。

Apache Ranger 管理 UI への接続

Ranger 管理ユーザー インターフェイス (UI) に接続するには:

  1. ブラウザーで Ranger 管理 UI (https://CLUSTERNAME.azurehdinsight.net/Ranger/) に移動します。CLUSTERNAME はクラスターの名前です。

    Note

    Ranger では、Apache Hadoop クラスターとは異なる資格情報を使用します。 ブラウザーで Hadoop のキャッシュされた資格情報が使用されないように、新しい InPrivate ブラウザー ウィンドウを使用して Ranger 管理 UI に接続してください。

  2. クラスター管理者のドメイン ユーザー名とパスワードを使用してサインインします。

    Screenshot that shows the HDInsight ESP Ranger home page.

    現在、Ranger は Yarn および Hive でのみ機能します。

ドメイン ユーザーの作成

hiveruser1 および hiveuser2 を作成する方法の詳細については、「ESP の HDInsight クラスターの作成」をご覧ください。 この記事では、その 2 つのユーザー アカウントを使用します。

Ranger ポリシーの作成

このセクションでは、hivesampletable にアクセスするための 2 つの Ranger ポリシーを作成します。 異なる列セットに対する select 権限を付与します。 両方のユーザーは、「ESP の HDInsight クラスターの作成」で作成されました。 次のセクションでは、2 つのポリシーを Excel でテストします。

Ranger ポリシーを作成するには:

  1. Ranger 管理 UI を開きます。 前のセクション「Apache Ranger 管理 UI への接続」をご覧ください。

  2. [Hive][CLUSTERNAME_Hive] を選択します。 2 つの事前構成済みポリシーが表示されます。

  3. [Add New Policy](新しいポリシーの追加) を選択し、次の値を入力します。

    プロパティ
    ポリシー名 read-hivesampletable-all
    Hive Database default
    table hivesampletable
    Hive Column *
    ユーザーの選択 hiveuser1
    アクセス許可 select

    Screenshot that shows the HDInsight ESP Ranger Hive policies to configure.

    Note

    [ユーザーの選択] にドメイン ユーザーが設定されていない場合は、Ranger が Microsoft Entra ID と同期するまでしばらく待ってください。

  4. [Add](追加) をクリックしてポリシーを保存します。

  5. 最後の 2 つの手順を繰り返して、次のプロパティを設定したもう 1 つのポリシーを作成します。

    プロパティ
    ポリシー名 read-hivesampletable-devicemake
    Hive Database default
    table hivesampletable
    Hive column clientid、devicemake
    ユーザーの選択 hiveuser2
    アクセス許可 SELECT…

Hive ODBC データ ソースの作成

Hive ODBC データ ソースの作成方法については、「Hive ODBC データ ソースの作成」を参照してください。

プロパティ 説明
データ ソース名 データ ソースに名前を付けます。
Host CLUSTERNAME.azurehdinsight.net を入力します。 たとえば、「myHDICluster.azurehdinsight.net」を使用します。
ポート 443 を使用します。 (このポートは 563 から 443 に変更されました。)
データベース 既定値を使用します。
Hive サーバーの種類 Hive Server 2 を選択します。
メカニズム Azure HDInsight サービスを選択します。
HTTP パス 空白のままにします。
[ユーザー名] hiveuser1@contoso158.onmicrosoft.com」と入力します。 ドメイン名が異なる場合は、ドメイン名を更新します。
Password hiveuser1 のパスワードを入力してください。

データ ソースを保存する前に [テスト] を選択します。

HDInsight から Excel へのデータのインポート

最後のセクションでは、次の 2 つのポリシーを構成しました: hiveuser1 にはすべての列に対する select 権限があり、hiveuser2 には 2 つの列に対する select 権限があります。 このセクションでは、2 人のユーザーを偽装して Excel にデータをインポートします。

  1. Excel で新しいブックまたは既存のブックを開きます。

  2. [データ] タブで [データの取得]>[その他のデータ ソース]>[ODBC] の順に移動して、[ODBC] ウィンドウを開きます。

    Screenshot that shows the Open data connection wizard.

  3. ドロップダウン リストから、前のセクションで作成したデータ ソース名を選択して、[OK] を選択します。

  4. 初めて使用する場合は、[ODBC ドライバー] ダイアログ ボックスが開きます。 左側のメニューで [Windows] を選択します。 次に、 [接続] を選択して [ナビゲーター] ウィンドウを開きます。

  5. [データベースとテーブルの選択] ダイアログが開くのを待ちます。 この手順には数秒かかります。

  6. [hivesampletable]>[次へ] を選択します。

  7. [完了] を選びます。

  8. [データのインポート] ダイアログでは、クエリを変更または指定できます。 これを行うには、 [プロパティ] を選択します。 この手順には数秒かかります。

  9. [定義] タブを選択します。コマンド テキストを次に示します。

    SELECT * FROM "HIVE"."default"."hivesampletable"`
    

    定義した Ranger ポリシーにより、hiveuser1 にはすべての列に対する select 権限があります。 このクエリは hiveuser1 の資格情報では機能しますが、hiveuser2 の資格情報では機能しません。

  10. [OK] を選択して [接続プロパティ] ダイアログを閉じます。

  11. [OK] を選択して [データのインポート] ダイアログを閉じます。

  12. hiveuser1 のパスワードを再入力し、[OK] を選択します。 データが Excel にインポートされるまでに、数秒かかります。 完了すると、11 列のデータが表示されます。

最後のセクションで作成した 2 つ目のポリシー (read-hivesampletable-devicemake) をテストするには:

  1. Excel で新しいシートを追加します。

  2. 最後の手順に従ってデータをインポートします。 ここで行う唯一の変更は、hiveuser1 ではなく hiveuser2 の資格情報を使用することです。 hiveuser2 には 2 つの列を表示する権限しかないため、このアクションは失敗します。 次のエラーが表示された場合:

    [Microsoft][HiveODBC] (35) Error from Hive: error code: '40000' error message: 'Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [hiveuser2] does not have [SELECT] privilege on [default/hivesampletable/clientid,country ...]'.
    
  3. 同じ手順に従ってデータをインポートします。 今回は、hiveuser2 の資格情報を使用し、select ステートメントも次のように変更します。

    SELECT * FROM "HIVE"."default"."hivesampletable"
    

    移動先:

    SELECT clientid, devicemake FROM "HIVE"."default"."hivesampletable"
    

    完了すると、インポートされた 2 列のデータが表示されます。

次のステップ