CDPは、データセキュリティ管理にApacheRangerを使用しています。 Rangerを利用して一元化されたセキュリティ管理を行う場合は、HBaseACLをポリシーに移行する必要があります。これは、ClouderaManagerからアクセスできるRangerwebUIを介して実行できます。ただし、最初に、アクセス制御のためのHBaseメソッドの概要を簡単に見てみましょう。
HBase認証
承認が設定されている場合(たとえば、Kerberosを使用して hbase.security.authorizationを設定している場合 trueのプロパティ )、ユーザーは、アクセスを許可されているリソースにルールを定義できます。これらのルールは、テーブル内の個々のテーブル、列、およびセルに対して定義できます。
HBaseアクセスレベル
HBaseアクセスレベルは互いに独立して付与され、特定のスコープでさまざまなタイプの操作を可能にします。
可能な権限(セット「RWXCA」からの0文字以上):
- 読み取り(R)–指定されたスコープでデータを読み取ることができます
- 書き込み(W)–指定されたスコープでデータを書き込むことができます
- 実行(X)–指定されたスコープでコプロセッサーエンドポイントを実行できます
- 作成(C)–指定されたスコープでテーブルを作成またはドロップできます
- 管理者(A)–クラスターのバランス調整や特定のスコープでのリージョンの割り当てなどのクラスター操作を実行できます
可能なスコープ:
- スーパーユーザー–スーパーユーザーは、HBaseで利用可能な任意の操作を任意のリソースに対して実行できます。クラスタでHBaseを実行するユーザーはスーパーユーザーです。構成プロパティhbase.superuserに割り当てられたプリンシパル hbase-site.xml内 HMasterの構成ファイルもスーパーユーザーです。
- グローバル–グローバルスコープで付与された権限により、管理者はクラスターのすべてのテーブルを操作できます。
- 名前空間–名前空間スコープで付与された権限は、特定の名前空間内のすべてのテーブルに適用されます。
- テーブル–テーブルスコープで付与された権限は、特定のテーブル内のデータまたはメタデータに適用されます。
- ColumnFamily – ColumnFamilyスコープで付与された権限は、そのColumnFamily内のセルに適用されます。
- セル–セルスコープで付与された権限は、その正確なセル座標に適用されます。
HBaseACLのエクスポート
1.HBaseサービスのクレデンシャルを使用してKerberos経由でログインします。
2. hbaseシェルを起動し、ACLを一覧表示します。
ACLを一覧表示するには、次のコマンドを使用します。
- user_permission‘。*’
- またはスーパーユーザー権限で:「hbase:acl」をスキャン
scan‘hbase:acl‘:の出力例
行 列+セル
emp column=l:hbase, timestamp=1612190971868, value=RWXCA emp2 column=l:hbase, timestamp=1612191218963, value=RWXCA emp2 column=l:user1, timestamp=1612191426624, value=RWC emp column=l:test,personal data, timestamp=1612273141925, value=RW emp column=l:test,personal data,1, timestamp=1612273322678, value=RW emp column=l:@group-usr,personal data,1, timestamp=1612273324527, value=RW
user_permission‘。*‘:の出力例
User Namespace,Table,Family,Qualifier:Permission hbase default,emp,,: [Permission: actions=READ,WRITE,EXEC,CREATE,ADMIN] user1 default,emp2,,: [Permission: actions=READ,WRITE,CREATE] hbase default,emp2,,: [Permission: actions=READ,WRITE,EXEC,CREATE,ADMIN] test default,emp,personal data,: [Permission: actions=READ,WRITE] test default,emp,personal data,1: [Permission: actions=READ,WRITE] @group-usr default,emp,personal data,1: [Permission: actions=READ,WRITE]
注: グループとユーザーには同じ方法でアクセスが許可されますが、グループの前には「@」文字が付きます。テーブルと名前名は同じ方法で指定されますが、名前名の前には「@」文字が付きます。
セルレベルの権限の例:
test default,emp,personal data,1: [Permission: actions=READ,WRITE]
「テスト」 ユーザーは「デフォルト」に対するRW権限を持っています 名前空間、テーブル’emp’ 、列「個人データ」 行‘1’ ..
レンジャーポリシーの作成
- Cloudera Managerで、レンジャーサービスを選択します。
- webUIを見つけます レンジャーUIにリダイレクトするリンク。
- レンジャーUIにログインします。
アクセスマネージャー 表示されたページ:
1.既存のHBaseサービスを選択します。
ポリシーのリスト ページが表示されます。
2.新しいポリシーの追加をクリックします 。
[ポリシーの作成]ページが表示されます。
3.次のように[ポリシーの作成]ページに入力します。
3.1ポリシーの詳細
ポリシー名 | 適切なポリシー名を入力します。この名前をシステム全体で複製することはできません。このフィールドは必須です。 |
ポリシーラベル | このポリシーのラベルを指定します。これらのラベルに基づいてレポートを検索し、ポリシーをフィルタリングできます。 |
通常/オーバーライド | オーバーライドポリシーを指定できます。オーバーライドが選択されている場合、ポリシーのアクセス許可は既存のポリシーのアクセス許可をオーバーライドします。この機能を[有効期間の追加]とともに使用して、既存のポリシーを上書きする一時的なアクセスポリシーを作成できます。 |
HBaseテーブル | 適切なデータベースを選択します。特定のポリシーに対して複数のデータベースを選択できます。このフィールドは必須です。 |
HBase列ファミリー | 選択したテーブルについて、ポリシーが適用される列ファミリーを指定します。 |
HBase列 | 選択したテーブルと列のファミリについて、ポリシーが適用される列を指定します。 |
説明 | (オプション)ポリシーの目的を説明してください。 |
監査ログ | このポリシーを監査するかどうかを指定します。 (監査を無効にするには、選択を解除します。) |
有効期間の追加 | ポリシーの開始時刻と終了時刻を指定します。 |
3.2許可/拒否条件
ApacheRangerは、次のアクセス条件をサポートしています。
- 許可
- 許可から除外
- 拒否
- 拒否から除外
これらのアクセス条件により、きめ細かいアクセス制御ポリシーを設定できます。
たとえば、財務へのアクセスを許可できます。 財務のすべてのユーザーへのテーブル グループですが、インターンのすべてのユーザーへのアクセスを拒否します グループ。 インターンのメンバーの1人が グループ、スコット 、財務へのアクセスが必要な割り当てに取り組む必要があります テーブル。その場合、ユーザーが scottできるようにするExcludefromDeny条件を追加できます。 ファイナンスにアクセスするには データベース。
役割の選択 | このポリシーが適用される役割を指定します。 役割を管理者として指定するには、[管理者の委任]チェックボックスをオンにします。管理者はポリシーを編集または削除でき、元のポリシーに基づいて子ポリシーを作成することもできます。 |
グループを選択 | このポリシーを適用するグループを指定します。 グループを管理者として指定するには、[管理者の委任]チェックボックスをオンにします。管理者はポリシーを編集または削除でき、元のポリシーに基づいて子ポリシーを作成することもできます。 |
ユーザーの選択 | このポリシーを適用するユーザーを指定します。 ユーザーを管理者として指定するには、[管理者の委任]チェックボックスをオンにします。管理者はポリシーを編集または削除でき、元のポリシーに基づいて子ポリシーを作成することもできます。 |
許可 | 権限の追加または編集:読み取り、書き込み、作成、管理、すべての選択/選択解除。 |
管理者の委任 | Delegate Adminを使用して、ポリシーで指定されたユーザーまたはグループに管理者権限を割り当てることができます。管理者はポリシーを編集または削除でき、元のポリシーに基づいて子ポリシーを作成することもできます。 |
3.3プラス(+)記号を使用して、条件を追加できます。条件は、ポリシーに記載されている順序で評価されます。リストの一番上にある条件が最初に適用され、次に2番目、次に3番目というように適用されます。拒否条件は常に強力です。次のフローチャートは、レンジャーポリシー評価フローに関する情報を提供します。
3.4最後に[追加]をクリックします。
結論
このブログ投稿では、ClouderaManagerを使用してHBaseACLをRangerポリシーに移行する方法について説明しました。残念ながら、2つの認証方法は大きく異なるため、移行の自動化はありません。 Rangerには一括読み込みポリシー用のインポート機能がありますが、HBaseからRangerが理解できる形式(具体的にはフォーマットされたJSON / CSV)でACLをエクスポートする方法はありません。