教程:使用企业安全性套餐在 HDInsight 中配置 Apache HBase 策略
了解如何为企业安全性套餐 (ESP) Apache HBase 群集配置 Apache Ranger 策略。 将 ESP 群集连接到域,可允许用户使用域凭据进行身份验证。 本教程将创建两个 Ranger 策略来限制对 HBase 表中不同列系列的访问。
本教程介绍如何执行下列操作:
- 创建域用户。
- 创建 Ranger 策略。
- 在 HBase 群集中创建表。
- 测试 Ranger 策略。
- 如果没有 Azure 订阅,请创建一个试用版版订阅。
- 登录 Azure 门户。
- 使用企业安全性套餐创建 HDInsight HBase 群集。
在浏览器中,使用 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·租户。
可以使用 SSH 连接到 HBase 群集,并使用 Apache HBase Shell 来创建 HBase 表以及插入和查询数据。 有关详细信息,请参阅 Use SSH with HDInsight(对 HDInsight 使用 SSH)。
从 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'
为 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 策略,sales_user1可以查看Name
和Contact
列系列中的列的所有数据。 marketing_user1只能查看Contact
列系列中的数据。
打开与群集的新 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
打开与群集的新 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 群集列表中,选择为本教程创建的群集旁边的“...”。
- 选择“删除>”“是”。