教程:使用企业安全性套餐在 HDInsight 中配置 Apache HBase 策略

了解如何为企业安全性套餐 (ESP) Apache HBase 群集配置 Apache Ranger 策略。 将 ESP 群集连接到域,可允许用户使用域凭据进行身份验证。 本教程将创建两个 Ranger 策略来限制对 HBase 表中不同列系列的访问。

本教程介绍如何执行下列操作:

  • 创建域用户。
  • 创建 Ranger 策略。
  • 在 HBase 群集中创建表。
  • 测试 Ranger 策略。

开始之前

连接到 Apache Ranger 管理 UI

  1. 在浏览器中,使用 URL https://<ClusterName>.azurehdinsight.cn/Ranger/ 连接到 Ranger 管理用户界面。 请记住将 <ClusterName> 更改为 HBase 群集的名称。

    注意

    Ranger 凭据与 Hadoop 群集凭据不同。 若要防止浏览器使用缓存的 Hadoop 凭据,请使用新的 InPrivate 浏览器窗口连接到 Ranger 管理 UI。

  2. 使用 Microsoft Entra 管理员凭据登录。 Microsoft Entra 管理员凭据与 HDInsight 群集凭据或 Linux HDInsight 节点安全外壳 (SSH) 凭据不同。

创建域用户

要了解如何创建sales_user1marketing_user1域用户,请访问使用企业安全性套餐创建 HDInsight 群集。 在生产方案中,域用户来自你的 Active Directory·租户。

创建 HBase 表并导入示例数据

可以使用 SSH 连接到 HBase 群集,并使用 Apache HBase Shell 来创建 HBase 表以及插入和查询数据。 有关详细信息,请参阅 Use SSH with HDInsight(对 HDInsight 使用 SSH)。

使用 HBase shell

  1. 从 SSH 运行以下 HBase 命令:

    hbase shell
    
  2. 创建包含列系列NameContact的 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 shell 输出的屏幕截图。

创建 Ranger 策略

sales_user1marketing_user1 创建 Ranger 策略。

  1. 打开“Ranger 管理 UI” 。 在“HBase”下,选择“<ClusterName>_hbase”。

    显示 HDInsight Apache Ranger Admin 用户界面的屏幕截图。

  2. 策略列表屏幕显示为此群集创建的所有 Ranger 策略。 可能会列出一个预配置策略。 选择“添加新策略”。

    显示 Apache Ranger HBase 策略列表的屏幕截图。

  3. 在“创建策略”屏幕上输入以下值 :

    设置 建议的值
    策略名称 sales_customers_name_contact
    HBase 表 客户
    HBase 列系列 名称、联系人
    HBase 列 *
    选择组
    选择用户 sales_user1
    权限 读取

    主题名称中可以包含以下通配符:

    • * 表示字符出现零次或多次。
    • ? 表示单个字符。

    显示 Apache Ranger 策略“创建销售”的屏幕截图。

    注意

    如果选择用户未自动填充域用户,请稍等,以便 Ranger 与 Microsoft Entra ID 同步。

  4. 选择“添加”以保存策略。

  5. 选择“添加新策略”,然后输入以下值:

    设置 建议的值
    策略名称 marketing_customers_contact
    HBase 表 客户
    HBase 列系列 联系人
    HBase 列 *
    选择组
    选择用户 marketing_user1
    权限 读取

    显示 Apache Ranger 策略“创建市场营销”的屏幕截图。

  6. 选择“添加”以保存策略。

测试 Ranger 策略

根据配置的 Ranger 策略,sales_user1可以查看NameContact列系列中的列的所有数据。 marketing_user1只能查看Contact列系列中的数据。

以 sales_user1 的身份访问数据

  1. 打开与群集的新 SSH 连接。 使用以下命令登录到群集:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.cn
    
  2. 使用 kinit 命令更改为所需用户的上下文:

    kinit sales_user1
    
  3. 打开 HBase shell,并扫描表 Customers

    hbase shell
    scan `Customers`
    
  4. 请注意,销售用户可以查看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 的身份访问数据

  1. 打开与群集的新 SSH 连接。 使用以下命令以 marketing_user1 身份登录:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.cn
    
  2. 使用kinit命令更改为所需用户的上下文:

    kinit marketing_user1
    
  3. 打开 HBase shell,并扫描表 Customers

    hbase shell
    scan `Customers`
    
  4. 请注意,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
    
  5. 从 Ranger UI 查看审核访问事件。

    显示 HDInsight Ranger 用户界面策略审核的屏幕截图。

清理资源

如果不打算继续使用此应用程序,请删除创建的 HBase 群集:

  1. 登录 Azure 门户
  2. 在顶部的“搜索”框中,输入“HDInsight”。
  3. 在“服务”下,选择“HDInsight 群集”。
  4. 在显示的 HDInsight 群集列表中,选择为本教程创建的群集旁边的“...”。
  5. 选择“删除>”“”。

后续步骤