教學課程:使用企業安全性套件在 HDInsight 中設定 Apache HBase 原則

了解如何對企業安全性套件 (ESP) Apache HBase 叢集設定 Apache Ranger 原則。 ESP 叢集連線到網域,讓使用者使用網域認證進行驗證。 在此教學課程中,您會建立兩個 Ranger 原則來限制 HBase 資料表中不同資料行系列的存取權。

在本教學課程中,您會了解如何:

  • 建立網域使用者。
  • 建立 Ranger 原則。
  • 在 HBase 叢集中建立資料表。
  • 測試 Ranger 原則。

開始之前

連線到 Apache Ranger 系統管理 UI

  1. 從瀏覽器中,使用 URL https://<ClusterName>.azurehdinsight.net/Ranger/ 連線到 Ranger 管理使用者介面 (UI)。 請記得將 <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 資料表、插入及查詢資料。 如需詳細資訊,請參閱搭配 HDInsight 使用 SSH

使用 HBase Shell

  1. 從 SSH,執行下列 HBase 命令:

    hbase shell
    
  2. 使用兩個資料行系列建立 HBase 資料表 CustomersNameContact

    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'
    

    Screenshot that shows the HDInsight Hadoop HBase shell output.

建立 Ranger 原則

sales_user1marketing_user1 建立 Ranger 原則。

  1. 開啟 Ranger 管理員 UI。 在 [HBase] 下,選取 <ClusterName>_hbase

    Screenshot that shows the HDInsight Apache Ranger Admin UI.

  2. 原則清單畫面會顯示為此叢集建立的所有 Ranger 原則。 可能會列出一個預先設定的原則。 選取 [新增原則]

    Screenshot that shows the Apache Ranger HBase policies list.

  3. 在 [建立原則] 畫面上輸入下列值:

    設定 建議的值
    原則名稱 sales_customers_name_contact
    HBase 資料表 客戶
    HBase 資料行系列 名稱、連絡資訊
    HBase 資料行 *
    選取群組
    選取使用者 sales_user1
    權限 參閱

    主題名稱可以包含下列萬用字元:

    • * 表示出現零次以上的字元。
    • ? 表示單一字元。

    Screenshot that shows the Apache Ranger policy Create sales.

    注意

    如果 [選取使用者] 的網域使用者未自訂填入,請稍後,讓 Ranger 與 Microsoft Entra ID 同步處理。

  4. 選取 [新增] 以儲存規則。

  5. 選取 [新增原則],並輸入下列值︰

    設定 建議的值
    原則名稱 marketing_customers_contact
    HBase 資料表 客戶
    HBase 資料行系列 連絡人
    HBase 資料行 *
    選取群組
    選取使用者 marketing_user1
    權限 參閱

    Screenshot that shows the Apache Ranger policy Create marketing.

  6. 選取 [新增] 以儲存規則。

測試 Ranger 原則

根據所設定的 Ranger 原則,sales_user1 可以檢視 NameContact 資料行系列中所有資料行資料。 Marketing_user1 只能檢視 Contact 資料行系列中的資料。

以 sales_user1 的身分存取資料

  1. 對於叢集開啟新的 SSH 連線。 使用下列命令來登入叢集:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. 使用 kinit 命令來變更為所需的使用者內容:

    kinit sales_user1
    
  3. 開啟 HBase 殼層,並掃描資料表 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.net
    
  2. 使用 kinit 命令來變更為我們所需的使用者內容:

    kinit marketing_user1
    
  3. 開啟 HBase 殼層,並掃描資料表 Customers

    hbase shell
    scan `Customers`
    
  4. 請注意,行銷使用者只能檢視 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 檢視稽核存取事件。

    Screenshot that shows the HDInsight Ranger UI Policy Audit.

清除資源

如果您不打算繼續使用此應用程式,請刪除所建立的 HBase 叢集:

  1. 登入 Azure 入口網站
  2. 在頂端的 [搜尋] 方塊中,輸入 HDInsight
  3. 在 [服務] 底下,選取 [HDInsight 叢集]
  4. 從出現的 HDInsight 叢集清單中,在您為本教學課程建立的叢集旁選取 [...]
  5. 選取 [刪除]>[是]

下一步