教程:使用企业安全性套餐在 HDInsight 中配置 Apache HBase 策略
了解如何为企业安全性套餐 (ESP) Apache HBase 群集配置 Apache Ranger 策略。 将 ESP 群集连接到域,可允许用户使用域凭据进行身份验证。 本教程将创建两个 Ranger 策略来限制对 HBase 表中不同列系列的访问。
本教程介绍如何执行下列操作:
- 创建域用户。
- 创建 Ranger 策略。
- 在 HBase 群集中创建表。
- 测试 Ranger 策略。
开始之前
- 如果没有 Azure 订阅,请创建一个试用版版订阅。
- 登录 Azure 门户。
- 使用企业安全性套餐创建 HDInsight HBase 群集。
连接到 Apache Ranger 管理 UI
在浏览器中,使用 URL
https://<ClusterName>.azurehdinsight.cn/Ranger/
连接到 Ranger 管理用户界面。 请记住将<ClusterName>
更改为 HBase 群集的名称。注意
Ranger 凭据与 Hadoop 群集凭据不同。 若要防止浏览器使用缓存的 Hadoop 凭据,请使用新的 InPrivate 浏览器窗口连接到 Ranger 管理 UI。
使用 Microsoft Entra 管理员凭据登录。 Microsoft Entra 管理员凭据与 HDInsight 群集凭据或 Linux HDInsight 节点安全外壳 (SSH) 凭据不同。
创建域用户
要了解如何创建sales_user1和marketing_user1域用户,请访问使用企业安全性套餐创建 HDInsight 群集。 在生产方案中,域用户来自你的 Active Directory·租户。
创建 HBase 表并导入示例数据
可以使用 SSH 连接到 HBase 群集,并使用 Apache HBase Shell 来创建 HBase 表以及插入和查询数据。 有关详细信息,请参阅 Use SSH with HDInsight(对 HDInsight 使用 SSH)。
使用 HBase shell
从 SSH 运行以下 HBase 命令:
hbase shell
创建包含列系列
Name
和Contact
的 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 策略。 可能会列出一个预配置策略。 选择“添加新策略”。
在
Create Policy
屏幕上,输入以下值:设置 建议的值 策略名称 sales_customers_name_contact HBase 表 客户 HBase 列系列 名称、联系人 HBase 列 * 选择组 选择用户 sales_user1 权限 读取 主题名称中可以包含以下通配符:
*
表示字符出现零次或多次。?
表示单个字符。
注意
如果选择用户未自动填充域用户,请稍等,以便 Ranger 与 Microsoft Entra ID 同步。
选择“添加”以保存策略。
选择“添加新策略”,然后输入以下值:
设置 建议的值 策略名称 marketing_customers_contact HBase 表 客户 HBase 列系列 联系人 HBase 列 * 选择组 选择用户 marketing_user1 权限 读取 选择“添加”以保存策略。
测试 Ranger 策略
根据配置的 Ranger 策略,sales_user1可以查看Name
和Contact
列系列中的列的所有数据。 marketing_user1只能查看Contact
列系列中的数据。
以 sales_user1 的身份访问数据
打开与群集的新 SSH 连接。 使用以下命令登录到群集:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.cn
使用
kinit
命令更改为所需用户的上下文:kinit sales_user1
打开 HBase shell,并扫描表
Customers
:hbase shell scan `Customers`
请注意,销售用户可以查看
Customers
表的所有列。 用户可以看到Name
列系列中的两列和Contact
列系列中的五列。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.cn
使用
kinit
命令更改为所需用户的上下文:kinit marketing_user1
打开 HBase shell,并扫描表
Customers
:hbase shell scan `Customers`
请注意,marketing 用户只能查看
Contact
列系列的五个列。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 门户。
- 在顶部的“搜索”框中,输入“HDInsight”。
- 在“服务”下,选择“HDInsight 群集”。
- 在显示的 HDInsight 群集列表中,选择为本教程创建的群集旁边的“...”。
- 选择“删除>”“是”。