チュートリアル:Enterprise セキュリティ パッケージを使用して HDInsight に Apache HBase ポリシーを構成する
Enterprise セキュリティ パッケージ (ESP) の Apache HBase クラスター用の Apache Ranger ポリシーを構成する方法について説明します。 ESP クラスターは、ユーザーがドメイン資格情報で認証できるドメインに接続されます。 このチュートリアルでは、HBase テーブル内の異なる列ファミリへのアクセスを制限する 2 つの Ranger ポリシーを作成します。
このチュートリアルでは、次の作業を行う方法について説明します。
- ドメイン ユーザーの作成。
- Ranger ポリシーの作成。
- HBase クラスター内でのテーブルの作成。
- Ranger ポリシーのテスト。
開始する前に
- Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください。
- Azure portal にサインインします。
- Enterprise セキュリティ パッケージで HDInsight HBase クラスターを作成します。
Apache Ranger 管理 UI への接続
ブラウザーから、URL
https://<ClusterName>.azurehdinsight.net/Ranger/
を使用して Ranger 管理ユーザー インターフェイス (UI) に接続します。 必ず、<ClusterName>
をお使いの HBase クラスターの名前に変更してください。Note
Ranger の資格情報は、Hadoop クラスターの資格情報と同じではありません。 ブラウザーで Hadoop のキャッシュされた資格情報が使用されないように、新しい InPrivate ブラウザー ウィンドウを使用して Ranger 管理 UI に接続してください。
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 シェルの使用
SSH から次の HBase コマンドを実行します。
hbase shell
Name
とContact
の 2 つの列ファミリを持つ HBase テーブルCustomers
を作成します。create 'Customers', 'Name', 'Contact' list
いくつかのデータを挿入します。
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'
テーブルの内容を表示します。
scan 'Customers'
Ranger ポリシーの作成
sales_user1 と marketing_user1 用の Ranger ポリシーを作成します。
Ranger 管理 UI を開きます。 [HBase] の下にある [<ClusterName>_hbase] をクリックします。
[ポリシーの一覧] 画面に、このクラスター用に作成されたすべての Ranger ポリシーが表示されます。 構成済みポリシーが 1 つリストされる場合があります。 [新しいポリシーの追加] を選択します。
[
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 文字を示します。
Note
[ユーザーの選択] にドメイン ユーザーが自動的に設定されない場合は、Ranger が Microsoft Entra ID と同期されるまでしばらく待ってください。
[Add](追加) をクリックしてポリシーを保存します。
[Add New Policy](新しいポリシーの追加) を選択し、次の値を入力します。
設定 推奨値 ポリシー名 marketing_customers_contact [HBase Table](HBase テーブル) 顧客 [HBase Column-family](HBase の列ファミリ) Contact [HBase Column](HBase の列) * [Select Group](グループの選択) ユーザーの選択 marketing_user1 アクセス許可 読み込み [Add](追加) をクリックしてポリシーを保存します。
Ranger ポリシーのテスト
構成された Ranger ポリシーに基づいて、sales_user1 は、Name
と Contact
の両方の列ファミリの列のすべてのデータを表示できます。 marketing_user1 は、Contact
列ファミリのみのデータを表示できます。
sales_user1 としてデータにアクセスする
クラスターへの新しい SSH 接続を開きます。 次のコマンドを使用して、クラスターにサインインします。
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
kinit
コマンドを使用し、目的のユーザーのコンテキストに変更します。kinit sales_user1
HBase シェルを開き、
Customers
テーブルをスキャンします。hbase shell scan `Customers`
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 としてデータにアクセスする
クラスターへの新しい SSH 接続を開きます。 次のコマンドを使用して、marketing_user1 としてサインインします。
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
kinit
コマンドを使用し、目的のユーザーのコンテキストに変更します。kinit marketing_user1
HBase シェルを開き、
Customers
テーブルをスキャンします。hbase shell scan `Customers`
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
Ranger UI から監査アクセス イベントを表示します。
リソースをクリーンアップする
このアプリケーションを引き続き使用しない場合、作成した HBase クラスターを次のように削除します。
- Azure portal にサインインします。
- 上部の [検索] ボックスに「HDInsight」と入力します。
- [サービス] の下の [HDInsight クラスター] を選択します。
- 表示される HDInsight クラスターの一覧で、このチュートリアル用に作成したクラスターの横にある [...] を選択します。
- [削除]、[はい] の順に選択します。