チュートリアル:Enterprise セキュリティ パッケージを使用して HDInsight に Apache HBase ポリシーを構成する

Enterprise セキュリティ パッケージ (ESP) の Apache HBase クラスター用の Apache Ranger ポリシーを構成する方法について説明します。 ESP クラスターは、ユーザーがドメイン資格情報で認証できるドメインに接続されます。 このチュートリアルでは、HBase テーブル内の異なる列ファミリへのアクセスを制限する 2 つの Ranger ポリシーを作成します。

このチュートリアルでは、次の作業を行う方法について説明します。

  • ドメイン ユーザーの作成。
  • Ranger ポリシーの作成。
  • HBase クラスター内でのテーブルの作成。
  • Ranger ポリシーのテスト。

開始する前に

Apache Ranger 管理 UI への接続

  1. ブラウザーから、URL https://<ClusterName>.azurehdinsight.net/Ranger/ を使用して Ranger 管理ユーザー インターフェイス (UI) に接続します。 必ず、<ClusterName> をお使いの HBase クラスターの名前に変更してください。

    Note

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

  2. Microsoft Entra 管理者の資格情報を使用してサインインします。 Microsoft Entra 管理者の資格情報は、HDInsight クラスターの資格情報や Linux HDInsight ノードの Secure Shell (SSH) 資格情報と同じではありません。

ドメイン ユーザーの作成

sales_user1 および marketing_user1 ドメイン ユーザーを作成する方法の詳細については、Enterprise セキュリティ パッケージで HDInsight クラスターを作成する方法に関するページを参照してください。 運用シナリオでは、ドメイン ユーザーは Active Directory テナントに含まれます。

HBase テーブルの作成とサンプル データのインポート

SSH を使用して HBase クラスターに接続し、Apache HBase シェルを使用して HBase テーブルの作成、データの挿入、データのクエリを行うことができます。 詳細については、HDInsight での SSH の使用に関するページを参照してください。

HBase シェルの使用

  1. SSH から次の HBase コマンドを実行します。

    hbase shell
    
  2. NameContact の 2 つの列ファミリを持つ HBase テーブル Customers を作成します。

    create 'Customers', 'Name', 'Contact'
    list
    
  3. いくつかのデータを挿入します。

    put 'Customers','1001','Name:First','Alice'
    put 'Customers','1001','Name:Last','Johnson'
    put 'Customers','1001','Contact:Phone','333-333-3333'
    put 'Customers','1001','Contact:Address','313 133rd Place'
    put 'Customers','1001','Contact:City','Redmond'
    put 'Customers','1001','Contact:State','WA'
    put 'Customers','1001','Contact:ZipCode','98052'
    put 'Customers','1002','Name:First','Robert'
    put 'Customers','1002','Name:Last','Stevens'
    put 'Customers','1002','Contact:Phone','777-777-7777'
    put 'Customers','1002','Contact:Address','717 177th Ave'
    put 'Customers','1002','Contact:City','Bellevue'
    put 'Customers','1002','Contact:State','WA'
    put 'Customers','1002','Contact:ZipCode','98008'
    
  4. テーブルの内容を表示します。

    scan 'Customers'
    

    HDInsight Hadoop HBase シェルの出力を示すスクリーンショット。

Ranger ポリシーの作成

sales_user1marketing_user1 用の Ranger ポリシーを作成します。

  1. Ranger 管理 UI を開きます。 [HBase] の下にある [<ClusterName>_hbase] をクリックします。

    HDInsight Apache Ranger 管理 UI を示すスクリーンショット。

  2. [ポリシーの一覧] 画面に、このクラスター用に作成されたすべての Ranger ポリシーが表示されます。 構成済みポリシーが 1 つリストされる場合があります。 [新しいポリシーの追加] を選択します。

    Apache Ranger HBase のポリシー一覧を示すスクリーンショット。

  3. [Create Policy] 画面で、次の値を入力します。

    設定 推奨値
    ポリシー名 sales_customers_name_contact
    [HBase Table](HBase テーブル) 顧客
    [HBase Column-family](HBase の列ファミリ) Name、Contact
    [HBase Column](HBase の列) *
    [Select Group](グループの選択)
    ユーザーの選択 sales_user1
    アクセス許可 Read

    トピック名には、次のワイルドカードを含めることができます。

    • * は、文字が 0 回以上出現することを示します。
    • ? は、1 文字を示します。

    Apache Ranger ポリシーの売上作成を示すスクリーンショット。

    Note

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

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

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

    設定 推奨値
    ポリシー名 marketing_customers_contact
    [HBase Table](HBase テーブル) 顧客
    [HBase Column-family](HBase の列ファミリ) Contact
    [HBase Column](HBase の列) *
    [Select Group](グループの選択)
    ユーザーの選択 marketing_user1
    アクセス許可 読み込み

    Apache Ranger ポリシーのマーケティング作成を示すスクリーンショット。

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

Ranger ポリシーのテスト

構成された Ranger ポリシーに基づいて、sales_user1 は、NameContact の両方の列ファミリの列のすべてのデータを表示できます。 marketing_user1 は、Contact 列ファミリのみのデータを表示できます。

sales_user1 としてデータにアクセスする

  1. クラスターへの新しい SSH 接続を開きます。 次のコマンドを使用して、クラスターにサインインします。

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. kinit コマンドを使用し、目的のユーザーのコンテキストに変更します。

    kinit sales_user1
    
  3. HBase シェルを開き、Customers テーブルをスキャンします。

    hbase shell
    scan `Customers`
    
  4. sales ユーザーは Customers テーブルのすべての列を表示できることに注意してください。 ユーザーは Name 列ファミリの 2 列と Contact 列ファミリの 5 列を表示できます。

    ROW                                COLUMN+CELL
     1001                              column=Contact:Address, timestamp=1548894873820, value=313 133rd Place
     1001                              column=Contact:City, timestamp=1548895061523, value=Redmond
     1001                              column=Contact:Phone, timestamp=1548894871759, value=333-333-3333
     1001                              column=Contact:State, timestamp=1548895061613, value=WA
     1001                              column=Contact:ZipCode, timestamp=1548895063111, value=98052
     1001                              column=Name:First, timestamp=1548894871561, value=Alice
     1001                              column=Name:Last, timestamp=1548894871707, value=Johnson
     1002                              column=Contact:Address, timestamp=1548894899174, value=717 177th Ave
     1002                              column=Contact:City, timestamp=1548895103129, value=Bellevue
     1002                              column=Contact:Phone, timestamp=1548894897524, value=777-777-7777
     1002                              column=Contact:State, timestamp=1548895103231, value=WA
     1002                              column=Contact:ZipCode, timestamp=1548895104804, value=98008
     1002                              column=Name:First, timestamp=1548894897419, value=Robert
     1002                              column=Name:Last, timestamp=1548894897487, value=Stevens
    2 row(s) in 0.1000 seconds
    

marketing_user1 としてデータにアクセスする

  1. クラスターへの新しい SSH 接続を開きます。 次のコマンドを使用して、marketing_user1 としてサインインします。

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. kinit コマンドを使用し、目的のユーザーのコンテキストに変更します。

    kinit marketing_user1
    
  3. HBase シェルを開き、Customers テーブルをスキャンします。

    hbase shell
    scan `Customers`
    
  4. marketing ユーザーは Contact 列ファミリの 5 列のみを表示できることに注意してください。

    ROW                                COLUMN+CELL
     1001                              column=Contact:Address, timestamp=1548894873820, value=313 133rd Place
     1001                              column=Contact:City, timestamp=1548895061523, value=Redmond
     1001                              column=Contact:Phone, timestamp=1548894871759, value=333-333-3333
     1001                              column=Contact:State, timestamp=1548895061613, value=WA
     1001                              column=Contact:ZipCode, timestamp=1548895063111, value=98052
     1002                              column=Contact:Address, timestamp=1548894899174, value=717 177th Ave
     1002                              column=Contact:City, timestamp=1548895103129, value=Bellevue
     1002                              column=Contact:Phone, timestamp=1548894897524, value=777-777-7777
     1002                              column=Contact:State, timestamp=1548895103231, value=WA
     1002                              column=Contact:ZipCode, timestamp=1548895104804, value=98008
    2 row(s) in 0.0730 seconds
    
  5. Ranger UI から監査アクセス イベントを表示します。

    HDInsight Ranger UI のポリシー監査を示すスクリーンショット。

リソースをクリーンアップする

このアプリケーションを引き続き使用しない場合、作成した HBase クラスターを次のように削除します。

  1. Azure portal にサインインします。
  2. 上部の [検索] ボックスに「HDInsight」と入力します。
  3. [サービス] の下の [HDInsight クラスター] を選択します。
  4. 表示される HDInsight クラスターの一覧で、このチュートリアル用に作成したクラスターの横にある [...] を選択します。
  5. [削除][はい] の順に選択します。

次のステップ