Enterprise セキュリティ パッケージを使用して HDInsight 上に Hive ポリシーを構成するConfigure Apache Hive policies in HDInsight with Enterprise Security Package

Apache Hive 用 Apache Ranger ポリシーを構成する方法について説明します。Learn how to configure Apache Ranger policies for Apache Hive. この記事では、hivesampletable へのアクセスを制限する 2 つの Ranger ポリシーを作成します。In this article, you create two Ranger policies to restrict access to the hivesampletable. hivesampletable は HDInsight クラスターに付属しています。The hivesampletable comes with HDInsight clusters. ポリシーを構成したら、Excel と ODBC ドライバーを使用して HDInsight の Hive テーブルに接続します。After you have configured the policies, you use Excel and ODBC driver to connect to Hive tables in HDInsight.

前提条件Prerequisites

  • Enterprise セキュリティ パッケージを使用している HDInsight クラスター。A HDInsight cluster with Enterprise Security Package. ESP を使用した HDInsight クラスターの構成に関するページをご覧ください。See Configure HDInsight clusters with ESP.
  • Office 2016、Office 2013 Professional Plus、Office 365 Pro Plus、Excel 2013 Standalone、または Office 2010 Professional Plus がインストールされたワークステーション。A workstation with Office 2016, Office 2013 Professional Plus, Office 365 Pro Plus, Excel 2013 Standalone, or Office 2010 Professional Plus.

Apache Ranger 管理 UI への接続Connect to Apache Ranger Admin UI

Ranger 管理 UI に接続するにはTo connect to Ranger Admin UI

  1. ブラウザーから Ranger 管理 UI に接続します。From a browser, connect to Ranger Admin UI. URL は https://<ClusterName >.azurehdinsight.net/Ranger/ です。The URL is https://<ClusterName>.azurehdinsight.net/Ranger/.

    注意

    Ranger では、Apache Hadoop クラスターとは異なる資格情報を使用します。Ranger uses different credentials than Apache Hadoop cluster. ブラウザーで Hadoop のキャッシュされた資格情報が使用されないように、新しい InPrivate ブラウザー ウィンドウを使用して Ranger 管理 UI に接続してください。To prevent browsers using cached Hadoop credentials, use new InPrivate browser window to connect to the Ranger Admin UI.

  2. クラスター管理者のドメイン ユーザー名とパスワードを使用してログインします。Log in using the cluster administrator domain user name and password:

    HDInsight ESP Ranger のホーム ページ

    現在、Ranger は Yarn および Hive でのみ機能します。Currently, Ranger only works with Yarn and Hive.

ドメイン ユーザーの作成Create Domain users

hiveruser1 と hiveuser2 を作成する方法については、「ESP の HDInsight クラスターの作成」をご覧ください。See Create a HDInsight cluster with ESP, for information on how to create hiveruser1 and hiveuser2. この記事では、その 2 つのユーザー アカウントを使用します。You use the two user accounts in this article.

Ranger ポリシーの作成Create Ranger policies

このセクションでは、hivesampletable にアクセスするための 2 つの Ranger ポリシーを作成します。In this section, you create two Ranger policies for accessing hivesampletable. 異なる列セットに対する select 権限を付与します。You give select permission on different set of columns. 両方のユーザーは、「ESP の HDInsight クラスターの作成」で作成されました。Both users were created using Create a HDInsight cluster with ESP. 次のセクションでは、2 つのポリシーを Excel でテストします。In the next section, you will test the two policies in Excel.

Ranger ポリシーを作成するにはTo create Ranger policies

  1. Ranger 管理 UI を開きます。Open Ranger Admin UI. 「Apache Ranger 管理 UI への接続」をご覧ください。See Connect to Apache Ranger Admin UI.

  2. [Hive]<クラスター名>_hive をクリックします。Click <ClusterName>_hive, under Hive. 構成済みの 2 つのポリシーが表示されます。You shall see two pre-configure policies.

  3. [Add New Policy] をクリックし、次の値を入力します。Click Add New Policy, and then enter the following values:

    • Policy Name: read-hivesampletable-allPolicy name: read-hivesampletable-all

    • Hive Database: defaultHive Database: default

    • table: hivesampletabletable: hivesampletable

    • Hive Column: *Hive column: *

    • Select User: hiveuser1Select User: hiveuser1

    • Permissions: selectPermissions: select

      HDInsight ESP Ranger での Hive ポリシーの構成.

      注意

      [Select User] にドメイン ユーザーが設定されていない場合は、Ranger が AAD と同期するまでしばらく待ってください。If a domain user is not populated in Select User, wait a few moments for Ranger to sync with AAD.

  4. [Add] をクリックしてポリシーを保存します。Click Add to save the policy.

  5. 最後の 2 つの手順を繰り返して、次のプロパティを設定したもう 1 つのポリシーを作成します。Repeat the last two steps to create another policy with the following properties:

    • Policy Name: read-hivesampletable-devicemakePolicy name: read-hivesampletable-devicemake
    • Hive Database: defaultHive Database: default
    • table: hivesampletabletable: hivesampletable
    • Hive Column: clientid、devicemakeHive column: clientid, devicemake
    • Select User: hiveuser2Select User: hiveuser2
    • Permissions: selectPermissions: select

Hive ODBC データ ソースの作成Create Hive ODBC data source

手順については、「Hive ODBC データ ソースの作成」をご覧ください。The instructions can be found in Create Hive ODBC data source.

プロパティProperty 説明Description
データ ソース名Data Source Name データ ソースに名前を付けます。Give a name to your data source
HostHost 「<HDInsightClusterName>.azurehdinsight.net」と入力します。Enter <HDInsightClusterName>.azurehdinsight.net. たとえば、「myHDICluster.azurehdinsight.net」と入力します。For example, myHDICluster.azurehdinsight.net
PortPort 443 を使用します。Use 443. (このポートは 563 から 443 に変更されました)。(This port has been changed from 563 to 443.)
DatabaseDatabase 既定値を使用します。Use Default.
Hive サーバーの種類Hive Server Type Hive Server 2 を選択します。Select Hive Server 2
メカニズムMechanism Azure HDInsight サービスを選択します。Select Azure HDInsight Service
HTTP パスHTTP Path 空白のままにします。Leave it blank.
ユーザー名User Name 「hiveuser1@contoso158.onmicrosoft.com」を入力します。Enter hiveuser1@contoso158.onmicrosoft.com. ドメイン名が異なる場合は、ドメイン名を更新します。Update the domain name if it is different.
パスワードPassword hiveuser1 のパスワードを入力します。Enter the password for hiveuser1.

データ ソースを保存する前に、必ず [Test] をクリックしてください。Make sure to click Test before saving the data source.

HDInsight から Excel へのデータのインポートImport data into Excel from HDInsight

最後のセクションで 2 つのポリシーを構成しました。In the last section, you have configured two policies. hiveuser1 にはすべての列に対する select 権限があり、hiveuser2 には 2 つの列に対する select 権限があります。hiveuser1 has the select permission on all the columns, and hiveuser2 has the select permission on two columns. このセクションでは、2 人のユーザーを偽装して Excel にデータをインポートします。In this section, you impersonate the two users to import data into Excel.

  1. Excel で新しいブックまたは既存のブックを開きます。Open a new or existing workbook in Excel.

  2. [データ] タブの [その他のデータ ソース] をクリックし、 [データ接続ウィザード] をクリックして データ接続ウィザードを開きます。From the Data tab, click From Other Data Sources, and then click From Data Connection Wizard to launch the Data Connection Wizard.

    ![データ接続ウィザードを開く][img-hdi-simbahiveodbc.excel.dataconnection]![Open data connection wizard][img-hdi-simbahiveodbc.excel.dataconnection]

  3. データ ソースとして [ODBC DSN] を選択し、 [次へ] をクリックします。Select ODBC DSN as the data source, and then click Next.

  4. ODBC データ ソースから、前の手順で作成したデータ ソース名を選択し、 [次へ] をクリックします。From ODBC data sources, select the data source name that you created in the previous step, and then click Next.

  5. ウィザードでクラスターのパスワードを再入力し、 [OK] をクリックします。Reenter the password for the cluster in the wizard, and then click OK. [データベースとテーブルの選択] ダイアログが開くのを待ちます。Wait for the Select Database and Table dialog to open. この処理には数秒かかります。This can take a few seconds.

  6. [hivesampletable] を選択し、 [次へ] をクリックします。Select hivesampletable, and then click Next.

  7. [完了] をクリックします。Click Finish.

  8. [データのインポート] ダイアログでは、クエリを変更または指定できます。In the Import Data dialog, you can change or specify the query. これを行うには、 [プロパティ] をクリックします。To do so, click Properties. この処理には数秒かかります。This can take a few seconds.

  9. [定義] タブをクリックします。コマンド テキストを次に示します。Click the Definition tab. The command text is:

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

    定義した Ranger ポリシーにより、hiveuser1 にはすべての列に対する select 権限があります。By the Ranger policies you defined, hiveuser1 has select permission on all the columns. そのため、このクエリは hiveuser1 の資格情報では機能しますが、hiveuser2 の資格情報では機能しません。So this query works with hiveuser1's credentials, but this query does not work with hiveuser2's credentials.

    ![接続プロパティ][img-hdi-simbahiveodbc-excel-connectionproperties]![Connection Properties][img-hdi-simbahiveodbc-excel-connectionproperties]

  10. [OK] をクリックして [接続プロパティ] ダイアログを閉じます。Click OK to close the Connection Properties dialog.

  11. [OK] をクリックして [データのインポート] ダイアログを閉じます。Click OK to close the Import Data dialog.

  12. hiveuser1 のパスワードを再入力し、 [OK] をクリックします。Reenter the password for hiveuser1, and then click OK. データが Excel にインポートされるまでに、数秒かかります。It takes a few seconds before data gets imported to Excel. インポートが完了すると、11 列のデータが表示されます。When it is done, you shall see 11 columns of data.

最後のセクションで作成した 2 つ目のポリシー (read-hivesampletable-devicemake) をテストするにはTo test the second policy (read-hivesampletable-devicemake), you created in the last section

  1. Excel で新しいシートを追加します。Add a new sheet in Excel.

  2. 最後の手順に従ってデータをインポートします。Follow the last procedure to import the data. ここで行う唯一の変更は、hiveuser1 ではなく hiveuser2 の資格情報を使用することです。The only change you make is to use hiveuser2's credentials instead of hiveuser1's. hiveuser2 には 2 つの列を表示する権限しかないため、インポートは失敗します。This fails because hiveuser2 only has permission to see two columns. 次のエラーが表示されます。You shall get the following error:

     [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. 同じ手順に従ってデータをインポートします。Follow the same procedure to import data. 今回は、hiveuser2 の資格情報を使用し、次の select ステートメントThis time, use hiveuser2's credentials, and also modify the select statement from:

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

    を次のように変更します。to:

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

    インポートが完了すると、インポートされた 2 列のデータが表示されます。When it is done, you shall see two columns of data imported.

次の手順Next steps