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) に接続するには:
ブラウザーで Ranger 管理 UI (
https://CLUSTERNAME.azurehdinsight.net/Ranger/
) に移動します。CLUSTERNAME
はクラスターの名前です。Note
Ranger では、Apache Hadoop クラスターとは異なる資格情報を使用します。 ブラウザーで Hadoop のキャッシュされた資格情報が使用されないように、新しい InPrivate ブラウザー ウィンドウを使用して Ranger 管理 UI に接続してください。
クラスター管理者のドメイン ユーザー名とパスワードを使用してサインインします。
現在、Ranger は Yarn および Hive でのみ機能します。
ドメイン ユーザーの作成
hiveruser1
および hiveuser2
を作成する方法の詳細については、「ESP の HDInsight クラスターの作成」をご覧ください。 この記事では、その 2 つのユーザー アカウントを使用します。
Ranger ポリシーの作成
このセクションでは、hivesampletable
にアクセスするための 2 つの Ranger ポリシーを作成します。 異なる列セットに対する select 権限を付与します。 両方のユーザーは、「ESP の HDInsight クラスターの作成」で作成されました。 次のセクションでは、2 つのポリシーを Excel でテストします。
Ranger ポリシーを作成するには:
Ranger 管理 UI を開きます。 前のセクション「Apache Ranger 管理 UI への接続」をご覧ください。
[Hive] で [CLUSTERNAME_Hive] を選択します。 2 つの事前構成済みポリシーが表示されます。
[Add New Policy](新しいポリシーの追加) を選択し、次の値を入力します。
プロパティ 値 ポリシー名 read-hivesampletable-all Hive Database default table hivesampletable Hive Column * ユーザーの選択 hiveuser1 アクセス許可 select 。
Note
[ユーザーの選択] にドメイン ユーザーが設定されていない場合は、Ranger が Microsoft Entra ID と同期するまでしばらく待ってください。
[Add](追加) をクリックしてポリシーを保存します。
最後の 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 にデータをインポートします。
Excel で新しいブックまたは既存のブックを開きます。
[データ] タブで [データの取得]>[その他のデータ ソース]>[ODBC] の順に移動して、[ODBC] ウィンドウを開きます。
ドロップダウン リストから、前のセクションで作成したデータ ソース名を選択して、[OK] を選択します。
初めて使用する場合は、[ODBC ドライバー] ダイアログ ボックスが開きます。 左側のメニューで [Windows] を選択します。 次に、 [接続] を選択して [ナビゲーター] ウィンドウを開きます。
Select Database and Table
ダイアログが開くのを待ちます。 この手順には数秒かかります。[hivesampletable]>[次へ] を選択します。
[完了] を選びます。
[データのインポート] ダイアログでは、クエリを変更または指定できます。 これを行うには、 [プロパティ] を選択します。 この手順には数秒かかります。
[定義] タブを選択します。コマンド テキストを次に示します。
SELECT * FROM "HIVE"."default"."hivesampletable"`
定義した Ranger ポリシーにより、
hiveuser1
にはすべての列に対する select 権限があります。 このクエリはhiveuser1
の資格情報では機能しますが、hiveuser2
の資格情報では機能しません。[OK] を選択して [接続プロパティ] ダイアログを閉じます。
[OK] を選択して [データのインポート] ダイアログを閉じます。
hiveuser1
のパスワードを再入力し、[OK] を選択します。 データが Excel にインポートされるまでに、数秒かかります。 完了すると、11 列のデータが表示されます。
最後のセクションで作成した 2 つ目のポリシー (read-hivesampletable-devicemake) をテストするには:
Excel で新しいシートを追加します。
最後の手順に従ってデータをインポートします。 ここで行う唯一の変更は、
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 ...]'.
同じ手順に従ってデータをインポートします。 今回は、
hiveuser2
の資格情報を使用し、select ステートメントも次のように変更します。SELECT * FROM "HIVE"."default"."hivesampletable"
移動先:
SELECT clientid, devicemake FROM "HIVE"."default"."hivesampletable"
完了すると、インポートされた 2 列のデータが表示されます。
次のステップ
- ESP で HDInsight クラスターを構成するには、「ESP を使用した HDInsight クラスターの構成」をご覧ください。
- ESP で HDInsight クラスターを管理するには、「Enterprise セキュリティ パッケージを使用して HDInsight クラスターを管理する」をご覧ください。
- Secure Shell (SSH) を使用して ESP を含む HDInsight クラスターで Hive クエリを実行するには、「HDInsight で SSH を使用する」をご覧ください。
- Hive Java Database Connectivity (JDBC) を使用して Hive に接続するには、Hive の JDBC ドライバーを使用して Azure HDInsight の Apache Hive に接続する方法に関するページを参照してください。
- Hive ODBC を使用して Excel を Hadoop に接続するには、Microsoft Hive ODBC ドライバーを使用した Excel から Apache Hadoop への接続に関するページを参照してください。
- Power Query を使用して Excel を Hadoop に接続するには、Power Query を使用した Excel から Apache Hadoop への接続に関するページを参照してください。